Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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で定義されるのでメタプログラミングな事をやりたい場合は注意してください。