YAML Ruby
Publicado: 26 de Nov del 2011Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com
¿Qué es el lenguaje YAML? Cuando usarlo y para qué sirve
¿Qué es YAML?
YAML es un formato para guardar objetos de datos con estructura de árbol. Sus siglas significan YAML Ain't Markup Language (YAML no es otro lenguaje de marcado).
Este lenguaje es muy legible para las personas, más legible que JSON y sobretodo que XML.
Normalmente se utiliza para definir archivos de configuración, aunque también es posible serializar objetos, es decir, escribir la estructura de un objeto en modo cadena de texto para posteriormente poderlo recuperar. Sin embargo, para este propósito es bastante más lento que utilizar JSON.
Hay librerías para todos los lenguajes de programación, desde Ruby, PHP, Java hasta C# entre otros.
Ruby on rails por ejemplo lo utiliza mucho en sus archivos de configuración. Veamos una muestra del archivo de configuración de las bases de datos (database.yml).
development: database: mi_app_development adapter: mysql host: localhost test: database: mi_app_test adapter: mysql host: localhost
La estructura del archivo es de tipo clave-valor. Además es importante la indentación, para definir la estructura de árbol padre-hijo.
También es común utilizar YAML en archivos de traducción. Por ejemplo:
es:
errors:
format: ""
messages:
greater_than_or_equal_to: debe ser mayor o igual a %{count}
not_found: no encontrado
already_confirmed: ya ha sido confirmada
less_than: debe ser menor que %{count}
date:
formats:
default: "%d/%m/%Y"
short: "%d/%m"
long: ""
Sintaxis alternativa
Para serializar objetos, YAML utiliza otra sintaxis para permitir escribir estructuras más complejas sin indentación. Veamos un ejemplo en Ruby:
Un hash del tipo:
{
:etiqueta1 => 1,
:etiqueta2 => 2
}en YAML quedaría así:
--- :etiqueta1: 1 :etiqueta2: 2
De archivo en formato YAML a objeto
En Ruby es muy simple cargar un archivo de configuración YAML, tan solo utilizando:
require 'yaml'
YAML.load(File.open("/tmp/ejemplo.yml"))
Obtendríamos el contenido del archivo deserializado y listo para usar.
De objeto a YAML
Y para pasar el contenido de una varialbe a YAML usaríamos el método to_yaml:
{
:etiqueta1 => 1,
:etiqueta2 => 2
}.to_yaml
Comentarios
Artículos relacionadosVer más
- Cómo instalar Ruby on Rails en Windows
- Modelo Vista Controlador
- ¿Qué es Ruby on Rails?
- Introducción a Ruby
- Ruby: Programación orientada a objetos
- Tratamiento de excepciones en Ruby
- Paginación en Ruby on Rails
- Urls amigables en Ruby on Rails
- Usando la consola de Ruby on Rails
- Instalar GIT, RVM, Ruby, Ruby on Rails y Passenger