From 653b0bcbafcbddc9811c06e984f1bbeee2330ddf Mon Sep 17 00:00:00 2001 From: tenderlove Date: Sat, 17 Nov 2012 03:15:54 +0000 Subject: * ext/psych/lib/psych/visitors/yaml_tree.rb: use literal YAML style when emitting multi-line strings. Thanks @atambo * test/psych/test_yaml.rb: test for change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/psych/lib/psych/visitors/yaml_tree.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'ext/psych/lib/psych') diff --git a/ext/psych/lib/psych/visitors/yaml_tree.rb b/ext/psych/lib/psych/visitors/yaml_tree.rb index 9cbc05df4a..d420abd64e 100644 --- a/ext/psych/lib/psych/visitors/yaml_tree.rb +++ b/ext/psych/lib/psych/visitors/yaml_tree.rb @@ -231,15 +231,18 @@ module Psych plain = false quote = false style = Nodes::Scalar::ANY + tag = nil + str = o if binary?(o) str = [o].pack('m').chomp tag = '!binary' # FIXME: change to below when syck is removed #tag = 'tag:yaml.org,2002:binary' style = Nodes::Scalar::LITERAL + elsif o =~ /\n/ + quote = true + style = Nodes::Scalar::LITERAL else - str = o - tag = nil quote = !(String === @ss.tokenize(o)) plain = !quote end -- cgit v1.2.3