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