Документация для опций Psych to_yaml? - PullRequest
25 голосов
/ 18 марта 2012

Ruby 1.9.3 по умолчанию использует Psych для YAML. Хотя документации ruby-doc для него совершенно не хватает , мне удалось найти один внешний фрагмент документации, который намекал на то, что опция indentation поддерживается. Это было подтверждено при тестировании:

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"

Предположительно, поддерживается больше опций. В частности, я хочу знать, как изменить ширину переноса строк или вообще отключить ее.

Какие варианты доступны?

Ответы [ 2 ]

41 голосов
/ 18 марта 2012

Глубоко в духе ruby-1.9.3-p125/ext/psych/emitter.c Я нашел три варианта:

  • indentation - Уровень должен быть меньше 10 и больше 1.
  • line_width - Установить предпочтительную ширину линии.
  • canonical - Установить стиль вывода на канонический или нет (true / false).

И они работают!

19 голосов
/ 27 сентября 2012

Если вы хотите отключить перенос строки, используйте эту опцию:

line_width: -1
...