module CatchCache::Flush::ClassMethods
Public Instance Methods
cache_id(*args)
click to toggle source
key_callbacks is hash that stores the a redis key with the proc value that evaluates to a unique id associated with that class. For example: `central_page_loan_plans` key defines the cache for the loading of loan plans index page.
An example of a redis key is “central_page_loan_plans_<uniq_id>”
Sample args for the cache_id
are: cache_id
:central_page_loan_plans, after_commit: { flush_cache!: -> { loan_plan.id } } cache_id
:central_page_loan_plans, after_commit: :flush_all!
# File lib/catch_cache/flush.rb, line 58 def cache_id(*args) options = args.last if args.last.is_a?(Hash) value_args = options.values.first proc_value = value_args.is_a?(Hash) ? value_args[:flush_cache!] : value_args key_callbacks["#{args.first}__#{self.name.underscore}".to_sym] = proc_value register_callbacks_for(options) if options.present? end
Private Instance Methods
register_callbacks_for(options)
click to toggle source
# File lib/catch_cache/flush.rb, line 69 def register_callbacks_for(options) options.each do |callback, callable| case callable when Symbol send(callback, callable) if respond_to?(callback) else # It must be Proc or lambda callable = callable.keys.first send(callback, callable) end end end