Sha256: d5f9c7f13135ed1262fb890dca96cb8e0701b83537fd620840dc9edd969a3ea1

Contents?: true

Size: 535 Bytes

Versions: 7

Compression:

Stored size: 535 Bytes

Contents

module Spree
  module MemoizedData
    extend ActiveSupport::Concern

    included do
      # reset cache on save inside trasaction and transaction commit
      after_save :reset_memoized_data
      after_commit :reset_memoized_data

      def reload(options = {})
        reset_memoized_data
        super(options)
      end

      private

      def reset_memoized_data
        self.class.const_get('MEMOIZED_METHODS').each do |v|
          instance_variable_set(:"@#{v.gsub(/\?/, '')}", nil)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spree_core-4.3.3 app/models/concerns/spree/memoized_data.rb
spree_core-4.3.2 app/models/concerns/spree/memoized_data.rb
spree_core-4.3.1 app/models/concerns/spree/memoized_data.rb
spree_core-4.3.0 app/models/concerns/spree/memoized_data.rb
spree_core-4.3.0.rc3 app/models/concerns/spree/memoized_data.rb
spree_core-4.3.0.rc2 app/models/concerns/spree/memoized_data.rb
spree_core-4.3.0.rc1 app/models/concerns/spree/memoized_data.rb