def command(name, &block)
      yield add_command(Commander::Command.new(name)) if block
      @commands[name.to_s]
    end
#
Creates and yields a command instance when a block is passed.
Otherwise attempts to return the command, raising InvalidCommandError when
it does not exist.

=== Examples

command :my_command do |c|
c.when_called do |args|
# Code
end
end