Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Structの拡張版OpenStructは要素の削除や追加ができる

OpenStructは標準添付ライブラリです。
基本はStructですがパラメータの追加や削除が可能です。
また、Structと同様にメソッドを追加する事もできます。

require 'ostruct'
ab = OpenStruct.new
ab.foo = 25
p ab.foo          # => 25
ab.bar = 2
p ab.bar          # => 2
p ab              # => <OpenStruct foo=25, bar=2>
ab.delete_field("foo")
p ab.foo          # => nil
p ab              # => <OpenStruct bar=2>

新しいパラメータはmethod_missingで定義されるのでメタプログラミングな事をやりたい場合は注意してください。