Class: Csvtool::Interface::CLI::Prompts::SplitOutputPrompt

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

Instance Method Summary collapse

Constructor Details

#initialize(stdin:, stdout:, yes_no_prompt:) ⇒ SplitOutputPrompt

Returns a new instance of SplitOutputPrompt.



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

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

Instance Method Details

#call(default_directory:, default_prefix:) ⇒ Object



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

def call(default_directory:, default_prefix:)
  @stdout.print "Output directory [#{default_directory}]: "
  output_directory = @stdin.gets&.strip.to_s
  output_directory = default_directory if output_directory.empty?

  @stdout.print "Output file prefix [#{default_prefix}]: "
  file_prefix = @stdin.gets&.strip.to_s
  file_prefix = default_prefix if file_prefix.empty?

  overwrite_existing = @yes_no_prompt.call(
    label: "Overwrite existing chunk files? [y/N]: ",
    default: false
  )

  {
    output_directory: output_directory,
    file_prefix: file_prefix,
    overwrite_existing: overwrite_existing
  }
end