RubyでJavaScriptみたいにアクセサが自動定義されてるHashみたいのって何を使えばいいのかなと思ってたんですが、標準ライブラリにOpenStructなんてのがあるんですね。

% irb -r ostruct
>> hash = {:foo => 1, :bar => 2}
=> {:foo=>1, :bar=>2}
>> hash.foo
NoMethodError: undefined method `foo' for {:foo=>1, :bar=>2}:Hash
        from (irb):2
>> ostruct = OpenStruct.new(hash)
=> #<OpenStruct foo=1, bar=2>
>> ostruct.foo
=> 1

便利ー!

参照:ostruct - Rubyリファレンスマニュアル

Comments


Option