class Dracula
Constants
- VERSION
Attributes
options[R]
Public Class Methods
desc(name, description)
click to toggle source
# File lib/dracula.rb, line 62 def desc(name, description) @desc = Command::Desc.new(name, description) end
long_desc(description)
click to toggle source
# File lib/dracula.rb, line 58 def long_desc(description) @long_desc = description end
namespace()
click to toggle source
# File lib/dracula.rb, line 49 def namespace @namespace ||= Dracula::Namespace.new(self) end
new(options = {})
click to toggle source
# File lib/dracula.rb, line 89 def initialize(options = {}) @options = options end
option(name, params = {})
click to toggle source
# File lib/dracula.rb, line 53 def option(name, params = {}) @options ||= [] @options << Dracula::Flag.new(name, params) end
program_name(name = nil)
click to toggle source
# File lib/dracula.rb, line 14 def program_name(name = nil) if name.nil? @@program_name || "dracula" # getter else @@program_name = name # setter end end
register(name, description, klass)
click to toggle source
# File lib/dracula.rb, line 66 def register(name, description, klass) klass.namespace.name = name klass.namespace.description = description klass.namespace.parent = namespace namespace.add_subcommand(klass.namespace) end
start(args)
click to toggle source
# File lib/dracula.rb, line 22 def start(args) if args.empty? || (args.size == 1 && args[0] == "help") namespace.help else action = args[0] == "help" ? :help : :run if args[0] == "help" action = :help args.shift # drop 'help' command = args.shift params = args else action = :run command = args.shift params = args end namespace.dispatch(command.split(":"), params, action) end end
structure()
click to toggle source
# File lib/dracula.rb, line 45 def structure Dracula::Structure.new(namespace).generate end
Private Class Methods
method_added(method_name)
click to toggle source
# File lib/dracula.rb, line 76 def method_added(method_name) command = Command.new(self, method_name, @desc, @long_desc, @options) @desc = nil @long_desc = nil @options = nil namespace.add_command(command) end