【发布时间】:2011-12-13 19:59:15
【问题描述】:
我的班级是:
class Mycfg
@@options = {}
def init
@@options = YAML.load_file(Dir.pwd + PATH)
end
def set(key, val)
@@options[key] = val
end
def get(key)
@@options[key]
end
def save
end
end
使用这个类:
oj = Mycfg.new
oj.init
if oj.get 'name' == 'tom'
oj.set 'changed', Data.now
end
oj.save
YAML 文件:
name : tom
pawd : 123456
version : 0.0.1
created : 2011-10-24
changed : 2011-10-24
如果发生更改,我如何完成 save 方法来更新 YAML 文件?
【问题讨论】:
-
你应该缓存哈希的原始值。然后在程序结束时检查它是否等于当前的@@options。如果是这样,则删除旧的 yaml 文件并让 ruby 从头开始写出哈希 to_yaml。如果您想以此为例,我很乐意提供帮助。
-
我们可以为这个类添加一个@@copy_options 来缓存更改的内容,关键是我不知道如何将数据保存到 yaml 文件中。