Class: Kiba::Extend::Transforms::Fcar::Helpers::SumCollatedOccurrences
- Inherits:
-
Object
- Object
- Kiba::Extend::Transforms::Fcar::Helpers::SumCollatedOccurrences
- Includes:
- SingleWarnable
- Defined in:
- lib/kiba/extend/transforms/fcar/helpers/sum_collated_occurrences.rb
Overview
Splits on delim, converts to numbers, replaces with sum of numbers
If any value has anything other than digits, returns original value and puts a warning.
Instance Method Summary collapse
-
#initialize(field: :occurrences, delim: "////") ⇒ SumCollatedOccurrences
constructor
A new instance of SumCollatedOccurrences.
-
#process(row) ⇒ Object
Methods included from SingleWarnable
Constructor Details
#initialize(field: :occurrences, delim: "////") ⇒ SumCollatedOccurrences
Returns a new instance of SumCollatedOccurrences.
35 36 37 38 39 |
# File 'lib/kiba/extend/transforms/fcar/helpers/sum_collated_occurrences.rb', line 35 def initialize(field: :occurrences, delim: "////") @field = field @delim = delim setup_single_warning end |
Instance Method Details
#process(row) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/kiba/extend/transforms/fcar/helpers/sum_collated_occurrences.rb', line 41 def process(row) fieldval = row[field] return row if fieldval.blank? vals = fieldval.split(delim) if valid?(vals) row[field] = vals.map(&:to_i).sum else add_single_warning( "#{self.class.name}: Non-numeric value(s) in #{field}" ) end row end |