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.
-
#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_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.
9 10 11 |
# File 'lib/psych/coder.rb', line 9 def implicit @implicit end |
#seq ⇒ Object
Returns the value of attribute seq.
10 11 12 |
# File 'lib/psych/coder.rb', line 10 def seq @seq end |
#style ⇒ Object
Returns the value of attribute style.
9 10 11 |
# File 'lib/psych/coder.rb', line 9 def style @style end |
#tag ⇒ Object
Returns the value of attribute tag.
9 10 11 |
# File 'lib/psych/coder.rb', line 9 def tag @tag end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
10 11 12 |
# File 'lib/psych/coder.rb', line 10 def type @type end |
Instance Method Details
#[](k) ⇒ Object
75 76 77 78 |
# File 'lib/psych/coder.rb', line 75 def [] k @type = :map @map[k] end |
#[]=(k, v) ⇒ Object Also known as: add
69 70 71 72 |
# File 'lib/psych/coder.rb', line 69 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.
32 33 34 35 36 37 |
# File 'lib/psych/coder.rb', line 32 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
64 65 66 67 |
# File 'lib/psych/coder.rb', line 64 def map= map @type = :map @map = map end |
#represent_map(tag, map) ⇒ Object
Emit a sequence with map
and tag
52 53 54 55 |
# File 'lib/psych/coder.rb', line 52 def represent_map tag, map @tag = tag self.map = map end |
#represent_scalar(tag, value) ⇒ Object
Emit a scalar with value
and tag
40 41 42 43 |
# File 'lib/psych/coder.rb', line 40 def represent_scalar tag, value self.tag = tag self.scalar = value end |
#represent_seq(tag, list) ⇒ Object
Emit a sequence with list
and tag
46 47 48 49 |
# File 'lib/psych/coder.rb', line 46 def represent_seq tag, list @tag = tag self.seq = list end |
#scalar(*args) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/psych/coder.rb', line 22 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
58 59 60 61 |
# File 'lib/psych/coder.rb', line 58 def scalar= value @type = :scalar @scalar = value end |