Class: CDMBL::FieldTransformer

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(origin_path: '', dest_path: '', record: {}, formatters: [], formatter_klass: FieldFormatter) ⇒ FieldTransformer

Returns a new instance of FieldTransformer.



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

def initialize(origin_path: '',
               dest_path: '',
               record: {},
               formatters: [],
               formatter_klass: FieldFormatter)
  @field_value     = compact(record.at_path(origin_path))
  @dest_path       = dest_path
  @formatters      = (!formatters.nil?) ? formatters : [DefaultFormatter]
  @formatter_klass = formatter_klass
end

Instance Attribute Details

#dest_pathObject (readonly)

Returns the value of attribute dest_path.



5
6
7
# File 'lib/cdmbl/field_transformer.rb', line 5

def dest_path
  @dest_path
end

#field_valueObject (readonly)

Returns the value of attribute field_value.



5
6
7
# File 'lib/cdmbl/field_transformer.rb', line 5

def field_value
  @field_value
end

#formatter_klassObject (readonly)

Returns the value of attribute formatter_klass.



5
6
7
# File 'lib/cdmbl/field_transformer.rb', line 5

def formatter_klass
  @formatter_klass
end

#formattersObject (readonly)

Returns the value of attribute formatters.



5
6
7
# File 'lib/cdmbl/field_transformer.rb', line 5

def formatters
  @formatters
end

Instance Method Details

#reduceObject



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

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

#valueObject



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

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