PRagger!!!

Shun Ikejima

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なんだから,全部のプラグインはクラスにしちゃって,継承継承で色々派生させる方が美しいんじゃないかなぁと思う.気に入らなければ自分で作れって話だな.