Class: RDockerize::CLI

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

Constant Summary collapse

COMMANDS =

Available commands

{
  "dco" => "RDockerize::Commands::Dco", # alias for docker-compose
  "compose" => "RDockerize::Commands::Dco", # alias for docker-compose
  "docker-compose" => "RDockerize::Commands::Dco",
  "docker" => "RDockerize::Commands::Docker",
  "dockerize" => "RDockerize::Commands::Dockerize",
  "save" => "RDockerize::Commands::Save"
}.freeze

Instance Method Summary collapse

Constructor Details

#initializeCLI

Returns a new instance of CLI.



17
18
19
20
# File 'lib/r_dockerize/cli.rb', line 17

def initialize
  option_parser
  @print_help = false
end

Instance Method Details

#run(args = ARGV) ⇒ Object

Build necessary class using command’s pull of constants



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/r_dockerize/cli.rb', line 23

def run(args = ARGV)
  command = parse_command(args)

  print_help? unless command

  args.delete(command)

  begin
    Object.const_get(COMMANDS[command]).run(args)
  rescue TypeError, KeyError
    raise Errors::CommandNotFound, command: command, av_commands: COMMANDS.keys.join(", ")
  rescue StandardError => e
    if DEBUG
      $stdout.puts e.message
      $stdout.puts e.backtrace.join("\n")
    end
    raise e
  end
end