summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-27 20:19:16 +0000
committertenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-27 20:19:16 +0000
commitad3c1061a78f6efe0ee3584d92b3df448da9891f (patch)
tree1db26424549eb7e3c7eacb583275dbb89fecf7cc
parent4d4038f575d50e564d9b26141889fb2cc248e6de (diff)
* ext/psych/lib/psych/deprecated.rb: adding deprecated "read_type_class"
method * test/psych/test_deprecated.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ext/psych/lib/psych/deprecated.rb10
-rw-r--r--test/psych/test_deprecated.rb12
2 files changed, 22 insertions, 0 deletions
diff --git a/ext/psych/lib/psych/deprecated.rb b/ext/psych/lib/psych/deprecated.rb
index 1d401d920fc..dd4ca6b68f3 100644
--- a/ext/psych/lib/psych/deprecated.rb
+++ b/ext/psych/lib/psych/deprecated.rb
@@ -56,6 +56,16 @@ module Psych
return thing unless String === thing
"tag:yaml.org,2002:#{thing}"
end
+
+ def self.read_type_class type, reference
+ warn "#{caller[0]}: read_type_class is deprecated" if $VERBOSE
+ _, _, type, name = type.split ':', 4
+
+ reference = name.split('::').inject(reference) do |k,n|
+ k.const_get(n.to_sym)
+ end if name
+ [type, reference]
+ end
end
class Object
diff --git a/test/psych/test_deprecated.rb b/test/psych/test_deprecated.rb
index 6db7238b0c8..2312600ac85 100644
--- a/test/psych/test_deprecated.rb
+++ b/test/psych/test_deprecated.rb
@@ -187,5 +187,17 @@ module Psych
assert_equal Psych, Psych.tagurize(Psych)
assert_equal 'tag:yaml.org,2002:foo', Psych.tagurize('foo')
end
+
+ def test_read_type_class
+ things = Psych.read_type_class 'tag:yaml.org,2002:int:Psych::TestDeprecated::QuickEmitter', Object
+ assert_equal 'int', things.first
+ assert_equal Psych::TestDeprecated::QuickEmitter, things.last
+ end
+
+ def test_read_type_class_no_class
+ things = Psych.read_type_class 'tag:yaml.org,2002:int', Object
+ assert_equal 'int', things.first
+ assert_equal Object, things.last
+ end
end
end