Class: Batsir::Transformers::FieldTransformer

Inherits:
Transformer
  • Object
show all
Defined in:
lib/batsir/transformers/field_transformer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Transformer

#initialize, #transform

Constructor Details

This class inherits a constructor from Batsir::Transformers::Transformer

Instance Attribute Details

#fieldsObject

Returns the value of attribute fields.



4
5
6
# File 'lib/batsir/transformers/field_transformer.rb', line 4

def fields
  @fields
end

Instance Method Details

#execute(message) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/batsir/transformers/field_transformer.rb', line 17

def execute(message)
  fields = self.fields
  if fields.any? && message.respond_to?(:keys)
    symbolized_message_keys = {}
    message.keys.each do |key|
      symbolized_message_keys[key.to_sym] = key
    end

    fields_to_remove = symbolized_message_keys.keys - fields.keys - fields.values

    fields.each do |new, old|
      message[new.to_s] = message.delete(symbolized_message_keys[old])
    end

    fields_to_remove.each do |field|
      message.delete(symbolized_message_keys[field])
    end
  end
  message
end