Sha256: 03c37bd2ff01100456cc99ad145db62479909e00eb971e648005c932ffea247d

Contents?: true

Size: 738 Bytes

Versions: 4

Compression:

Stored size: 738 Bytes

Contents

# frozen_string_literal: true

module Thermos
  class RefillJob < ActiveJob::Base
    def perform(model)
      refill_primary_caches(model)
      refill_dependency_caches(model)
    end

    def refill_primary_caches(model)
      BeverageStorage.instance.beverages.each do |beverage|
        if beverage.model == model.class
          Thermos::RebuildCacheJob.perform_later(beverage.key, model.send(beverage.lookup_key))
        end
      end
    end

    def refill_dependency_caches(model)
      BeverageStorage.instance.beverages.each do |beverage|
        beverage.lookup_keys_for_dep_model(model).each do |lookup_key|
          Thermos::RebuildCacheJob.perform_later(beverage.key, lookup_key)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
thermos-0.3.0 lib/thermos/refill_job.rb
thermos-0.2.1 lib/thermos/refill_job.rb
thermos-0.2.0 lib/thermos/refill_job.rb
thermos-0.1.1 lib/thermos/refill_job.rb