Class: Solace::Serializers::BaseSerializer

Inherits:
Base
  • Object
show all
Defined in:
lib/solace/serializers/base_serializer.rb

Overview

Base serializer class

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

call

Constructor Details

#initialize(record) ⇒ BaseSerializer

Initialize a new serializer

Parameters:

  • record (Record)

    The record to serialize



31
32
33
# File 'lib/solace/serializers/base_serializer.rb', line 31

def initialize(record)
  @record = record
end

Class Attribute Details

.stepsArray

Returns The steps to deserialize the record.

Returns:

  • (Array)

    The steps to deserialize the record



18
19
20
# File 'lib/solace/serializers/base_serializer.rb', line 18

def steps
  @steps
end

.STEPSObject

An ordered list of methods to deserialize the record



18
# File 'lib/solace/serializers/base_serializer.rb', line 18

attr_accessor :steps

Instance Attribute Details

#recordRecord

Returns The serialized record.

Returns:

  • (Record)

    The serialized record.



25
26
27
# File 'lib/solace/serializers/base_serializer.rb', line 25

def record
  @record
end

Instance Method Details

#callString

Serializes the record

Returns:

  • (String)

    The serialized record (base64)



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/solace/serializers/base_serializer.rb', line 38

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.message}"
end