Документация по настройкам Psych to_yaml?

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 ответа

Решение

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

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

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

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

line_width: -1
Другие вопросы по тегам