ちなみに

火曜日の空は僕を押しつぶした。

Rubyfluxためした

RubyJavaに変換できるという触れ込みの Rubyflux をためしてみました。

headius/rubyflux - JRubyCharles Nutterさんが作ってる。

README通りにやるとうまくいく。ように見えてサンプルの素直なフィボナッチ数列のものじゃないと動かない。空のクラスをインスタンス化しただけのものでもコンパイル出来ないJavaのコードになったりした。

今後の展開にきたい。

$ git clone https://github.com/headius/rubyflux.git
$ cd rubyflux
$ brew install maven2
$ mvn package
$ rbenv install jruby-1.7.2
$ rbenv shell jruby-1.7.2
$ cat target.rb
# coding: utf-8

def fib(num)
  a, b = 0, 1
  num.times { a, b = b, a + b }
  a
end

puts fib 40

$ rake run\[target.rb\]
jruby -I target:src/main/ruby src/main/ruby/ruby_flux.rb fib.rb
javac fib.java
java fib
Exception in thread "main" java.lang.RuntimeException: Method 'times' not defined on type RFixnum
	at RKernel.method_missing(RKernel.java:56)
	at RObject.times(RObject.java:9)
	at RFixnum.times(RFixnum.java:4)
	at test.fib(test.java:19)
	at test.$main(test.java:10)
	at test.main(test.java:5)
rake aborted!
Command failed with status (1): [java test...]
org/jruby/RubyProc.java:249:in `call'
/Users/tomohiro/repositories/rubyflux/Rakefile:16:in `(root)'
org/jruby/RubyProc.java:249:in `call'
org/jruby/RubyArray.java:1613:in `each'
org/jruby/RubyArray.java:1613:in `each'
org/jruby/RubyKernel.java:1046:in `load'
Tasks: TOP => run
(See full trace by running task with --trace)