PRagger!!!
Plaggerなんてボコボコにしてやんよ ∧_∧ ( ・ω・)=つ≡つ (っ ≡つ=つ / ) ババババ ( / ̄∪
いやまぁ冗談だけど.
遂に始まったか,という感じ.まだ全然リビジョン番号も小さく,リポジトリブラウザも1時間あれば目を通せそうだね.思い切ったことするにはちょっと早い.
rss?
ところで,LoadRSSとかでrequireしてるrssってモジュールは一体なんなのかしら?すげー気になる.と思ってirbで
>> require 'rss/1.0' >>
おぉぉぉい,ロードできたよ!そんなんあったんかよ!
>> require 'rss/1.0' >> require 'rss/2.0' >> require 'rss/maker' >>
全部いけた.locateしたら確かにあった…….
しかしながら,相手をRSSに限定しちゃうとatomとか後続のフィード群に対応できなくなるので,LoadFeedとか作り直す必要はありそうね.
ソースコードをチラッと読む
pragger.rbを読んでみる.ここら辺がキモかしら.
data = $plugin.send(command["module"],command["config"],data.clone)
$pluginは,Pluginクラスのインスタンスで,各プラグインの中身をPlugin#load_pluginで
13 def load_plugin(file) 14 File.open(file) do |src| 15 instance_eval( src.read , file , 1) 16 end 17 end
ゴソッと読み込んじゃってinstance_evalしちゃってる.プラグインの中身はと言うと関数が定義してあって,load_pluginによって$pluginにそのプラグインの関数が定義されるわけだな.
だから,sendに渡してるのは
になるのね.
うん,ソースコードを読んである程度の仕組みはわかったぞ.また試しにプラグインでも作ってみるか!元気があれば!
ところで,gemで配布されるのかしら.して欲しいな.楽だし.
いやでもなんちゅーか,プラグイン全部が関数ってのは,う〜ん.悩ましい.折角Rubyなんだから,全部のプラグインはクラスにしちゃって,継承継承で色々派生させる方が美しいんじゃないかなぁと思う.気に入らなければ自分で作れって話だな.