Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > syckライブラリ > Syckモジュール > add_ruby_type
add_ruby_type(type_tag) {|type, val| ...} -> nil[permalink][rdoc]rubyタイプのクラスをYAMLに追加し、 そのクラスを見つけたときの操作を指定します。
require 'syck'
require 'yaml'
class Dog
attr_accessor :name
def initialize(name)
@name = name
end
end
str1=<<EOT
--- !ruby/Dog
name: pochi
--- !!Dog
age: 0.5
--- !Qjitsu.com,2007-05-06/Dog
preference: apple
EOT
YAML.add_ruby_type("Dog") do |type, val|
YAML.object_maker(Dog, val)
end
YAML.each_document(str1){|dog|
p dog.class
p dog.respond_to?(:name)
}
#=> Dog
#=> true
#=> YAML::PrivateType
#=> false
#=> YAML::DomainType
#=> false