Class: Psych::Coder
Overview
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.
Instance Attribute Summary collapse
-
#implicit ⇒ Object
Returns the value of attribute implicit.
-
#object ⇒ Object
Returns the value of attribute object.
-
#seq ⇒ Object
Returns the value of attribute seq.
-
#style ⇒ Object
Returns the value of attribute style.
-
#tag ⇒ Object
Returns the value of attribute tag.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
- #[](k) ⇒ Object
- #[]=(k, v) ⇒ Object (also: #add)
-
#initialize(tag) ⇒ Coder
constructor
A new instance of Coder.
-
#map(tag = @tag, style = @style) {|_self| ... } ⇒ Object
Emit a map.
-
#map=(map) ⇒ Object
Emit a map with
value
. -
#represent_map(tag, map) ⇒ Object
Emit a sequence with
map
andtag
. -
#represent_object(tag, obj) ⇒ Object
Emit an arbitrary object
obj
andtag
. -
#represent_scalar(tag, value) ⇒ Object
Emit a scalar with
value
andtag
. -
#represent_seq(tag, list) ⇒ Object
Emit a sequence with
list
andtag
. - #scalar(*args) ⇒ Object
-
#scalar=(value) ⇒ Object
Emit a scalar with
value
.
Constructor Details
Instance Attribute Details
#implicit ⇒ Object
Returns the value of attribute implicit.
10 11 12 |
# File 'lib/psych/coder.rb', line 10 def implicit @implicit end |
#object ⇒ Object
Returns the value of attribute object.
10 11 12 |
# File 'lib/psych/coder.rb', line 10 def object @object end |
#seq ⇒ Object
Returns the value of attribute seq.
11 12 13 |
# File 'lib/psych/coder.rb', line 11 def seq @seq end |
#style ⇒ Object
Returns the value of attribute style.
10 11 12 |
# File 'lib/psych/coder.rb', line 10 def style @style end |
#tag ⇒ Object
Returns the value of attribute tag.
10 11 12 |
# File 'lib/psych/coder.rb', line 10 def tag @tag end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
11 12 13 |
# File 'lib/psych/coder.rb', line 11 def type @type end |
Instance Method Details
#[](k) ⇒ Object
84 85 86 87 |
# File 'lib/psych/coder.rb', line 84 def [] k @type = :map @map[k] end |
#[]=(k, v) ⇒ Object Also known as: add
78 79 80 81 |
# File 'lib/psych/coder.rb', line 78 def []= k, v @type = :map @map[k] = v end |
#map(tag = @tag, style = @style) {|_self| ... } ⇒ Object
Emit a map. The coder will be yielded to the block.
34 35 36 37 38 39 |
# File 'lib/psych/coder.rb', line 34 def map tag = @tag, style = @style @tag = tag @style = style yield self if block_given? @map end |
#map=(map) ⇒ Object
Emit a map with value
73 74 75 76 |
# File 'lib/psych/coder.rb', line 73 def map= map @type = :map @map = map end |
#represent_map(tag, map) ⇒ Object
Emit a sequence with map
and tag
54 55 56 57 |
# File 'lib/psych/coder.rb', line 54 def represent_map tag, map @tag = tag self.map = map end |
#represent_object(tag, obj) ⇒ Object
Emit an arbitrary object obj
and tag
60 61 62 63 64 |
# File 'lib/psych/coder.rb', line 60 def represent_object tag, obj @tag = tag @type = :object @object = obj end |
#represent_scalar(tag, value) ⇒ Object
Emit a scalar with value
and tag
42 43 44 45 |
# File 'lib/psych/coder.rb', line 42 def represent_scalar tag, value self.tag = tag self.scalar = value end |
#represent_seq(tag, list) ⇒ Object
Emit a sequence with list
and tag
48 49 50 51 |
# File 'lib/psych/coder.rb', line 48 def represent_seq tag, list @tag = tag self.seq = list end |
#scalar(*args) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/psych/coder.rb', line 24 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) ⇒ Object
Emit a scalar with value
67 68 69 70 |
# File 'lib/psych/coder.rb', line 67 def scalar= value @type = :scalar @scalar = value end |