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



59
60
61
62
# File 'lib/solace/serializers/base_serializer.rb', line 59

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

Class Attribute Details

.stepsObject

An ordered list of methods to serialize the record



85
86
87
# File 'lib/solace/serializers/base_serializer.rb', line 85

def steps
  @steps
end

Instance Attribute Details

#recordRecord

Returns The serialized record.

Returns:

  • (Record)

    The serialized record.

Since:

  • 0.0.1



53
54
55
# File 'lib/solace/serializers/base_serializer.rb', line 53

def record
  @record
end

Instance Method Details

#callString

Serializes the record

Returns:

  • (String)

    The serialized record (base64)

Since:

  • 0.0.1



67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/solace/serializers/base_serializer.rb', line 67

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