module Nucache::CountMonkeyPatch
Public Instance Methods
count(column_name=nil, nocache=false, invalidation=nil)
click to toggle source
Calls superclass method
# File lib/nucache.rb, line 15 def count(column_name=nil, nocache=false, invalidation=nil) return super(column_name) if nocache return super(column_name) if group_values.any? amber = "CachingTable".constantize rescue nil if amber.nil? throw Exception.new("Missing Class CachingTable") return end sql = self.to_sql invalidation_date = invalidation if invalidation_date.nil? modelinvalidation = nil modelinvalidation = self.count_cache_invalidation(sql) rescue nil invalidation_date = modelinvalidation end if invalidation_date.nil? invalidation_date = Nucache::Config.get_invalidation_timeout end nucache = CachingTable.where("md5(sql)::uuid = md5(?)::uuid", sql).where("updated_at > ?", invalidation_date).pluck(:count) count = 0 if nucache.blank? count = super(column_name) nucache_expired = CachingTable.where("md5(sql)::uuid = md5(?)::uuid", sql).first if nucache_expired.nil? CachingTable.create(sql: sql, count: count) else nucache_expired.update(count:count,updated_at:Time.now) end else count = nucache[0] end return count end