Sha256: 628703e1fc8ea37d56cd1158eb0d42bc06d95955d29ed76e0579ddb61fd35454

Contents?: true

Size: 618 Bytes

Versions: 138

Compression:

Stored size: 618 Bytes

Contents

# frozen_string_literal: true

module Spree::Preferences
  class ScopedStore
    def initialize(prefix, suffix = nil)
      @prefix = prefix
      @suffix = suffix
    end

    def store
      Spree::Preferences::Store.instance
    end

    def fetch(key, &block)
      store.fetch(key_for(key), &block)
    end

    def []=(key, value)
      store[key_for(key)] = value
    end

    def delete(key)
      store.delete(key_for(key))
    end

    private

    def key_for(key)
      [rails_cache_id, @prefix, key, @suffix].compact.join('/')
    end

    def rails_cache_id
      ENV['RAILS_CACHE_ID']
    end
  end
end

Version data entries

138 entries across 138 versions & 2 rubygems

Version Path
solidus_core-4.5.1 lib/spree/preferences/scoped_store.rb
solidus_core-4.5.0 lib/spree/preferences/scoped_store.rb
solidus_core-4.3.6 lib/spree/preferences/scoped_store.rb
solidus_core-4.2.5 lib/spree/preferences/scoped_store.rb
solidus_core-4.1.6 lib/spree/preferences/scoped_store.rb
solidus_core-4.4.2 lib/spree/preferences/scoped_store.rb
solidus_core-4.4.1 lib/spree/preferences/scoped_store.rb
solidus_core-4.4.0 lib/spree/preferences/scoped_store.rb
solidus_core-4.3.4 lib/spree/preferences/scoped_store.rb
solidus_core-4.2.4 lib/spree/preferences/scoped_store.rb
solidus_core-4.1.5 lib/spree/preferences/scoped_store.rb
solidus_core-4.3.3 lib/spree/preferences/scoped_store.rb
solidus_core-4.3.2 lib/spree/preferences/scoped_store.rb
solidus_core-4.1.4 lib/spree/preferences/scoped_store.rb
solidus_core-4.3.1 lib/spree/preferences/scoped_store.rb
solidus_core-4.3.0 lib/spree/preferences/scoped_store.rb
solidus_core-4.2.3 lib/spree/preferences/scoped_store.rb
solidus_core-4.1.3 lib/spree/preferences/scoped_store.rb
solidus_core-4.0.4 lib/spree/preferences/scoped_store.rb
solidus_core-3.4.6 lib/spree/preferences/scoped_store.rb