Sha256: b4c666c981edb2af70bcffe4591dd33df72223561642fecc678a8a1df7b6f0dc

Contents?: true

Size: 873 Bytes

Versions: 24

Compression:

Stored size: 873 Bytes

Contents

module Spree::PreferenceAccess

  def self.included(base)
    class << base
      def get(key = nil)
        key = key.to_s if key.is_a?(Symbol)
        return nil unless config = self.instance
        # preferences will be cached under the name of the class including this module (ex. Spree::Config)
        prefs = Rails.cache.fetch("configuration_#{config.class.name}".to_sym) { config.preferences }
        return prefs if key.nil?
        prefs[key]
      end

      # Set the preferences as specified in a hash (like params[:preferences] from a post request)
      def set(preferences={})
        config = self.instance
        preferences.each do |key, value|
          config.set_preference(key, value)
        end
        config.save
        Rails.cache.delete("configuration_#{config.class.name}".to_sym)
      end

      alias_method :[], :get
    end
  end
end

Version data entries

24 entries across 24 versions & 6 rubygems

Version Path
spree_core-0.70.7 lib/spree/preference_access.rb
spree_core-0.70.6 lib/spree/preference_access.rb
apispree_core-0.0.0 lib/spree/preference_access.rb
My-Commerce_core-1.1.0 lib/spree/preference_access.rb
My-Commerce_core-1.0.0 lib/spree/preference_access.rb
MyCommerceapi-1.0.0 core/lib/spree/preference_access.rb
MyCommerce-0.0.3 core/lib/spree/preference_access.rb
rfcommerce_core-0.0.3 lib/spree/preference_access.rb
spree_core-0.60.6 lib/spree/preference_access.rb
spree_core-0.70.5 lib/spree/preference_access.rb
spree_core-0.70.4 lib/spree/preference_access.rb
spree_core-0.60.5 lib/spree/preference_access.rb
spree_core-0.70.3 lib/spree/preference_access.rb
spree_core-0.70.2 lib/spree/preference_access.rb
spree_core-0.60.4 lib/spree/preference_access.rb
spree_core-0.60.3 lib/spree/preference_access.rb
spree_core-0.70.1 lib/spree/preference_access.rb
spree_core-0.70.0 lib/spree/preference_access.rb
spree_core-0.60.2 lib/spree/preference_access.rb
spree_core-0.70.0.rc2 lib/spree/preference_access.rb