summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-04-29 12:07:14 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-04-29 12:07:14 -0700
commit07c95f862b7cedfae0706aa9aa32bf627673f151 (patch)
tree37e740ff09740aafddc959546630fafe8dec7f65
parent22589e504eb32388b23dd9c22ed7e95cd11c845a (diff)
parente1d7f705da01349b93420cd7f54576949d694a69 (diff)
downloadpsych-07c95f862b7cedfae0706aa9aa32bf627673f151.tar.gz
Merge branch 'master' into jruby
* master: add test don't assume any tag starting with 'str' is a string
-rw-r--r--lib/psych/visitors/to_ruby.rb4
-rw-r--r--test/psych/visitors/test_to_ruby.rb7
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/psych/visitors/to_ruby.rb b/lib/psych/visitors/to_ruby.rb
index b68abb6..ea3ab1c 100644
--- a/lib/psych/visitors/to_ruby.rb
+++ b/lib/psych/visitors/to_ruby.rb
@@ -61,7 +61,7 @@ module Psych
case o.tag
when '!binary', 'tag:yaml.org,2002:binary'
o.value.unpack('m').first
- when /^!(?:str|ruby\/string)(?::(.*))?/, 'tag:yaml.org,2002:str'
+ when /^!(?:str|ruby\/string)(?::(.*))?$/, 'tag:yaml.org,2002:str'
klass = resolve_class($1)
if klass
klass.allocate.replace o.value
@@ -208,7 +208,7 @@ module Psych
obj
end
- when /^!(?:str|ruby\/string)(?::(.*))?/, 'tag:yaml.org,2002:str'
+ when /^!(?:str|ruby\/string)(?::(.*))?$/, 'tag:yaml.org,2002:str'
klass = resolve_class($1)
members = {}
string = nil
diff --git a/test/psych/visitors/test_to_ruby.rb b/test/psych/visitors/test_to_ruby.rb
index c13d980..5c6ba2b 100644
--- a/test/psych/visitors/test_to_ruby.rb
+++ b/test/psych/visitors/test_to_ruby.rb
@@ -321,6 +321,13 @@ description:
assert_equal %w{ foo foo }, list
assert_equal list[0].object_id, list[1].object_id
end
+
+ def test_mapping_with_str_tag
+ mapping = Nodes::Mapping.new(nil, '!strawberry')
+ mapping.children << Nodes::Scalar.new('foo')
+ mapping.children << Nodes::Scalar.new('bar')
+ assert_equal({'foo' => 'bar'}, mapping.to_ruby)
+ end
end
end
end