Pot.removePlugin

{Boolean} Pot.removePlugin ({String|Array} name)

Pot.js と PotLite.js で利用可能。

プラグインを削除します。

登録したプラグイン関数またはプロパティを削除します。
引数 name は、削除するプラグイン名を文字列で指定します。
name が文字列からなる配列で渡されると、要素に該当するプラグインすべてを削除します。

Pot オブジェクト本体の関数を addPlugin() によりプラグイン関数で上書きした後に
removePlugin() でプラグイン関数を削除すると、本来の Pot オブジェクトの関数に戻ります。

Pot.globalize() が適応されている場合、Pot.removePlugin() が removePlugin() で実行できます。

削除に成功すれば true が返り、1 つでも失敗すると false が返ります。

// プラグインを追加
Pot.addPlugin('foo', function() { alert('foo!') });

Pot.foo(); // 'foo!'

// 削除
Pot.removePlugin('foo');

Pot.foo(); // (Error: foo is not a function)
// プラグインを登録
Pot.addPlugin('myFunc', function(msg) {
  alert('myFunc: ' + msg);
});

// 登録した関数は Pot からアクセスできる
Pot.myFunc('Hello!'); // 'myFunc: Hello!'

// プラグインが存在してるか確認
debug( Pot.hasPlugin('myFunc') ); // true

// 他のプラグイン関数を追加
Pot.addPlugin('myFunc2', function(a, b) {
  return a + b;
});

debug( Pot.myFunc2(1, 2) ); // 3

// addPlugin は、デフォルトで他のプラグインを上書きしません
debug( Pot.addPlugin('myFunc', function() {}) ); // false

// すべてのプラグイン名を表示
debug( Pot.listPlugin() ); // ['myFunc', 'myFunc2']

// プラグインを削除
Pot.removePlugin('myFunc');

debug( Pot.hasPlugin('myFunc') ); // false
debug( Pot.listPlugin() ); // ['myFunc2']
var string = '\t abc\n \t ';

// オリジナルの Pot.trim()
debug(Pot.trim(string)); // 'abc'

// プラグイン関数の登録により Pot.trim() を上書き
Pot.addPlugin('trim', function(s) {
    return s.replace(/^ +| +$/g, ''); // スペース (U+0020) だけ削除するようにする
});

// 登録した Pot.trim()
debug(Pot.trim(string)); // '\t abc\n \t'

// プラグインの trim を削除
Pot.removePlugin('trim');

// 元に戻る
debug(Pot.trim(string)); // 'abc'