    # File lib/termtter/client.rb, line 60
          def register_command(arg, opts = {}, &block)
            command = case arg
              when Command
                arg
              when Hash
                Command.new(arg)
              when String, Symbol
                options = { :name => arg }
                options.merge!(opts)
                options[:exec_proc] = block
                Command.new(options)
              else
                raise ArgumentError, 'must be given Termtter::Command, Hash or String(Symbol) with block'
              end
            @commands[command.name] = command
          end