Объект в Ruby довольно сильно отличается от объекта в JavaScript, к которому, я полагаю, вы привыкли, поэтому добавлять свойства на лету не так просто.Hash вместо этого очень похож на ассоциативный массив в JS, и вы можете использовать его для своих целей:
states = Hash.new # or just {}
states[state[:abbr]] = state[:name] # {'MD' => 'Maryland'}
states['AL'] = 'Alaska' # {'MD' => 'Maryland', 'AL' => 'Alaska'}
states.keys # => ['MD', 'AL']
states.values # => ['Maryland', 'Alaska']
states['AL'] # => 'Alaska'
Как вы можете видеть, Hash обеспечивает добавление, поиск и выборку из коробки, поэтому выдаже не нужно определять свой собственный класс.Также хорошей идеей будет замораживание содержимого после добавления к нему состояний.