« [日記] audible.com の Sammy Keyes シリーズ | トップページ | [英語] 何度目かのアレックス・ライダーシリーズ第1段 »

2008年7月26日 (土)

[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ではもう一踏ん張りしてエラーにならないようにしました。)


|

« [日記] audible.com の Sammy Keyes シリーズ | トップページ | [英語] 何度目かのアレックス・ライダーシリーズ第1段 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Ruby] WIN32OLE_EVENT:

« [日記] audible.com の Sammy Keyes シリーズ | トップページ | [英語] 何度目かのアレックス・ライダーシリーズ第1段 »