diff options
author | SHIBATA Hiroshi <hsbt@ruby-lang.org> | 2016-06-24 16:21:43 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-24 16:21:43 +0800 |
commit | 888f3c5c7268f7ffe5fa5af4295067fc12ca9fb6 (patch) | |
tree | 39237543fb2b643d936ad083f70ea6fe7deebe14 | |
parent | 1084fd32c039ba5760f444c2c016ec0d7163e19d (diff) | |
parent | b737f0811a9687cf86f44f0a35f61cbde9eac673 (diff) | |
download | psych-888f3c5c7268f7ffe5fa5af4295067fc12ca9fb6.tar.gz |
Merge pull request #270 from tenderlove/issue-11988
Support YAML 1.2 Core Schema
-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 |