Class: CsvPatch::Revision
- Defined in:
- lib/csv_patch/revision.rb
Instance Method Summary collapse
- #add_new_lines ⇒ Object
- #column_metadata ⇒ Object
- #header_line(line) ⇒ Object
-
#initialize(changes, output_stream, id_column = nil) ⇒ Revision
constructor
A new instance of Revision.
- #replace_line(line) ⇒ Object
Methods inherited from Operation
Constructor Details
#initialize(changes, output_stream, id_column = nil) ⇒ Revision
Returns a new instance of Revision.
7 8 9 10 11 12 13 |
# File 'lib/csv_patch/revision.rb', line 7 def initialize changes, output_stream, id_column = nil @output_stream = output_stream @changes = changes @id_column = id_column header_line([]) end |
Instance Method Details
#add_new_lines ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/csv_patch/revision.rb', line 28 def add_new_lines @changes .values .reject { |change| change.nil? } .reject { |change| change[:applied] } .each do |addition| emit generate_new_row(addition) end end |
#column_metadata ⇒ Object
38 39 40 |
# File 'lib/csv_patch/revision.rb', line 38 def { columns: @columns, empty_columns: @empty_columns } end |
#header_line(line) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/csv_patch/revision.rb', line 15 def header_line line return unless line @columns = line @id_column_index = @columns.find_index(@id_column) mark_all_columns_empty end |
#replace_line(line) ⇒ Object
24 25 26 |
# File 'lib/csv_patch/revision.rb', line 24 def replace_line line emit replacement_line_for(line) end |