プロジェクト

全般

プロフィール

提案 #1439

未完了

イベントリスナーを一括で有効・無効にする機能

toshi_a 初音 さんがほぼ5年前に追加.

ステータス:
分類待ち
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:

説明

ストリーミング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を取りたいので、タグ機能とは相性が悪いかもしれない。


関連するチケット

ブロック先 バグ #1436: REST API取得の度にboostが通知される実装待ちtoshi_a 初音操作
ブロック先 バグ #1438: Mastodon: ストリーミングAPIを無効にする設定をしてもストリーミング接続される実装待ちtoshi_a 初音操作

toshi_a 初音 さんがほぼ5年前に更新

  • ブロック先 バグ #1436: REST API取得の度にboostが通知される を追加

toshi_a 初音 さんがほぼ5年前に更新

  • ブロック先 バグ #1438: Mastodon: ストリーミングAPIを無効にする設定をしてもストリーミング接続される を追加

他の形式にエクスポート: Atom PDF