Class: Solace::Serializers::BaseDeserializer Abstract
- Inherits:
-
Object
- Object
- Solace::Serializers::BaseDeserializer
- Includes:
- Utils
- Defined in:
- lib/solace/serializers/base_deserializer.rb
Overview
This class is abstract.
The base deserializer class
This class provides a consistent interface for deserializing records.
Direct Known Subclasses
AddressLookupTableDeserializer, InstructionDeserializer, MessageDeserializer, TransactionDeserializer
Class Attribute Summary collapse
-
.record_class ⇒ Object
The class of the record being deserialized.
-
.steps ⇒ Object
An ordered list of methods to deserialize the record.
Instance Attribute Summary collapse
-
#io ⇒ IO, StringIO
The input to read bytes from.
-
#record ⇒ Record
The deserialized record.
Instance Method Summary collapse
-
#call ⇒ Record
Deserializes the record.
-
#initialize(io) ⇒ BaseDeserializer
constructor
Initialize a new deserializer.
Constructor Details
#initialize(io) ⇒ BaseDeserializer
Initialize a new deserializer
37 38 39 40 41 |
# File 'lib/solace/serializers/base_deserializer.rb', line 37 def initialize(io) super() @io = io @record = self.class.record_class.new end |
Class Attribute Details
.record_class ⇒ Object
The class of the record being deserialized
62 63 64 |
# File 'lib/solace/serializers/base_deserializer.rb', line 62 def record_class @record_class end |
.steps ⇒ Object
An ordered list of methods to deserialize the record
56 57 58 |
# File 'lib/solace/serializers/base_deserializer.rb', line 56 def steps @steps end |
Instance Attribute Details
#io ⇒ IO, StringIO
Returns The input to read bytes from.
25 26 27 |
# File 'lib/solace/serializers/base_deserializer.rb', line 25 def io @io end |
#record ⇒ Record
Returns The deserialized record.
31 32 33 |
# File 'lib/solace/serializers/base_deserializer.rb', line 31 def record @record end |
Instance Method Details
#call ⇒ Record
Deserializes the record
46 47 48 49 |
# File 'lib/solace/serializers/base_deserializer.rb', line 46 def call self.class.steps.each { send(_1) } record end |