module CustomFragmentCache::Logic
Public Class Methods
cache_key(fragment_name, record)
click to toggle source
# File lib/custom_fragment_cache/logic.rb, line 36 def cache_key(fragment_name, record) "#{prefix}:#{record.class.name.downcase}-#{record.id}:#{fragment_name}" end
prefix()
click to toggle source
# File lib/custom_fragment_cache/logic.rb, line 32 def prefix "custom_fragment_cache" end
Public Instance Methods
expire_cache?(fragment_cache, record)
click to toggle source
# File lib/custom_fragment_cache/logic.rb, line 5 def expire_cache?(fragment_cache, record) if fragment_cache.fields_method == :safe unsafe_dirty_fields = record.changed - fragment_cache.fields return true if unsafe_dirty_fields.present? elsif fragment_cache.fields_method == :trigger trigger_dirty_fields = record.changed & fragment_cache.fields return true if trigger_dirty_fields.present? end end
expire_fragment(key)
click to toggle source
# File lib/custom_fragment_cache/logic.rb, line 15 def expire_fragment(key) action_controller = ActionController::Base.new if action_controller.send(:cache_configured?) action_controller.instrument_fragment_cache :expire_fragment, key do if key.is_a?(Regexp) action_controller.cache_store.delete_matched(key) elsif action_controller.cache_store.is_a?(ActiveSupport::Cache::RedisStore) # TODO find better solution action_controller.cache_store.delete_matched("*#{key}*") else action_controller.cache_store.delete(key) end end end end
Private Instance Methods
cache_key(fragment_name, record)
click to toggle source
# File lib/custom_fragment_cache/logic.rb, line 36 def cache_key(fragment_name, record) "#{prefix}:#{record.class.name.downcase}-#{record.id}:#{fragment_name}" end
prefix()
click to toggle source
# File lib/custom_fragment_cache/logic.rb, line 32 def prefix "custom_fragment_cache" end