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