Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > yamlライブラリ > YAMLモジュール > add_domain_type

singleton method YAML.add_domain_type

add_domain_type(domain, type_tag) {|type, val| ...} -> nil[permalink][rdoc]

YAMLドメインに属しているクラスをYAMLに追加し、 そのクラスを見つけたときの操作を指定します。

[PARAM] domain:
YAMLのドメインを文字列で指定する。
[PARAM] type_tag:
加えるクラスを指定する。
[PARAM] type:
YAMLドメインとクラスの文字列
[PARAM] val:
YAMLデータ構造
require 'yaml'

class Person
  attr_accessor :name, :age
end

str=<<EOT
--- !Qjitsu.com,2007-05-04/Person
name: eiji
age: 33
EOT

YAML.each_document(str){|obj|
  p obj
}
#=> #<YAML::DomainType:0x2b07974 @type_id="Person", @domain="Qjitsu.com,2007-05-04", @value={"name"=>"eiji", "age"=>33}>
#
YAML.add_domain_type( "Qjitsu.com,2007-05-04", "Person" ) { |type, val|
  YAML.object_maker( Person, val )
}
YAML.each_document(str){|obj|
  p obj
}
#=> #<Person:0x2b0762c @age=33, @name="eiji">