Rua 0.4.7

http://rua.rubyforge.org/
http://rubyforge.org/projects/rua/
Rua 0.4.7をリリースしました。

変更点

  • evalでスクリプト名を渡せるようにした
rua = Rua.new

begin
  rua.eval(<<-EOS)
    xxx
  EOS
rescue => e
  puts e
end

begin
  rua.eval(<<-EOS, 'script_name')
    xxx
  EOS
rescue => e
  puts e
end


[string " xxx..."]:2: '=' expected near ''
[string "script_name"]:2: '=' expected near ''

  • LuaからRubyの関数を呼び出すとき、最後の引数が関数オブジェクトだったらブロックとしてあつかう、というびみょーな機能があるけど、オプションで制御できるようにした
class Foo
  def func(*args)
    if block_given?
      yield
    else
      p args
    end
  end
end

rua = Rua.new(:all)
rua.Foo = Foo

rua.eval(<<-EOS)
  foo = Foo.new()
  foo.func(function()
    print('called.')
  end)
EOS

rua.accept_block = false

rua.eval(<<-EOS)
  foo = Foo.new()
  foo.func(function()
    print('called.')
  end)
EOS


called.
[#]

妙にLuaが流行りつつある気がするけど、気のせいかな?