class Psych::Visitors::YAMLTree

Public Instance Methods

dump_coder(o) click to toggle source
# File lib/RGSS/psych_mods.rb, line 100
def dump_coder o
  @coders << o
  tag = Psych.dump_tags[o.class]
  unless tag
    klass = o.class == Object ? nil : o.class.name
    tag   = ['!ruby/object', klass].compact.join(':')
  end

  c = Psych::Coder.new(tag)
  o.encode_with(c)
  register o, emit_coder(c)
end
dump_ivars(target) click to toggle source
# File lib/RGSS/psych_mods.rb, line 114
def dump_ivars target
  ivars = find_ivars target
  ivars = ivars.sort() if @options[:sort]

  ivars.each do |iv|
    @emitter.scalar("#{iv.to_s.sub(/^@/, '')}", nil, nil, true, false, Nodes::Scalar::ANY)
    accept target.instance_variable_get(iv)
  end
end
visit_Hash(o) click to toggle source
# File lib/RGSS/psych_mods.rb, line 62
def visit_Hash o
  tag      = o.class == ::Hash ? nil : "!ruby/hash:#{o.class}"
  implicit = !tag

  register(o, @emitter.start_mapping(nil, tag, implicit, Nodes::Mapping::BLOCK))

  keys = o.keys
  keys = keys.sort if @options[:sort]
  keys.each do |k|
    accept k
    accept o[k]
  end

  @emitter.end_mapping
end
visit_Object(o) click to toggle source
# File lib/RGSS/psych_mods.rb, line 79
def visit_Object o
  tag = Psych.dump_tags[o.class]
  unless tag
    klass = o.class == Object ? nil : o.class.name
    tag   = ['!ruby/object', klass].compact.join(':')
  end
  
  if @options[:flow_classes] && @options[:flow_classes].include?(o.class)
    style = Nodes::Mapping::FLOW
  else
    style = Nodes::Mapping::BLOCK
  end

  map = @emitter.start_mapping(nil, tag, false, style)
  register(o, map)

  dump_ivars o
  @emitter.end_mapping
end