ERB on JRuby
JRuby0.8.3にてRuby on Railsが一部対応したとのことで、たぶんERBもJRubyで動くようになったんだろうなあと思い試してみました。
結論は、JRuby上でERBは動く!
とりあえずEclipse上でBSFを利用して以下のスクリプトを実行してみました。プロジェクトの構成はこんな感じでした。
test.rb
$:.unshift "./lib" puts "test" require 'erb' str = 'My number is <%= bar %>.' bar = 1986 puts ERB.new(str).result(binding)
BsfTest.java
package jp.fraction.test; import java.io.IOException; import org.apache.bsf.BSFException; import org.apache.bsf.BSFManager; import org.apache.commons.io.IOUtils; public class BsfTest { /** * @param args * @throws BSFException * @throws IOException */ public static void main(String[] args) throws BSFException, IOException { BSFManager manager = new BSFManager(); // スクリプトの実行。 manager.exec("ruby", "(java)", 1, 1, IOUtils.toString(BsfTest.class .getResourceAsStream("/test.rb"))); } }
これでJava上のテンプレートエンジンの選択肢がVelocityやFreeMakerに加えてさらに一つ増えた訳でめでたいことですw