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