lớp của tôi là:Cập nhật một file YAML trong Ruby
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
Sử dụng lớp này:
oj = Mycfg.new
oj.init
if oj.get 'name' == 'tom'
oj.set 'changed', Data.now
end
oj.save
file YAML:
name : tom
pawd : 123456
version : 0.0.1
created : 2011-10-24
changed : 2011-10-24
Làm thế nào để tôi hoàn thành phương pháp save
để cập nhật tệp YAML nếu có gì đó đã thay đổi?
Bạn nên lưu vào bộ nhớ cache giá trị ban đầu của hàm băm. Sau đó, vào cuối chương trình kiểm tra xem nó có bằng với các tùy chọn @@ hiện tại hay không. Nếu vậy thì xóa tập tin yaml cũ và có ruby ghi ra hàm băm to_yaml từ đầu. Nếu bạn muốn xem đây là một ví dụ, tôi sẽ sẵn sàng bắt buộc. –
Chúng tôi có thể thêm một @@ copy_options cho lớp này để lưu bộ nhớ cache thay đổi, điểm là tôi không biết làm thế nào để lưu dữ liệu vào tập tin yaml. – coolesting