Документация для 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"
Есть, вероятно, больше опций. В частности, я хочу знать, как изменить ширину переноса строки или вообще отключить ее.
Каковы доступные параметры?
Ответы
Ответ 1
Глубоко в кистях ruby-1.9.3-p125/ext/psych/emitter.c
Я нашел три варианта:
-
indentation
- Уровень должен быть меньше 10 и больше 1.
-
line_width
- Установите предпочтительную ширину линии.
-
canonical
- Установите стиль вывода каноническим или нет (true/false).
И они работают!
Ответ 2
Если вы хотите отключить перенос строки, используйте эту опцию:
line_width: -1