Class: Kiba::Extend::Transforms::Clean::RegexpFindReplaceFieldVals
- Inherits:
-
Object
- Object
- Kiba::Extend::Transforms::Clean::RegexpFindReplaceFieldVals
- Includes:
- Allable, MultivalPlusDelimDeprecatable, SepDeprecatable
- Defined in:
- lib/kiba/extend/transforms/clean/regexp_find_replace_field_vals.rb
Overview
Performs specified regular expression find/replace in the specified field(s)
Instance Method Summary collapse
-
#initialize(fields:, find:, replace:, casesensitive: true, multival: omitted = true, sep: nil, delim: nil, debug: false) ⇒ RegexpFindReplaceFieldVals
constructor
A new instance of RegexpFindReplaceFieldVals.
-
#process(row) ⇒ Object
Methods included from SepDeprecatable
Methods included from MultivalPlusDelimDeprecatable
Constructor Details
#initialize(fields:, find:, replace:, casesensitive: true, multival: omitted = true, sep: nil, delim: nil, debug: false) ⇒ RegexpFindReplaceFieldVals
Returns a new instance of RegexpFindReplaceFieldVals.
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 |
# File 'lib/kiba/extend/transforms/clean/regexp_find_replace_field_vals.rb', line 250 def initialize(fields:, find:, replace:, casesensitive: true, multival: omitted = true, sep: nil, delim: nil, debug: false) @fields = [fields].flatten @find = build_pattern(find, casesensitive) @replace = replace @debug = debug @mv = if omitted && delim true else set_multival(multival, omitted, self) end if sep.nil? && delim.nil? && mv && !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) end |
Instance Method Details
#process(row) ⇒ Object
276 277 278 279 280 281 282 283 284 285 286 287 288 289 |
# File 'lib/kiba/extend/transforms/clean/regexp_find_replace_field_vals.rb', line 276 def process(row) finalize_fields(row) fields.each do |field| oldval = row.fetch(field, nil) next if oldval.nil? next unless oldval.is_a?(String) newval = mv ? mv_find_replace(oldval) : sv_find_replace(oldval) target = debug ? :"#{field}_repl" : field row[target] = newval.blank? ? nil : newval end row end |