Class: Kiba::Extend::Transforms::Deduplicate::Fields
- Inherits:
 - 
      Object
      
        
- Object
 - Kiba::Extend::Transforms::Deduplicate::Fields
 
 
- Includes:
 - MultivalPlusDelimDeprecatable, SepDeprecatable
 
- 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, multival: omitted = true, sep: nil, delim: nil)  ⇒ Fields 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Fields.
 - 
  
    
      #process(row)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 
Methods included from SepDeprecatable
Methods included from MultivalPlusDelimDeprecatable
Constructor Details
#initialize(source:, targets:, casesensitive: true, multival: omitted = true, sep: nil, delim: nil) ⇒ Fields
Returns a new instance of Fields.
      145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170  | 
    
      # File 'lib/kiba/extend/transforms/deduplicate/fields.rb', line 145 def initialize(source:, targets:, casesensitive: true, multival: omitted = true, sep: nil, delim: nil) @source = source @casesensitive = casesensitive @multival = if omitted && delim true else set_multival(multival, omitted, self) end if sep.nil? && delim.nil? && multival && !omitted msg = "If you are expecting Kiba::Extend.delim to be used as "\ "default `sep` value, please pass it as explicit `delim` "\ "argument. In a future release of kiba-extend, the `delim` "\ "value will no longer default to Kiba::Extend.delim." warn("#{Kiba::Extend.warning_label}:\n #{self.class}: #{msg}") sep = Kiba::Extend.delim end @delim = usedelim(sepval: sep, delimval: delim, calledby: self, default: nil) 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
      173 174 175 176 177 178 179 180 181 182 183 184 185  | 
    
      # File 'lib/kiba/extend/transforms/deduplicate/fields.rb', line 173 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  |