web-dev-qa-db-fra.com

Lecture et mise à jour du fichier YAML par Ruby code

J'ai écrit un fichier yml comme celui-ci:

last_update: '2014-01-28 11:00:00'

Je lis ce fichier comme

config = YAML.load('config/data.yml')

Plus tard, j'accède à last_update_time en tant que config ['last_update'] mais cela ne fonctionne pas. Aussi, je veux mettre à jour last_update_time par mon Ruby code comme il devrait se mettre à jour comme:

 last_update: '2014-01-29 23:59:59' 

Je ne sais pas comment faire ça.

17
Joy

Basculez .load vers .load_file et vous devriez être prêt à partir.

#!/usr/bin/env Ruby
require 'yaml'
config = YAML.load_file('data.yml')
puts config['last_update']

Après avoir exécuté c'est ce que je reçois

orcus:~ user$ Ruby test.rb
# ⇒ some_data

Pour écrire le fichier, vous devrez ouvrir le fichier YAML et écrire dans la poignée. Quelque chose comme ça devrait fonctionner.

require 'yaml'
config = YAML.load_file('data.yml')
puts config['last_update'] #in my file this is set to "some data"
config['last_update'] = "other data"
File.open('data.yml','w') do |h| 
   h.write config.to_yaml
end

La sortie était

orcus:~ user$ Ruby test.rb
some data
orcus:~ user$ cat data.yml
---
last_update: other data
38
Phobos