# File lib/termtter/hookable.rb, line 20
          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