Я использую стандартную библиотеку YAML, у меня есть объект, который я конвертирую в хеш при выгрузке, и я конвертирую из хэша при загрузке.В Marshal я использовал перегрузку методов _load и _dump, но Marshal не читается человеком = /
Я хочу что-то, что автоматически загружает объекты, например Marshal = /
Примерно так:
class Foo
def initialize(numbers)
@numbers = numbers
end
def to_yaml
dump = {}
@numbers.each {|k, v| dump[k.to_s] = v.to_s}
dump.to_yaml
end
def self.from_yaml(dump)
dump = YAML.load(dump)
numbers = {}
dump.each {|k, v| numbers[k.to_sym] = v.to_sym}
new(numbers)
end
end
bar = Foo.new({:one => :uno, :two => :dos, :three => :tres})
bar_yaml = bar.to_yaml
var = Foo.from_yaml(bar_yaml)
p var
Но менее явно