If an object defines encode_with, then an instance of Psych::Coder will be passed to the method when the object is being serialized. The Coder automatically assumes a Psych::Nodes::Mapping is being emitted. Other objects like Sequence and Scalar may be emitted if seq= or scalar= are called, respectively.

Methods
#
A
M
N
R
S
Attributes
[RW] implicit
[RW] object
[R] seq
[RW] style
[RW] tag
[R] type
Class Public methods
new(tag)
# File ext/psych/lib/psych/coder.rb, line 12
def initialize tag
  @map      = {}
  @seq      = []
  @implicit = false
  @type     = :map
  @tag      = tag
  @style    = Psych::Nodes::Mapping::BLOCK
  @scalar   = nil
  @object   = nil
end
Instance Public methods
[](k)
# File ext/psych/lib/psych/coder.rb, line 83
def [] k
  @type = :map
  @map[k]
end
[]=(k, v)
Also aliased as: add
# File ext/psych/lib/psych/coder.rb, line 77
def []= k, v
  @type = :map
  @map[k] = v
end
add(k, v)
Alias for: []=
map(tag = @tag, style = @style)

Emit a map. The coder will be yielded to the block.

# File ext/psych/lib/psych/coder.rb, line 33
def map tag = @tag, style = @style
  @tag   = tag
  @style = style
  yield self if block_given?
  @map
end
map=(map)

Emit a map with value

# File ext/psych/lib/psych/coder.rb, line 72
def map= map
  @type = :map
  @map  = map
end
represent_map(tag, map)

Emit a sequence with map and tag

# File ext/psych/lib/psych/coder.rb, line 53
def represent_map tag, map
  @tag = tag
  self.map = map
end
represent_object(tag, obj)

Emit an arbitrary object obj and tag

# File ext/psych/lib/psych/coder.rb, line 59
def represent_object tag, obj
  @tag    = tag
  @type   = :object
  @object = obj
end
represent_scalar(tag, value)

Emit a scalar with value and tag

# File ext/psych/lib/psych/coder.rb, line 41
def represent_scalar tag, value
  self.tag    = tag
  self.scalar = value
end
represent_seq(tag, list)

Emit a sequence with list and tag

# File ext/psych/lib/psych/coder.rb, line 47
def represent_seq tag, list
  @tag = tag
  self.seq = list
end
scalar(*args)
# File ext/psych/lib/psych/coder.rb, line 23
def scalar *args
  if args.length > 0
    warn "#{caller[0]}: Coder#scalar(a,b,c) is deprecated" if $VERBOSE
    @tag, @scalar, _ = args
    @type = :scalar
  end
  @scalar
end
scalar=(value)

Emit a scalar with value

# File ext/psych/lib/psych/coder.rb, line 66
def scalar= value
  @type   = :scalar
  @scalar = value
end
seq=(list)

Emit a sequence of list

# File ext/psych/lib/psych/coder.rb, line 89
def seq= list
  @type = :seq
  @seq  = list
end