# File lib/termtter/rubytter_proxy.rb, line 25
    def method_missing(method, *args, &block)
      if @rubytter.respond_to?(method)
        result = nil
        begin
          modified_args = args
          hooks = self.class.get_hooks("pre_#{method}")
          hooks.each do |hook|
            modified_args = hook.call(*modified_args)
          end

          from = Time.now
          Termtter::Client.logger.debug(
            "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]})")
          result = call_rubytter_or_use_cache(method, *modified_args, &block)
          Termtter::Client.logger.debug(
            "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}), " +
            "%.2fsec" % (Time.now - from))

          self.class.call_hooks("post_#{method}", *args)
        rescue HookCanceled
        rescue TimeoutError => e
          Termtter::Client.logger.debug(
            "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}) " +
            "#{e.message} #{'%.2fsec' % (Time.now - from)}")
          raise e
        rescue => e
          Termtter::Client.logger.debug(
            "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}) #{e.message}")
          raise e
        end
        result
      else
        super
      end
    end