diff options
author | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-16 20:31:59 +0000 |
---|---|---|
committer | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-16 20:31:59 +0000 |
commit | 5b5bbdbb35098e8e2dabe7af5d31526a54dc8bbd (patch) | |
tree | b13a953eeabb87fbce34ecb67818b24164ca8298 | |
parent | 2db7b7f3fe7de2b518d46ea11c26875f86d26136 (diff) |
* ext/psych/lib/psych/core_ext.rb (yaml_as): supporting deprecated
"yaml_as" method
* ext/syck/lib/syck/tag.rb: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/psych/lib/psych/core_ext.rb | 13 | ||||
-rw-r--r-- | ext/syck/lib/syck/tag.rb | 5 | ||||
-rw-r--r-- | test/psych/test_deprecated.rb | 8 |
4 files changed, 31 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Sat Apr 17 05:30:22 2010 Aaron Patterson <[email protected]> + + * ext/psych/lib/psych/core_ext.rb (yaml_as): supporting deprecated + "yaml_as" method + * ext/syck/lib/syck/tag.rb: ditto + Sat Apr 17 05:25:15 2010 Aaron Patterson <[email protected]> * ext/psych/lib/psych/coder.rb (scalar): supporting deprecated methods diff --git a/ext/psych/lib/psych/core_ext.rb b/ext/psych/lib/psych/core_ext.rb index 9c55c707a1..8d3e8fb7b6 100644 --- a/ext/psych/lib/psych/core_ext.rb +++ b/ext/psych/lib/psych/core_ext.rb @@ -16,6 +16,19 @@ class Object alias :to_yaml :psych_to_yaml end +class Module + def psych_yaml_as url + return if caller[0].end_with?('rubytypes.rb') + if $VERBOSE + warn "#{caller[0]}: yaml_as is deprecated, please use yaml_tag" + end + Psych.add_tag(url, self) + end + + remove_method :yaml_as rescue nil + alias :yaml_as :psych_yaml_as +end + module Kernel def psych_y *objects puts Psych.dump_stream(*objects) diff --git a/ext/syck/lib/syck/tag.rb b/ext/syck/lib/syck/tag.rb index bfb4dc714d..9c6de57953 100644 --- a/ext/syck/lib/syck/tag.rb +++ b/ext/syck/lib/syck/tag.rb @@ -56,7 +56,7 @@ class Module # Adds a taguri _tag_ to a class, used when dumping or loading the class # in YAML. See YAML::tag_class for detailed information on typing and # taguris. - def yaml_as( tag, sc = true ) + def syck_yaml_as( tag, sc = true ) verbose, $VERBOSE = $VERBOSE, nil class_eval <<-"END", __FILE__, __LINE__+1 attr_writer :taguri @@ -78,6 +78,9 @@ class Module ensure $VERBOSE = verbose end + remove_method :yaml_as rescue nil + alias :yaml_as :syck_yaml_as + # Transforms the subclass name into a name suitable for display # in a subclassed tag. def yaml_tag_class_name diff --git a/test/psych/test_deprecated.rb b/test/psych/test_deprecated.rb index e77d18c10c..41106ffcfd 100644 --- a/test/psych/test_deprecated.rb +++ b/test/psych/test_deprecated.rb @@ -139,5 +139,13 @@ module Psych assert_equal 'some string', coder.scalar assert_equal :scalar, coder.type end + + class YamlAs + yaml_as 'helloworld' + end + + def test_yaml_as + assert_match(/helloworld/, Psych.dump(YamlAs.new)) + end end end |