def call_rubytter(method, *args, &block)
raise FrequentAccessError if @safe_mode && !self.current_limit.safe?
config.retry.times do |now|
begin
timeout(config.timeout) do
return @rubytter.__send__(method, *args, &block)
end
rescue Rubytter::APIError => e
raise e
rescue JSON::ParserError => e
if message = error_html_message(e)
puts message
raise Rubytter::APIError.new(message)
else
raise e
end
rescue StandardError, TimeoutError => e
if now + 1 == config.retry
raise e
else
Termtter::Client.logger.debug("rubytter_proxy: retry (#{e.class.to_s}: #{e.message})")
end
end
end
end