Ruby 扩展哈希要从YAML加载自身
我正在创建一个类,它是一个智能哈希,知道如果给定YAML文件名,如何加载自己的值,然后对它们执行各种操作。除了第一步难倒我。鉴于此代码:Ruby 扩展哈希要从YAML加载自身,ruby,hash,Ruby,Hash,我正在创建一个类,它是一个智能哈希,知道如果给定YAML文件名,如何加载自己的值,然后对它们执行各种操作。除了第一步难倒我。鉴于此代码: class Agent < Hash def initialize super end def load_from_file(filename) if (File.file?(filename)) self = YA
class Agent < Hash
def initialize
super
end
def load_from_file(filename)
if (File.file?(filename))
self = YAML.load_file(filename)
end
end
end
类代理
…错误消息是“无法更改self的值”
您将如何创建从文件加载自身的哈希?您非常接近。与自我分配不同,您只想使用:
类代理
#replace
将调用散列的键和值替换为传递的散列中的键和值-这正是您在本例中想要的。但是,在调用#replace
之前,请确保验证YAML数据确实是一个散列
class Agent < Hash
def initialize
super
end
def load_from_file(filename)
if (File.file?(filename))
replace YAML.load_file(filename)
end
end
end