Class: SmartCsvImport::Processor

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/smart_csv_import/processor.rb,
lib/smart_csv_import/processor/row_processor.rb,
lib/smart_csv_import/processor/nil_cell_counter.rb,
lib/smart_csv_import/processor/import_result_builder.rb,
lib/smart_csv_import/processor/mapping_review_policy.rb,
lib/smart_csv_import/processor/csv_preflight_analyzer.rb,
lib/smart_csv_import/processor/null_progress_callback.rb

Defined Under Namespace

Modules: CsvPreflightAnalyzer, ImportResultBuilder, MappingReviewPolicy, NilCellCounter, RowProcessor Classes: NullProgressCallback

Constant Summary collapse

FULL_LOAD_CHUNK_SIZE =
10_000_000

Instance Method Summary collapse

Constructor Details

#initialize(file_path:, form_class:, mode: :sync, batch_size: SmartCsvImport.configuration.batch_size, dry_run: false, import: nil, confirmed_mappings: nil, on_progress: nil) ⇒ Processor

Returns a new instance of Processor.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/smart_csv_import/processor.rb', line 12

def initialize(file_path:, form_class:, mode: :sync, batch_size: SmartCsvImport.configuration.batch_size, dry_run: false, import: nil, confirmed_mappings: nil, on_progress: nil)
  @file_path = file_path
  @form_class = form_class
  @mode = mode
  @batch_size = batch_size
  @dry_run = dry_run
  @existing_import = import
  @confirmed_mappings = confirmed_mappings
  @on_progress = on_progress

  validate_form_class!
  validate_on_progress!

  @on_progress ||= NullProgressCallback.new
end

Instance Method Details

#callObject



28
29
30
31
32
33
34
35
# File 'lib/smart_csv_import/processor.rb', line 28

def call
  import = @existing_import || create_import
  check_duplicate(import) unless @existing_import

  return enqueue_async(import) if @mode == :async

  process_csv(import)
end