module Reredis::Model::Photo::Counter

Public Instance Methods

comments_count() click to toggle source
# File lib/reredis/model/photo/counter.rb, line 21
def comments_count
  unless value=self.get_redis(:comments_count)
    value = self.comments.count
    self.set_redis :comments_count, value 
  end
  value.to_i
end
get_redis(key) click to toggle source
# File lib/reredis/model/photo/counter.rb, line 44
def get_redis(key)
  begin
    $redis.get self.redis_key(key)
  rescue => e
    Rails.logger.error "Redis server error: #{e.message}"
    case key.to_s.split(":").last
      when "pins_count"
        self.pins.count
      when "likes_count"
        self.likes.count
      when "comments_count"
        self.comments.count
      when "reports_count"
        ReportPhoto.where(photo_id: self.id).count
    end
  end
end
likes_count() click to toggle source
# File lib/reredis/model/photo/counter.rb, line 13
def likes_count
  unless value=self.get_redis(:likes_count)
    value = self.likes.count
    self.set_redis :likes_count, value
  end
  value.to_i
end
pins_count() click to toggle source
# File lib/reredis/model/photo/counter.rb, line 5
def pins_count
  unless value=self.get_redis(:pins_count)
    value = self.pins.count
    self.set_redis :pins_count, value 
  end
  value.to_i
end
remove_keys_after_delete_photo() click to toggle source
# File lib/reredis/model/photo/counter.rb, line 37
def remove_keys_after_delete_photo
  $redis.del self.redis_key(:pins_count)
  $redis.del self.redis_key(:likes_count)
  $redis.del self.redis_key(:comments_count)
  $redis.del self.redis_key(:reports_count)
end
reports_count() click to toggle source
# File lib/reredis/model/photo/counter.rb, line 29
def reports_count
  unless value=self.get_redis(:reports_count)
    value = ReportPhoto.where(photo_id: self.id).count
    self.set_redis :reports_count, value 
  end
  value.to_i
end