Class: Ardb::CLI
- Inherits:
-
Object
- Object
- Ardb::CLI
- Defined in:
- lib/ardb/cli.rb,
lib/ardb/cli/clirb.rb,
lib/ardb/cli/commands.rb
Defined Under Namespace
Modules: MigrateCommandBehaviors, MigrateDirectionBehaviors, MigrateStepDirectionBehaviors, MigrateStyleBehaviors, ValidCommand Classes: CLIRB, CommandSet, ConnectCommand, CreateCommand, DropCommand, GenerateMigrationCommand, InvalidCommand, MigrateBackwardCommand, MigrateCommand, MigrateDownCommand, MigrateForwardCommand, MigrateUpCommand
Constant Summary collapse
- COMMANDS =
CommandSet.new{ |unknown| InvalidCommand.new(unknown) }.tap do |c| c.add(ConnectCommand) c.add(CreateCommand) c.add(DropCommand) c.add(GenerateMigrationCommand) c.add(MigrateCommand) c.add(MigrateUpCommand) c.add(MigrateDownCommand) c.add(MigrateForwardCommand) c.add(MigrateBackwardCommand) end
- InvalidCommandError =
Class.new(ArgumentError)
- CommandExitError =
Class.new(RuntimeError)
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(kernel = nil, stdout = nil, stderr = nil) ⇒ CLI
constructor
A new instance of CLI.
- #run(args) ⇒ Object
Constructor Details
#initialize(kernel = nil, stdout = nil, stderr = nil) ⇒ CLI
Returns a new instance of CLI.
23 24 25 26 27 |
# File 'lib/ardb/cli.rb', line 23 def initialize(kernel = nil, stdout = nil, stderr = nil) @kernel = kernel || Kernel @stdout = stdout || $stdout @stderr = stderr || $stderr end |
Class Method Details
.run(args) ⇒ Object
19 20 21 |
# File 'lib/ardb/cli.rb', line 19 def self.run(args) self.new.run(args) end |
Instance Method Details
#run(args) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/ardb/cli.rb', line 29 def run(args) begin $LOAD_PATH.push(Dir.pwd) unless $LOAD_PATH.include?(Dir.pwd) cmd_name = args.shift cmd = COMMANDS[cmd_name] cmd.run(args) rescue CLIRB::HelpExit @stdout.puts cmd.command_help rescue CLIRB::VersionExit @stdout.puts Ardb::VERSION rescue CLIRB::Error, ArgumentError, InvalidCommandError => exception display_debug(exception) @stderr.puts "#{exception.}\n\n" @stdout.puts cmd.command_help @kernel.exit 1 rescue CommandExitError @kernel.exit 1 rescue StandardError => exception @stderr.puts "#{exception.class}: #{exception.}" @stderr.puts exception.backtrace.join("\n") @kernel.exit 1 end @kernel.exit 0 end |