J'essaie de modifier la désérialisation par défaut du format d'horodatage intégré, pour affecter le temps de Ruby.Ruby YAML :: load
Je le fais (avec succès) avec Hash:
YAML::add_domain_type('yaml.org,2002', 'map') { |t, v| nil }
YAML::add_domain_type('ruby.yaml.org,2002', 'hash') { |t, v| nil }
hash = { :hello => :world }
puts YAML::load(hash.to_yaml) # nil
Mais quand j'essaie même avec le temps, il ne fonctionne pas:
YAML::add_domain_type('yaml.org,2002', 'timestamp') { |t, v| nil }
YAML::add_domain_type('ruby.yaml.org,2002', 'time') { |t, v| nil }
puts YAML::load(Time.now.to_yaml).class # 'Time'
Toute aide serait appréciée. Merci!
Je ne sais pas si elle est liée, mais YAML ne parvient pas à aller-retour des objets temps selon http://redmine.ruby-lang.org/issues/show/4005 –
quel est le but de la toute première ligne, 'YAML :: add_domain_type ('yaml.org, 2002', 'map') {| t, v | nil} 'parce que si vous supprimez cela, le hachage ne fonctionne pas non plus. – stephenr
Référence pour [YAML :: add_domain_type] (http://yaml4r.sourceforge.net/doc/class/yaml_add_domain_type_method.htm). –