La mia classe è:Aggiornamento di un file YAML in 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
Utilizzando questa classe:
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
Come finisco il metodo save
per aggiornare il file YAML se qualcosa è cambiato?
È necessario memorizzare nella cache il valore originale dell'hash. Quindi, alla fine del programma, controlla se è uguale alle attuali opzioni @@. Se è così, cancella il vecchio file yaml e fai scrivere a ruby l'hash to_yaml da zero. Se vuoi vedere questo come esempio, ti farei volentieri. –
Potremmo aggiungere un @@ copy_options per questa classe per memorizzare nella cache la modifica, il punto è che non so come salvare i dati nel file yaml. – coolesting