Class: Serial::Serializer
- Inherits:
-
Object
- Object
- Serial::Serializer
- Defined in:
- lib/serial/serializer.rb
Overview
Using this class you build serializers.
Instance Attribute Summary collapse
-
#to_proc ⇒ Proc
readonly
Serializer composition!.
Instance Method Summary collapse
-
#call(context = nil, value) ⇒ Hash
Serialize an object with this serializer, optionally within a context.
-
#initialize {|builder, value| ... } ⇒ Serializer
constructor
Create a new Serializer, using the block as instructions.
-
#map(context = nil, list) ⇒ Array<Hash>
Serialize a list of objects with this serializer, optionally within a context.
Constructor Details
permalink #initialize {|builder, value| ... } ⇒ Serializer
Create a new Serializer, using the block as instructions.
15 16 17 18 19 20 21 22 |
# File 'lib/serial/serializer.rb', line 15 def initialize(&block) unless block_given? raise ArgumentError, "instructions (block) is required" end @block = block @to_proc = method(:to_proc_implementation).to_proc end |
Instance Attribute Details
permalink #to_proc ⇒ Proc (readonly)
Serializer composition!
103 104 105 |
# File 'lib/serial/serializer.rb', line 103 def to_proc @to_proc end |
Instance Method Details
permalink #call(context = nil, value) ⇒ Hash
Serialize an object with this serializer, optionally within a context.
61 62 63 |
# File 'lib/serial/serializer.rb', line 61 def call(context = nil, value) HashBuilder.build(context, value, &@block) end |
permalink #map(context = nil, list) ⇒ Array<Hash>
Serialize a list of objects with this serializer, optionally within a context.
84 85 86 |
# File 'lib/serial/serializer.rb', line 84 def map(context = nil, list) list.map { |item| call(context, item) } end |