Class: Jackal::Formatter

Inherits:
Object
  • Object
show all
Defined in:
lib/jackal/formatter.rb

Overview

Payload formatter

Constant Summary collapse

SOURCE =

Returns:

  • (String, Symbol)
nil
DESTINATION =

Returns:

  • (String, Symbol)
nil

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeself

Create a new instance



29
30
31
32
33
34
35
# File 'lib/jackal/formatter.rb', line 29

def initialize
  [:SOURCE, :DESTINATION].each do |key|
    unless(self.class.const_get(key))
      raise NotImplementedError.new("Formatter class must define #{key} constant")
    end
  end
end

Class Method Details

.descendantsArray<Class>

Returns registered formatters.

Returns:

  • (Array<Class>)

    registered formatters



15
16
17
# File 'lib/jackal/formatter.rb', line 15

def descendants
  @_descendants ||= []
end

.inherited(klass) ⇒ Object

Register formatter



10
11
12
# File 'lib/jackal/formatter.rb', line 10

def inherited(klass)
  Formatter.descendants.push(klass).uniq!
end

Instance Method Details

#destinationSymbol

Returns:

  • (Symbol)


43
44
45
# File 'lib/jackal/formatter.rb', line 43

def destination
  self.class.const_get(:DESTINATION).to_sym
end

#format(payload) ⇒ Object

Apply format to payload

Parameters:

  • payload (Smash)

Raises:

  • (NotImplementedError)


51
52
53
# File 'lib/jackal/formatter.rb', line 51

def format(payload)
  raise NotImplementedError
end

#sourceSymbol

Returns:

  • (Symbol)


38
39
40
# File 'lib/jackal/formatter.rb', line 38

def source
  self.class.const_get(:SOURCE).to_sym
end