Rua 0.2.4

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