    # 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