Class: Kiba::Extend::Transforms::Deduplicate::Fields
- Inherits:
-
Object
- Object
- Kiba::Extend::Transforms::Deduplicate::Fields
- Defined in:
- lib/kiba/extend/transforms/deduplicate/fields.rb
Overview
Removes the value(s) of source from targets
Instance Method Summary collapse
-
#initialize(source:, targets:, casesensitive: true, delim: nil) ⇒ Fields
constructor
A new instance of Fields.
-
#process(row) ⇒ Object
Constructor Details
#initialize(source:, targets:, casesensitive: true, delim: nil) ⇒ Fields
Returns a new instance of Fields.
76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/kiba/extend/transforms/deduplicate/fields.rb', line 76 def initialize(source:, targets:, casesensitive: true, delim: nil) @source = source @casesensitive = casesensitive @delim = delim getter_params = if @delim {fields: targets, delim: @delim} else {fields: targets} end @getter = Helpers::FieldValueGetter.new(**getter_params) end |
Instance Method Details
#process(row) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/kiba/extend/transforms/deduplicate/fields.rb', line 89 def process(row) sourceval = row[source] return row unless sourceval targetdata = getter.call(row) return row if targetdata.empty? sourcevals = split_value(sourceval) targetdata.transform_values! { |val| split_value(val) } deduplicate(row, sourcevals, targetdata) row end |