http://rua.rubyforge.org/
http://rubyforge.org/frs/?group_id=4845&release_id=16541
Luaからブロック付のメソッドを呼び出せるようにした。
酔っ払いながら実装したんでかなり危険かも。
require 'rubygems' require 'rua' rua = Rua.new(:all) rua.range = 1..10 rua.eval(<<EOS) range.each(function(i) print(i) end) EOS
rb_iterateの使い方がイマイチ分かりづらいなー。
これで、ホスト側から適当なストリームを渡して、Lua側でごにょごにょするような処理がやりやすくなったと思う。
require 'rua' rua = Rua.new(:all) rua.trim = lambda do |x| x.strip end open('../README.txt') do |f| rua.fin = f rua.eval <<-EOS fin.each(function(i) print(trim(string.upper(i))) end) EOS end