def call_rubytter_or_use_cache(method, *args, &block)
case method
when :show
unless status = cached_status(args[0])
status = call_rubytter(method, *args, &block)
store_status_cache(status)
end
status
when :user
unless user = cached_user(args[0])
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