https://github.com/ksss/mruby-ostruct
CRubyのOpenStructをmrubyに移植しました。
前からあったにはあったけど、mruby側で動的にsingleton methodを作るKernel#define_singleton_method
がなかったのでただのHashのラッパーになっていました。
自力でKernel#define_singleton_method
を実装して提案してみたら、mruby側に取り込まれたようです。
そんなわけでmruby-ostructでの呼び出しがちゃんとmethodとして機能するようになったのでここにお知らせします。
DSLとかに便利かもしれないです。
o = OpenStruct.new o.foo = 1 o.bar = "baz" p o.foo #=> 1 p o.bar #=> "baz" p o.to_h #=> {:foo => 1, :bar => "baz"}