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