class Batsir::Transformers::FieldTransformer

Attributes

fields[RW]

Public Instance Methods

execute(message) click to toggle source
# 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
fields=(hash) click to toggle source
# File lib/batsir/transformers/field_transformer.rb, line 10
def fields=(hash)
  @fields = {}
  hash.each do |k, v|
    @fields[k.to_sym] = v.to_sym
  end
end