操作
提案 #1439
未完了イベントリスナーを一括で有効・無効にする機能
プラグイン名:
ブランチ:
説明
ストリーミングAPI設定など、特定の条件下でのみ有効になるイベントハンドラ(on_*, filter_*, subscribe, collection, generate)のまとまりを定義したい。
原案A¶
userconfig_if(:streaming_enable) do
subscribe(:event) ...
on_event ...
end
UserConfig[:streaming_enable]
がfalse→trueになったときにブロックを一度実行。ブロック内で定義されたハンドラに専用のタグを付けておく。
false→trueになったとき、そのタグを持ったハンドラを全てdetachする。
原案B¶
sw = switch do
subscribe(:event) ...
on_event ...
end
on_userconfig_modify do |name, val|
val ? sw.on : sw.off
end
汎用的なもの。onとoffメソッドは冪等に振る舞う。
原案C¶
tag = handler_tag do
subscribe(:event) ...
on_event ...
end
on_userconfig_modify do |name, val|
val ? tag.enable : tag.disable
end
原案Bを、既存機能であるhandler_tagに有効化/無効化オプションを付けて実現するもの。
ブロックはその中で定義されたハンドラにタグを付与するだけなので、
タグがついているものに有効フラグがつくのはわかりやすいが、ネストされた場合は有効フラグのANDを取りたいので、タグ機能とは相性が悪いかもしれない。
関連するチケット
操作