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