Я думаю, это то, о чем вы спрашиваете, поэтому, пожалуйста, уточните, не сошел ли я с базы. Вам нужен быстрый и простой способ взять хеш и превратить его в объект с помощью методов типа x.red
, правильно? OpenStruct может быть ответом:
require 'ostruct'
hash = { :red => 1, :green => 2, :blue => 3 }
colorset = OpenStruct.new(hash)
Тогда вы можете позвонить:
colorset.red + colorset.green + colorset.blue
и получите:
=> 6
EDIT:
Основываясь на ваших комментариях, забудьте о вышесказанном, я думаю, вам просто нужны вложенные хэши со значимыми ключами:
colors = { 'fuschia' => { 'red'=> 1 , 'green' => 2, 'blue' => 3 },
'goldenrod' => { 'red'=> 2, 'green' => 3, 'blue'=> 4 } }
Затем получите доступ к таким значениям:
colors['fuschia']['red']
=> 1