【发布时间】:2011-08-18 19:06:27
【问题描述】:
我使用的是标准 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
但不太明确
【问题讨论】:
标签: load marshalling yaml dump