diff options
-rw-r--r-- | lib/psych/visitors/yaml_tree.rb | 2 | ||||
-rw-r--r-- | test/psych/visitors/test_yaml_tree.rb | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/psych/visitors/yaml_tree.rb b/lib/psych/visitors/yaml_tree.rb index 7c40050..11214ec 100644 --- a/lib/psych/visitors/yaml_tree.rb +++ b/lib/psych/visitors/yaml_tree.rb @@ -331,7 +331,7 @@ module Psych style = Nodes::Scalar::FOLDED elsif o =~ /^[^[:word:]][^"]*$/ style = Nodes::Scalar::DOUBLE_QUOTED - elsif not String === @ss.tokenize(o) + elsif not String === @ss.tokenize(o) or /\A0[0-7]*[89]/ =~ o style = Nodes::Scalar::SINGLE_QUOTED end diff --git a/test/psych/visitors/test_yaml_tree.rb b/test/psych/visitors/test_yaml_tree.rb index b3890bc..5755f58 100644 --- a/test/psych/visitors/test_yaml_tree.rb +++ b/test/psych/visitors/test_yaml_tree.rb @@ -156,6 +156,12 @@ module Psych assert_equal(-1, Psych.load(Psych.dump(-1 / 0.0)).infinite?) end + def test_string + assert_match(/'017'/, Psych.dump({'a' => '017'})) + assert_match(/'019'/, Psych.dump({'a' => '019'})) + assert_match(/'01818'/, Psych.dump({'a' => '01818'})) + end + # http://yaml.org/type/null.html def test_nil assert_cycle nil |