Module: CSVPlusPlus::Writer::Merger

Extended by:
T::Sig
Includes:
Kernel
Included in:
CSV, GoogleSheetsBuilder, RubyXLBuilder
Defined in:
lib/csv_plus_plus/writer/merger.rb

Overview

A merging strategy for when we want to write to a cell but it has a value

Instance Method Summary collapse

Instance Method Details

#merge_cell_value(existing_value:, new_value:, options:) ⇒ Object

Our strategy for resolving differences between new changes and existing



20
21
22
23
24
25
26
27
28
# File 'lib/csv_plus_plus/writer/merger.rb', line 20

def merge_cell_value(existing_value:, new_value:, options:)
  # TODO: make an option that specifies if we override (take new data over old)
  merged_value = new_value || existing_value

  return merged_value if !options.verbose || merged_value == existing_value

  warn("Overwriting existing value: \"#{existing_value}\" with \"#{new_value}\"")
  merged_value
end