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