Module: ClassCacher::ModelAdditions
- Defined in:
- lib/class_cacher/model_additions.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.cached_unique_class_cache_key ⇒ Object
20 21 22 |
# File 'lib/class_cacher/model_additions.rb', line 20 def self.cached_unique_class_cache_key Rails.cache.fetch(["cached_unique_class_cache_key", self.name]) { self.unique_class_cache_key } end |
.unique_class_cache_key ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/class_cacher/model_additions.rb', line 11 def self.unique_class_cache_key max_updated_at = self.pluck("MAX(updated_at)").first.to_s parsed_max_updated_at = "#{ max_updated_at.present? ? DateTime.parse(max_updated_at).utc.to_s(:number) : nil }" count = self.count Digest::SHA1.hexdigest "#{ [parsed_max_updated_at, self.name, count] }" end |
Instance Method Details
#flush_unique_class_cache_key ⇒ Object
7 8 9 |
# File 'lib/class_cacher/model_additions.rb', line 7 def flush_unique_class_cache_key Rails.cache.delete(["cached_unique_class_cache_key", self.class.name]) end |
#unique_class_cache ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/class_cacher/model_additions.rb', line 3 def unique_class_cache after_commit :flush_unique_class_cache_key private def flush_unique_class_cache_key Rails.cache.delete(["cached_unique_class_cache_key", self.class.name]) end def self.unique_class_cache_key max_updated_at = self.pluck("MAX(updated_at)").first.to_s parsed_max_updated_at = "#{ max_updated_at.present? ? DateTime.parse(max_updated_at).utc.to_s(:number) : nil }" count = self.count Digest::SHA1.hexdigest "#{ [parsed_max_updated_at, self.name, count] }" end def self.cached_unique_class_cache_key Rails.cache.fetch(["cached_unique_class_cache_key", self.name]) { self.unique_class_cache_key } end end |