Class: Csvtool::Interface::CLI::Prompts::OutputDestinationPrompt

Inherits:
Object
  • Object
show all
Defined in:
lib/csvtool/interface/cli/prompts/output_destination_prompt.rb

Instance Method Summary collapse

Constructor Details

#initialize(stdin:, stdout:, errors:) ⇒ OutputDestinationPrompt

Returns a new instance of OutputDestinationPrompt.



8
9
10
11
12
# File 'lib/csvtool/interface/cli/prompts/output_destination_prompt.rb', line 8

def initialize(stdin:, stdout:, errors:)
  @stdin = stdin
  @stdout = stdout
  @errors = errors
end

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/csvtool/interface/cli/prompts/output_destination_prompt.rb', line 14

def call
  @stdout.puts "Output destination:"
  @stdout.puts "1. console"
  @stdout.puts "2. file"
  @stdout.print "Output destination [1]: "
  choice = @stdin.gets&.strip.to_s

  case choice
  when "", "1"
    { mode: :console }
  when "2"
    @stdout.print "Output file path: "
    output_path = @stdin.gets&.strip.to_s
    return { mode: :file, path: output_path } unless output_path.empty?

    @errors.empty_output_path
    nil
  else
    @errors.invalid_output_destination
    nil
  end
end