diff options
Diffstat (limited to 'lib/yaml/rubytypes.rb')
-rw-r--r-- | lib/yaml/rubytypes.rb | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/yaml/rubytypes.rb b/lib/yaml/rubytypes.rb index bd91bc039d..2a0c31d990 100644 --- a/lib/yaml/rubytypes.rb +++ b/lib/yaml/rubytypes.rb @@ -315,25 +315,24 @@ class String } elsif self.is_binary_data? out.binary_base64( self ) - # elsif self =~ /^ |#{YAML::ESCAPE_CHAR}| $/ - # complex = false + elsif self =~ /#{YAML::ESCAPE_CHAR}/ + out.node_text( self, '"' ) else out.node_text( self, to_yaml_fold ) end - end - if not complex + else ostr = if out.options(:KeepValue) self elsif empty? "''" elsif self =~ /^[^#{YAML::WORD_CHAR}\/]| \#|#{YAML::ESCAPE_CHAR}|[#{YAML::SPACE_INDICATORS}]( |$)| $|\n|\'/ - "\"#{YAML.escape( self )}\"" + out.node_text( self, '"' ); nil elsif YAML.detect_implicit( self ) != 'str' - "\"#{YAML.escape( self )}\"" + out.node_text( self, '"' ); nil else self end - out.simple( ostr ) + out.simple( ostr ) unless ostr.nil? end } end |