Class: ZenAndMusashi::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/zen_and_musashi/cli.rb

Constant Summary collapse

"Japanese wisdom for your terminal.\nLocal by default. Oracle optional."

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.start(argv) ⇒ Object



14
15
16
# File 'lib/zen_and_musashi/cli.rb', line 14

def self.start(argv)
  new.run(argv)
end

Instance Method Details

#run(argv) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/zen_and_musashi/cli.rb', line 18

def run(argv)
  command = argv.shift

  if command.nil? || %w[-h --help].include?(command)
    puts main_help
    exit 0
  end

  case command
  when '-v', '--version'
    puts "musashi version #{ZenAndMusashi::VERSION}"
    exit 0
  when 'zen', 'musashi'
    handle_wisdom(command.to_sym, argv)
  when 'add'
    handle_add(argv)
  when 'list'
    handle_list(argv)
  when 'remove'
    handle_remove(argv)
  else
    warn "Error: Unknown command '#{command}'."
    puts main_help
    exit 1
  end
rescue StandardError => e
  warn "Error: #{e.message}"
  exit 1
end