Needs Library
Commands
- :notifierstart
- 変更通知をスタートします。
- :notifierrestart
- 変更通知をリスタートします。
- :notifierstop
- 変更通知をストップします。
Observer
概要
通知された変更を扱うオブジェクトを定義します
Subject からの Message オブジェクトを解析し、何らかの動作を行います。
Observer ⇒ Subject への依存は高くて OK です。
命名規約
prefix に "observer_" を付け、"rumtimepath/plugin/notifier" の下にインストールして下さい。
e.g.)"${rumtimepath}/notifier/observer_XXX.js"
登録方法
liberator.plugins.notifier.observer.register(baseClass, extendsMethods)
- baseClass
- 基底クラスとなります。現在以下の基底クラスが存在します。
- liberator.plugins.notifier.Observer
- extendsMethosd
- 基底クラスの拡張となるメソッドをハッシュ形式で渡します。
実装するメソッドは基底クラスのルールに従って下さい。
基底クラスの説明
librator.plugins.notifier.Observer
Observerの基本クラスです。
- initialize()
- 必要の無い場合、実装しなくても OK です。
インスタンス生成時に1度だけフレームワークによって呼び出されます。
初期化処理など必要な処理を実装して下さい。
- update(liberator.plugins.notifier.Message)
- 必ず実装して下さい。
Subject からの変更通知がなされた場合、引数 Message と共にフレームワークより呼び出されます。
Subject
概要
変更を検知し Observer に通知します。
原則、observer との依存を少なくして下さい。
(Message の解析の役割は Observer にある)
命名規約
prefix に "subject_" を付け、"rumtimepath/plugin/notifier" の下にインストールして下さい。
e.g.)"${rumtimepath}/notifier/subject_XXX.js"
登録方法
liberator.plugins.notifier.subject.register(baseClass, extendsMethods)
- baseClass
- 基底クラスとなります。現在以下の基底クラスが存在します。
- liberator.plugins.notifier.Subject
- liberator.plugins.notifier.SubjectHttp
- extendsMethosd
- 基底クラスへの拡張をハッシュ形式で渡します。
基底クラスの説明
librator.plugins.notifier.Subject
Subject の基本クラスです。
- interval
- 秒で変更チェックするインターバルを指定します。デフォルトは 60 です。
- initialize()
- 必要の無い場合、実装しなくても OK です。
インスタンス生成時に1度だけフレームワークによって呼び出されます。
初期化処理など必要な処理を実装して下さい。
- check()
- 必ず実装して下さい。
指定したインターバルごとにフレームワークによって呼び出されます。
変更を検知した場合、liberator.plugins.notifier.Message のインスタンスを引数に
this.notify(message) を呼び出してください。
- shutdown()
- 必要の無い場合、実装しなくても OK です。
変更通知フレームワークの終了時に呼ばれます。
librator.plugins.notifier.SubjectHttp
Httpを利用した変更検知の基底クラスです。
リクエスト内容をキャッシュします。
- interval
- 秒で変更チェックするインターバルを指定します。デフォルトは 60 です。
- options{}
- url
- URL を指定します。
- headers{}
- リクエストに header が必要な場合ハッシュで指定します。
- extra{}
- リクエストのオプションです。ハッシュで指定します。
以下の key が有効です。
asynchronous (false), encoding(default utf-8)
- parse(liberator.pluginsnotifier.Request)
- 必ず実装して下さい。
リクエストを解析した結果を返却して下さい。
- diff(cache, parsed)
- 必要の無い場合、実装しなくても OK です。
デフォルトの実装は cache を返却します。
this.parse() による解析結果と、そのキャッシュとの差分を抽出して返却して下さい。
- buildMessages(diff)
- 必ず実装して下さい。
this.diff() により抽出されたオブジェクトを元に、liberator.plugins.notifier.Message のインスタンス、
または、その配列を返却して下さい。