notifier

Description
change notice framework.変更通知フレームワーク。
Latest version
0.1.7
Author
suVene
License
MIT

for 2.2
http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/branches/2.2/notifier.js
for 2.1
http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/branches/2.1/notifier.js
for 2.0
http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/branches/2.0/notifier.js
for 1.2
not supported
for Nightly
http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/notifier.js

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 のインスタンス、
または、その配列を返却して下さい。
back to index