Class: Solace::Serializers::BaseSerializer Abstract
- Inherits:
-
Object
- Object
- Solace::Serializers::BaseSerializer
- Includes:
- Utils
- Defined in:
- lib/solace/serializers/base_serializer.rb
Overview
This class is abstract.
The base serializer class
This class provides a consistent interface for serializing records.
Direct Known Subclasses
AddressLookupTableSerializer, InstructionSerializer, MessageSerializer, TransactionSerializer
Class Attribute Summary collapse
-
.steps ⇒ Object
An ordered list of methods to serialize the record.
Instance Attribute Summary collapse
-
#record ⇒ Record
The serialized record.
Instance Method Summary collapse
-
#call ⇒ String
Serializes the record.
-
#initialize(record) ⇒ BaseSerializer
constructor
Initialize a new serializer.
Constructor Details
#initialize(record) ⇒ BaseSerializer
Initialize a new serializer
31 32 33 34 |
# File 'lib/solace/serializers/base_serializer.rb', line 31 def initialize(record) super() @record = record end |
Class Attribute Details
.steps ⇒ Object
An ordered list of methods to serialize the record
57 58 59 |
# File 'lib/solace/serializers/base_serializer.rb', line 57 def steps @steps end |
Instance Attribute Details
#record ⇒ Record
Returns The serialized record.
25 26 27 |
# File 'lib/solace/serializers/base_serializer.rb', line 25 def record @record end |
Instance Method Details
#call ⇒ String
Serializes the record
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/solace/serializers/base_serializer.rb', line 39 def call bin = self.class .steps .map { |m| send(m) } .flatten .compact .pack('C*') Base64.strict_encode64(bin) rescue NameError => e raise "STEPS must be defined: #{e.}" end |