Class: CDMBL::FieldTransformer

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/cdmbl/field_transformer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(field_mapping: FieldMapping.new, record: {}, formatter_klass: FieldFormatter) ⇒ FieldTransformer

Returns a new instance of FieldTransformer.



8
9
10
11
12
13
14
# File 'lib/cdmbl/field_transformer.rb', line 8

def initialize(field_mapping: FieldMapping.new,
               record: {},
               formatter_klass: FieldFormatter)
  @field_mapping   = field_mapping
  @field_value     = compact(record.at_path(origin_path))
  @formatter_klass = formatter_klass
end

Instance Attribute Details

#field_mappingObject (readonly)

Returns the value of attribute field_mapping.



7
8
9
# File 'lib/cdmbl/field_transformer.rb', line 7

def field_mapping
  @field_mapping
end

#field_valueObject (readonly)

Returns the value of attribute field_value.



7
8
9
# File 'lib/cdmbl/field_transformer.rb', line 7

def field_value
  @field_value
end

#formatter_klassObject (readonly)

Returns the value of attribute formatter_klass.



7
8
9
# File 'lib/cdmbl/field_transformer.rb', line 7

def formatter_klass
  @formatter_klass
end

Instance Method Details

#reduceObject



16
17
18
# File 'lib/cdmbl/field_transformer.rb', line 16

def reduce
  (blank?(value)) ? {} : { "#{dest_path}" => value }
end

#valueObject



20
21
22
# File 'lib/cdmbl/field_transformer.rb', line 20

def value
  @value ||= (!blank?(field_value)) ? transform_field : nil
end