class Termtter::RubytterProxy
Attributes
rubytter[R]
safe_mode[RW]
Public Class Methods
new(access_token, twitter_option)
click to toggle source
# File lib/plugins/basic.rb, line 12 def initialize(access_token, twitter_option) user_name = config.plugins.basic.user_name password = config.plugins.basic.password @rubytter = Rubytter.new(user_name, password, twitter_option) end
Public Instance Methods
access_token()
click to toggle source
XXX: these methods should be in oauth_rubytter
# File lib/termtter/rubytter_proxy.rb, line 172 def access_token @rubytter.instance_variable_get(:@access_token) end
cached_status(status_id)
click to toggle source
# File lib/plugins/mongo.rb, line 104 def cached_status(status_id) status = Termtter::Client.memory_cache.get(['status', status_id].join('-')) status ||= Termtter::Client.mongo_db.collection('status').find_one({'id' => status_id.to_i}) Termtter::ActiveRubytter.new(status) if status end
cached_user(screen_name_or_id)
click to toggle source
# File lib/termtter/rubytter_proxy.rb, line 85 def cached_user(screen_name_or_id) user = Termtter::Client.memory_cache.get( ['user', Termtter::Client.normalize_as_user_name(screen_name_or_id.to_s)].join('-')) ActiveRubytter.new(user) if user end
call_rubytter(method, *args, &block)
Also aliased as: call_rubytter_without_list_switch
Alias for: call_rubytter_with_list_switch
call_rubytter_or_use_cache(method, *args, &block)
click to toggle source
# File lib/termtter/rubytter_proxy.rb, line 58 def call_rubytter_or_use_cache(method, *args, &block) case method when :show status = cached_status(args[0]) unless status status = call_rubytter(method, *args, &block) store_status_cache(status) end status when :user user = cached_user(args[0]) unless user user = call_rubytter(method, *args, &block) store_user_cache(user) end user when :home_timeline, :user_timeline, :friends_timeline, :search statuses = call_rubytter(method, *args, &block) statuses.each do |status| store_status_cache(status) end statuses else call_rubytter(method, *args, &block) end end
call_rubytter_with_list_switch(method, *args, &block)
click to toggle source
# File lib/plugins/list_switch.rb, line 21 def call_rubytter_with_list_switch(method, *args, &block) Termtter::Plugins::ListSwitch.call_rubytter(self, method, *args, &block) end
Also aliased as: call_rubytter
consumer_token()
click to toggle source
# File lib/termtter/rubytter_proxy.rb, line 176 def consumer_token access_token.consumer end
current_limit()
click to toggle source
# File lib/termtter/rubytter_proxy.rb, line 123 def current_limit @limit_manager ||= LimitManager.new(@rubytter) end
error_html_message_whale(e)
click to toggle source
# File lib/plugins/whale.rb, line 5 def error_html_message_whale(e) if %r'Twitter / Over capacity' =~ e.message WHALE else error_html_message_orig(e) end end
Also aliased as: error_html_message
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/termtter/rubytter_proxy.rb, line 21 def method_missing(method, *args, &block) return super 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 if Termtter::Client.logger.debug? 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 Timeout::Error => 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 end
safe()
click to toggle source
# File lib/termtter/rubytter_proxy.rb, line 114 def safe new_instance = self.class.new(@rubytter) new_instance.safe_mode = true self.instance_variables.each do |v| new_instance.instance_variable_set(v, self.instance_variable_get(v)) end new_instance end
store_status_cache(status)
click to toggle source
# File lib/termtter/rubytter_proxy.rb, line 98 def store_status_cache(status) Termtter::Client.memory_cache.set( ['status', status.id].join('-'), status.to_hash, 3600 * 24 * 14) store_user_cache(status.user) end
store_user_cache(user)
click to toggle source
# File lib/termtter/rubytter_proxy.rb, line 104 def store_user_cache(user) Termtter::Client.memory_cache.set( ['user', user.id.to_i].join('-'), user.to_hash, 3600 * 24) Termtter::Client.memory_cache.set( ['user', Termtter::Client.normalize_as_user_name(user.screen_name)].join('-'), user.to_hash, 3600 * 24) end