class Psych::Visitors::YAMLTree
def visit_Data o
def visit_Data o ivars = o.instance_variables if ivars.empty? tag = ['!ruby/data', o.class.name].compact.join(':') register o, @emitter.start_mapping(nil, tag, false, Nodes::Mapping::BLOCK) o.members.each do |member| @emitter.scalar member.to_s, nil, nil, true, false, Nodes::Scalar::ANY accept o.send member end @emitter.end_mapping else tag = ['!ruby/data-with-ivars', o.class.name].compact.join(':') node = @emitter.start_mapping(nil, tag, false, Psych::Nodes::Mapping::BLOCK) register(o, node) # Dump the members accept 'members' @emitter.start_mapping nil, nil, true, Nodes::Mapping::BLOCK o.members.each do |member| @emitter.scalar member.to_s, nil, nil, true, false, Nodes::Scalar::ANY accept o.send member end @emitter.end_mapping # Dump the ivars accept 'ivars' @emitter.start_mapping nil, nil, true, Nodes::Mapping::BLOCK ivars.each do |ivar| accept ivar.to_s accept o.instance_variable_get ivar end @emitter.end_mapping @emitter.end_mapping end end unless RUBY_VERSION < "3.2"