2012-03-18 8 views
24

Ruby 1.9.3 usa por defecto Psych para YAML. Mientras que the ruby-doc documentation for it es carente completamente de, pude encontrar una pieza externa de documentación que sugería que la opción indentation es compatible. Esto se confirmó en las pruebas:Documentación para las opciones Psych to_yaml?

irb(main):001:0> RUBY_VERSION 
#=> "1.9.3" 
irb(main):002:0> require 'yaml' 
#=> true 
irb(main):003:0> [[[1]]].to_yaml 
#=> "---\n- - - 1\n" 
irb(main):009:0> [[[1]]].to_yaml indentation:9 
#=> "---\n-  -  - 1\n" 

Se presume que hay más opciones disponibles. Específicamente, quiero saber cómo cambiar el ancho de la línea o desactivarla por completo.

¿Cuáles son las opciones disponibles?

+0

Después de mirar la fuente de 2.2.0, una breve actualización: Parece que hay muy pocas opciones en este momento, por lo tanto, poca documentación todavía . –

Respuesta

36

profundo en los intestinos de ruby-1.9.3-p125/ext/psych/emitter.c encontré tres opciones:

  • indentation - El nivel debe ser menor que 10 y mayor que 1.
  • line_width - Ajuste el ancho de línea preferida.
  • canonical - Establezca el estilo de salida en canónico o no (verdadero/falso).

Y funcionan!

+1

Entonces, parece que no puede deshabilitar el ajuste de línea? Intenté 'line_width: 0' y con' nil' que no tienen ningún efecto. 'true' devuelve un error. – sawa

+0

@sawa Quiere 'line_width: 999' o algún otro número suficientemente grande. – Phrogz

+0

Parece que las opciones de Syck tampoco funcionan. Así que estos para Psych solo están disponibles para 1.9.3 – sashaegorov

19

Cuando desee desactivar ajuste de línea, utilice esta opción:

line_width: -1 
Cuestiones relacionadas