ちょっとした思いつきで、汎用に使えそうなコードを書いてみたのですが、公開できる形に持っていくのが案外手間でした。
作った背景
Webサイトで使うスクリプトが(Railsだということもあって)大Script主義だったのですが、ページごとに実行するものを振り分けるのが複雑化して来ました。そこで、Rails側ではコントローラーやメソッドに関する情報をビューへ埋め込んで、JavaScript側ではそれを拾って切り分け動作を行おうと考えました。そのJavaScript側のうち、「コールバックを区分して実行する」部分だけを1つのライブラリにしてみました。
Jkr2255/GroupCallbacks @ GitHub
使い方
ブラウザで使う場合、grouped_callbacks.js
をそのまま読みこめばグローバルにGroupedCallbacks
が出現します。で、これはコンストラクタなので、まずは実際のオブジェクトを生成します。
var callbacks = new GroupedCallbacks();
それから、.add(グループ名,関数)
で関数を追加して、.run(グループ名)
で実行する流れです。
グループについて
グループ名
としては、単一文字列(1階層)もしくは文字列の配列(2階層以上の場合)を指定できます。そして、実行対象ですが、.run(['main', 'sub'])
とすると、グループを['main','sub']
として登録したもの、['main','sub', さらに続く]
で登録したもの以外に、main
で登録したものも実行されます(親グループで登録したものは、子グループの実行時にも一緒に実行されます)。また、順番については何も保証されません。
その他
何かありましたら、Jkr2255/GroupCallbacks @ GitHubにご相談いただければと思います。