Module: Card::Set::Abstract::SolidCache::ClassMethods
- Defined in:
- tmpsets/set/mod012-solid_cache/abstract/solid_cache.rb
Instance Method Summary collapse
-
#cache_expire_trigger(set_of_changed_card, args = {}, &block) ⇒ Object
Same as 'cache_update_trigger' but expires instead of updates the outdated solid caches.
-
#cache_update_trigger(set_of_changed_card, args = {}) { ... } ⇒ Object
If a card of the set given by 'set_of_changed_card' is changed the given block is executed.
- #define_event_to_update_expired_cached_cards(set_of_changed_card, args, method_name) ⇒ Object
- #event_name(set, args) ⇒ Object
Instance Method Details
#cache_expire_trigger(set_of_changed_card, args = {}, &block) ⇒ Object
Same as 'cache_update_trigger' but expires instead of updates the outdated solid caches
57 58 59 60 61 |
# File 'tmpsets/set/mod012-solid_cache/abstract/solid_cache.rb', line 57 def cache_expire_trigger set_of_changed_card, args={}, &block define_event_to_update_expired_cached_cards( set_of_changed_card, args, :expire_solid_cache, &block ) end |
#cache_update_trigger(set_of_changed_card, args = {}) { ... } ⇒ Object
If a card of the set given by 'set_of_changed_card' is changed the given block is executed. It is supposed to return an array of cards whose solid caches are expired because of the change.
49 50 51 52 53 |
# File 'tmpsets/set/mod012-solid_cache/abstract/solid_cache.rb', line 49 def cache_update_trigger set_of_changed_card, args={}, &block define_event_to_update_expired_cached_cards( set_of_changed_card, args, :update_solid_cache, &block ) end |
#define_event_to_update_expired_cached_cards(set_of_changed_card, args, method_name) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'tmpsets/set/mod012-solid_cache/abstract/solid_cache.rb', line 63 def define_event_to_update_expired_cached_cards set_of_changed_card, args, method_name args[:on] ||= %i[create update delete] name = event_name set_of_changed_card, args stage = args[:in_stage] || :integrate Card::Set.register_set set_of_changed_card set_of_changed_card.event name, stage, args do Array.wrap(yield(self)).compact.each do |expired_cache_card| next unless expired_cache_card.solid_cache? expired_cache_card.send method_name end end end |
#event_name(set, args) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'tmpsets/set/mod012-solid_cache/abstract/solid_cache.rb', line 77 def event_name set, args changed_card_set = set.underscore solid_cache_set = underscore + "__solid_cache" actions = Array.wrap(args[:on]).join("_") ["update", solid_cache_set, "changed_by", changed_card_set, "on", actions].join("___").to_sym end |