PRaggerみたいな何か - pipepo(ぴぺぽ)
PRaggerは便利そうなのですが、YAMLで設定ファイルを書くのが面倒だなぁと思って、Ruby自体をDSLとしたPRaggerみたいなものを作ってみました。名前はpipepo(ぴぺぽ)です。名前の由来は、パイプぽい(PIPE POi)何かです。
ファイル: pipepo.rb
#!/usr/bin/env ruby eval(ARGF.read) @pipe.inject(nil) {|acc, meth| meth[acc] }
ファイル: sample.conf
# -*- ruby -*- def foo1(s) lambda {|a| s } end def foo2 lambda {|a| a.upcase } end def foo3 lambda {|a| puts a } end @pipe = [ foo1('Hello, world!!'), foo2, foo3 ]
実行例:
$ ruby pipepo.rb sample.conf HELLO, WORLD!!
実装について少し補足します。プラグインはlambdaで書きます。設定(PRaggerでいうところのconfig)はlambdaの中に閉じ込めます(foo1のsを参照)。
そのうちコードをまとめてGoogle Code Archive - Long-term storage for Google Code Project Hosting.で公開しようと思います。Google Code - Project Hostingは思い付いたときにすぐプロジェクトを始められるので便利です。
参照: Shun Ikejima