class CDMDEXER::RecordTransformer

“Record Transformation Error: #{message}”

Attributes

error_klass[R]
field_mappings[R]
field_transformer[R]
record[R]

Public Class Methods

new(record: {}, field_mappings: [], field_transformer: FieldTransformer, error_klass: TransformationErrorMessage) click to toggle source
# File lib/cdmdexer/record_transformer.rb, line 5
def initialize(record: {},
               field_mappings: [],
               field_transformer: FieldTransformer,
               error_klass: TransformationErrorMessage)
  @record            = record
  @field_mappings    = field_mappings
  @field_transformer = field_transformer
  @error_klass = error_klass
end

Public Instance Methods

transform!() click to toggle source
# File lib/cdmdexer/record_transformer.rb, line 15
def transform!
  field_mappings.inject({}) do |dest_record, field_mapping|
    dest_record.merge(transform_field(record, field_mapping))
  end
rescue StandardError => error
  error_klass.new(message: message(error)).notify
end

Private Instance Methods

message(error) click to toggle source
# File lib/cdmdexer/record_transformer.rb, line 25
def message(error)
  "Record Transformation Error (Record #{record['id']}): #{error}"
end
transform_field(record, field_mapping) click to toggle source
# File lib/cdmdexer/record_transformer.rb, line 29
def transform_field(record, field_mapping)
  field_transformer.new(field_mapping: field_mapping,
                        record: record).reduce
end