Class: Dandelion::Application
- Inherits:
-
Object
- Object
- Dandelion::Application
- Defined in:
- lib/dandelion/application.rb
Class Method Summary collapse
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(args) ⇒ Application
constructor
A new instance of Application.
- #log ⇒ Object
Constructor Details
#initialize(args) ⇒ Application
Returns a new instance of Application.
11 12 13 14 15 |
# File 'lib/dandelion/application.rb', line 11 def initialize(args) @args = args @options = {} @parser = OptionParser.new end |
Class Method Details
.execute(args) ⇒ Object
6 7 8 |
# File 'lib/dandelion/application.rb', line 6 def execute(args) new(args).execute end |
Instance Method Details
#execute ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/dandelion/application.rb', line 17 def execute global = Command::Base.parser(@options) parse(global) begin name = @args.shift command = Command::Base.create(name) parse(command.parser(@options)) rescue Command::InvalidCommandError log.fatal("Invalid command: #{name}") log.fatal(global.help) log.fatal("Available commands:") log.fatal(Command::Base.commands.map { |name| " #{name}" }.join("\n")) exit 1 end prepare validate command.new(@options) do |cmd| cmd.setup(@args) if cmd.respond_to?(:setup) cmd.execute end end |