class MGit::Command

Public Class Methods

create(cmd) click to toggle source
# File lib/mgit/command.rb, line 49
def self.create(cmd)
  cmd = cmd.downcase.to_sym
  klass = @@commands[cmd] || @@aliases[cmd]
  if klass
    klass.new
  else
    fail UnknownCommandError, cmd
  end
end
execute(name, args) click to toggle source
# File lib/mgit/command.rb, line 13
def self.execute(name, args)
  cmd = create(name)
  cmd.check_arity(args)
  cmd.execute(args)
end
instance_each() { |klass| ... } click to toggle source
# File lib/mgit/command.rb, line 31
def self.instance_each
  @@commands.each do |_, klass|
    yield klass.new
  end
end
list() click to toggle source
# File lib/mgit/command.rb, line 27
def self.list
  '[' + @@commands.keys.join(', ') + ']'
end
load_commands() click to toggle source
# File lib/mgit/command.rb, line 8
def self.load_commands
  require_commands_from_directory File.expand_path('../commands', __FILE__)
  require_commands_from_directory Configuration.plugindir
end
register_alias(cmd) click to toggle source
# File lib/mgit/command.rb, line 23
def self.register_alias(cmd)
  @@aliases[cmd] = self
end
register_command(cmd) click to toggle source
# File lib/mgit/command.rb, line 19
def self.register_command(cmd)
  @@commands[cmd] = self
end
require_commands_from_directory(dir) click to toggle source
# File lib/mgit/command.rb, line 59
def self.require_commands_from_directory(dir)
  Dir["#{dir}/*.rb"].each { |file| require file }
end

Public Instance Methods

check_arity(args) click to toggle source
# File lib/mgit/command.rb, line 37
def check_arity(args)
  arity_min, arity_max = arity
  fail TooFewArgumentsError, self if arity_min && args.size < arity_min
  fail TooManyArgumentsError, self if arity_max && args.size > arity_max
end