* 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
This commit is contained in:
tenderlove 2010-04-16 20:31:59 +00:00
Родитель 2db7b7f3fe
Коммит 5b5bbdbb35
4 изменённых файлов: 31 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Sat Apr 17 05:30:22 2010 Aaron Patterson <aaron@tenderlovemaking.com>
* 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 <aaron@tenderlovemaking.com>
* ext/psych/lib/psych/coder.rb (scalar): supporting deprecated methods

Просмотреть файл

@ -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)

Просмотреть файл

@ -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

Просмотреть файл

@ -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