Class: Solace::Serializers::BaseSerializer Abstract

Inherits:
Object
  • Object
show all
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.

Since:

  • 0.0.1

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(record) ⇒ BaseSerializer

Initialize a new serializer

Parameters:

  • record (Record)

    The record to serialize

Since:

  • 0.0.1



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

def initialize(record)
  super()
  @record = record
end

Class Attribute Details

.stepsObject

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

#recordRecord

Returns The serialized record.

Returns:

  • (Record)

    The serialized record.

Since:

  • 0.0.1



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)

Since:

  • 0.0.1



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