Module: DBRocket::Command
- Defined in:
- lib/db_rockets/cli/command.rb,
lib/db_rockets/cli/commands/app.rb,
lib/db_rockets/cli/commands/base.rb,
lib/db_rockets/cli/commands/help.rb,
lib/db_rockets/cli/commands/server.rb
Defined Under Namespace
Classes: App, Base, CommandFailed, Help, InvalidCommand, Server
Class Method Summary
collapse
Class Method Details
.display(msg) ⇒ Object
21
22
23
|
# File 'lib/db_rockets/cli/command.rb', line 21
def display(msg)
puts(msg)
end
|
.namespaces ⇒ Object
42
43
44
45
46
|
# File 'lib/db_rockets/cli/command.rb', line 42
def namespaces
@@namespaces ||= Dir["#{File.dirname(__FILE__)}/commands/*"].map do |namespace|
namespace.gsub(/.*\//, '').gsub(/\.rb/, '')
end
end
|
.parse(command) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/db_rockets/cli/command.rb', line 25
def parse(command)
parts = command.split(':')
case parts.size
when 1
if namespaces.include? command
return command, 'index'
else
return 'app', command
end
when 2
raise InvalidCommand unless namespaces.include? parts[0]
return parts
else
raise InvalidCommand
end
end
|
.run(command, args) ⇒ Object
7
8
9
10
11
|
# File 'lib/db_rockets/cli/command.rb', line 7
def run(command, args)
run_internal(command, args)
rescue InvalidCommand
display "Unknown command. Run 'db_rocket help' for usage information."
end
|
.run_internal(command, args) ⇒ Object
13
14
15
16
17
18
19
|
# File 'lib/db_rockets/cli/command.rb', line 13
def run_internal(command, args)
namespace, command = parse(command)
require "#{namespace}"
klass = DBRocket::Command.const_get(namespace.capitalize).new(args)
raise InvalidCommand unless klass.respond_to?(command)
klass.send(command)
end
|