Class: Csvtool::Interface::CLI::Workflows::Steps::Extraction::BuildPreviewStep

Inherits:
Object
  • Object
show all
Defined in:
lib/csvtool/interface/cli/workflows/steps/extraction/build_preview_step.rb

Instance Method Summary collapse

Constructor Details

#initialize(confirm_prompt:) ⇒ BuildPreviewStep

Returns a new instance of BuildPreviewStep.



13
14
15
# File 'lib/csvtool/interface/cli/workflows/steps/extraction/build_preview_step.rb', line 13

def initialize(confirm_prompt:)
  @confirm_prompt = confirm_prompt
end

Instance Method Details

#call(context) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/csvtool/interface/cli/workflows/steps/extraction/build_preview_step.rb', line 17

def call(context)
  preview_result = context.fetch(:use_case).preview(session: context.fetch(:session))
  unless preview_result.ok?
    context.fetch(:handle_error).call(preview_result)
    return :halt
  end

  preview = Domain::ColumnSession::Preview.new(
    values: preview_result.data[:preview_values].map { |value| Domain::ColumnSession::ExtractionValue.new(value) }
  )
  session = context.fetch(:session).with_preview(preview)
  confirmed = @confirm_prompt.call(session.preview.to_strings)
  return :halt unless confirmed

  context[:session] = session.confirm!
  nil
end