[Ruby] WIN32OLE_EVENT
WIN32OLE_EVENT#handler= なんてのを追加してみた。
WIN32OLE_EVENT#on_eventとの併用は混乱の元なのでやめた方がいいかも。
仕様を自分でも詰め切れていないところが多々あるので、WIN32OLE_EVENTヘビーユーザの意見を聞きたいところ。
ついでにsampleも追加した。
ienavi.rb が従来の書き方。
ienavi2.rbがWIN32OLE_EVENT#handler=を使った場合の書き方。
従来の書き方は、ちょっとオブジェクト指向っぽく書きづらいところがあったんだけど、
WIN32OLE_EVENT#handler= を使うと自然とオブジェクト指向(クラス指向?)っぽく書ける。
その分、柔軟性が失われているかも知れない...。
method_missing でどんなイベントでも受け取れるというのは、変かなあ。
default_handler という名前のメソッドがあったら、どんなイベントでも受け取れるとした方が自然?
ちなみに、WIN32OLE_EVENT#handler= を使った方が、BeforeNavigate2 みたいに 2がついているのは
ev = WIN32OLE_EVENT.new(ie)
と第2引数を省略している(結果的に第2引数に'DWebBrowserEvents2'を指定したのと同じになる)からです。
(1.8では省略するとエラーになりますが、trunkではもう一踏ん張りしてエラーにならないようにしました。)
| 固定リンク
この記事へのコメントは終了しました。
コメント