yml with spanish rails in18 i18n example ruby-on-rails ruby parsing hash yaml

ruby-on-rails - spanish - rails i18n with parameters



Cómo analizar un archivo yaml en hashs y/o matrices de ruby? (4)

Necesito cargar un archivo yaml en Hash,
¿Que debería hacer?


Puede encontrarse con un problema mencionado en esta pregunta relacionada , es decir, que el archivo o secuencia YAML especifica un objeto en el que el cargador YAML intentará convertir los datos. El problema es que necesitarás una Gema relacionada que conozca el objeto en cuestión.

Mi solución fue bastante trivial y se proporciona como respuesta a esa pregunta. Hacer esto:

yamltext = File.read("somefile","r") yamltext.sub!(/^--- /!.*$/,''---'') hash = YAML.load(yamltext)

Básicamente, quita el texto del clasificador de objetos del yaml-text. Luego lo analizas / cargas.


Una versión más simple de la respuesta de Venables:

hash = YAML.load_file("file_path")


Use el módulo YAML:
http://ruby-doc.org/stdlib-1.9.3/libdoc/yaml/rdoc/YAML.html

node = YAML::parse( <<EOY ) one: 1 two: 2 EOY puts node.type_id # prints: ''map'' p node.value[''one''] # prints key and value nodes: # [ #<YAML::YamlNode:0x8220278 @type_id="str", @value="one", @kind="scalar">, # #<YAML::YamlNode:0x821fcd8 @type_id="int", @value="1", @kind="scalar"> ]'' # Mappings can also be accessed for just the value by accessing as a Hash directly p node[''one''] # prints: #<YAML::YamlNode:0x821fcd8 @type_id="int", @value="1", @kind="scalar">

http://yaml4r.sourceforge.net/doc/page/parsing_yaml_documents.htm


Yo usaría algo como:

hash = YAML.load(File.read("file_path"))