Class: SwitchDb::OptionParser

Inherits:
Object
  • Object
show all
Defined in:
lib/switch_db/option_parser.rb

Constant Summary collapse

REQUIRED_KEYS =
{
  config: [],
  store: %i[name --database_names],
  restore: [:name],
  rm: [:name],
  list: []
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ OptionParser

Returns a new instance of OptionParser.



13
14
15
16
# File 'lib/switch_db/option_parser.rb', line 13

def initialize(argv)
  @original_argv = argv
  @options = {}
end

Instance Method Details

#parse!(argv = @original_argv.clone) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/switch_db/option_parser.rb', line 18

def parse!(argv = @original_argv.clone)
  @options[:command] = argv[0]

  # rubocop:disable Lint/EmptyWhen
  case @options[:command]
  when 'list'
    # Do nothing
  when 'config'
    parse_config_argv(argv[1..-1])
  when 'store', 'restore', 'rm'
    @options[:name] = argv[1]
    parse_argv(argv)
  else
    parse_argv(argv)
  end
  # rubocop:enable Lint/EmptyWhen

  validate_option!

  @options
end