module Card::Fetch::Store
lazy cache updates based on results
Public Instance Methods
eager_caching?()
click to toggle source
# File lib/card/fetch/store.rb, line 30 def eager_caching? opts[:eager_cache] && mark.name? && mark.absolute? && new_opts.present? end
fresh_from_db?()
click to toggle source
# File lib/card/fetch/store.rb, line 16 def fresh_from_db? @fresh_from_db end
needs_prep?()
click to toggle source
# File lib/card/fetch/store.rb, line 38 def needs_prep? return unless card.present? !(skip_modules? || card.patterns?) end
new_card_needed?()
click to toggle source
# File lib/card/fetch/store.rb, line 44 def new_card_needed? !(card.present? && (card.type_id.present? || skip_type_lookup?)) end
new_for_cache()
click to toggle source
instantiate a card as a cache placeholder
# File lib/card/fetch/store.rb, line 21 def new_for_cache return unless new_for_cache? args = { name: mark, skip_modules: true } args[:type_lookup] = :skip if skip_type_lookup? args.merge! new_opts.slice(:type, :type_id, :type_code) if eager_caching? @card = Card.new args end
new_for_cache?()
click to toggle source
# File lib/card/fetch/store.rb, line 34 def new_for_cache? reusable? && new_card_needed? end
reusable?()
click to toggle source
# File lib/card/fetch/store.rb, line 48 def reusable? !(mark.is_a?(Integer) || (mark.blank? && !opts[:new])) end
update_cache()
click to toggle source
# File lib/card/fetch/store.rb, line 5 def update_cache return unless update_cache? card.prep_modules_for_caching unless skip_modules? Card.write_to_cache card, local_only? end
update_cache?()
click to toggle source
# File lib/card/fetch/store.rb, line 12 def update_cache? (fresh_from_db? || new_for_cache || needs_prep?) && !card&.uncacheable? end