Sha256: f2003d2f66c314787ed459e084a149b9a7be07648040e9d5a9aac7074c5ddd50

Contents?: true

Size: 634 Bytes

Versions: 7

Compression:

Stored size: 634 Bytes

Contents

module CsvPiper
  module PreProcessors
    class RemoveEmptyColumns
      def process(origin, errors)
        modified_origin = origin.reject { |key, _| key.nil? || key.strip.empty? }
        [modified_origin, errors]
      end
    end

    # Just removing nil is significanlty faster for large csvs (100M+ cells)
    # (10M cells = ~20x faster on 10 col row [3.8s vs 0.19s], ~100x faster on 1000 col row [3.8s vs 0.035s]).
    # Even better is your processors don't need this pre-processing.
    class RemoveNilColumns
      def process(origin, errors)
        origin.delete(nil)
        [origin, errors]
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
csv_piper-1.0.0 lib/csv_piper/pre_processors/remove_extra_columns.rb
csv_piper-0.1.9 lib/csv_piper/pre_processors/remove_extra_columns.rb
csv_piper-0.1.8 lib/csv_piper/pre_processors/remove_extra_columns.rb
csv_piper-0.1.7 lib/csv_piper/pre_processors/remove_extra_columns.rb
csv_piper-0.1.6 lib/csv_piper/pre_processors/remove_extra_columns.rb
csv_piper-0.1.5 lib/csv_piper/pre_processors/remove_extra_columns.rb
csv_piper-0.1.4 lib/csv_piper/pre_processors/remove_extra_columns.rb