Estoy tratando de modificar la deserialización predeterminada del formato de marca de tiempo incorporado, para afectar el tiempo de Ruby.Ruby YAML :: cargar
hago esto (con éxito) con 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
Pero cuando trato de la misma con el tiempo, no funciona:
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'
Cualquier ayuda sería muy apreciada. ¡Gracias!
No estoy seguro de si está relacionado, pero YAML está fallando a ida y vuelta objetos de tiempo de acuerdo a http://redmine.ruby-lang.org/issues/show/4005 –
¿Cuál es el propósito de la primera línea, 'YAML :: add_domain_type ('yaml.org, 2002', 'map') {| t, v | nil} 'porque si eliminas eso, el hash tampoco funciona. – stephenr
Referencia para [YAML :: add_domain_type] (http://yaml4r.sourceforge.net/doc/class/yaml_add_domain_type_method.htm). –