singleton method Syck.add_ruby_type
add_ruby_type(type_tag) {|type, val| ...} -> nil
-
rubyタイプのクラスをYAMLに追加し、 そのクラスを見つけたときの操作を指定します。
- [PARAM] type_tag:
- rubyタイプのクラスを文字列で指定します。
- [PARAM] type:
- YAMLドメインとクラスの文字列
- [PARAM] val:
- 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
module Syck