Документация по настройкам 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