У меня есть класс, как этот:
class A
attr_accessor(:field2)
attr_accessor(:field1)
end
Каков наилучший способ создать из него хеш-код с ключами и значениями, взятыми из экземпляра класса?
А как лучше всего заполнить экземпляр класса A значениями из этого хэша?
=====
Я, вероятно, ищу что-то похожее на самоанализ JavaBeans, который бы дал мне имена полей объекта данных, а затем выполнил бы логику на основе этой информации. Ruby - очень современный гибкий и динамический язык, и я отказываюсь признать, что он не позволит мне делать то, что я легко могу сделать с Java; -)
=====
В итоге я обнаружил, что Struct - лучший вариант:
a = {:a => 'qwe', :b => 'asd'}
s = Struct.new(*a.keys).new(*a.values) # Struct from Hash
h = Hash[*s.members.zip(s.values).flatten] # Hash from Struct