Sha256: 7f26eaab4fc3e231c88b3fd46b0f621a6cdfbaaacc7c498904a0f4bb99ba701c

Contents?: true

Size: 860 Bytes

Versions: 43

Compression:

Stored size: 860 Bytes

Contents

module Spree
  module Preferences
    module StaticallyConfigurable
      extend ActiveSupport::Concern

      class_methods do
        def preference_sources
          Spree::Config.static_model_preferences.for_class(self)
        end

        def available_preference_sources
          preference_sources.keys
        end
      end

      # override assignment to cast empty string to nil
      def preference_source=(val)
        super(val.presence)
      end

      def preferences
        if respond_to?(:preference_source) && preference_source
          self.class.preference_sources[preference_source] || {}
        else
          self[:preferences]
        end
      end

      def preferences=(val)
        if respond_to?(:preference_source) && preference_source
        else
          self[:preferences] = val
        end
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
solidus_core-2.5.2 lib/spree/preferences/statically_configurable.rb
solidus_core-2.5.1 lib/spree/preferences/statically_configurable.rb
solidus_core-2.5.0 lib/spree/preferences/statically_configurable.rb
solidus_core-2.5.0.rc1 lib/spree/preferences/statically_configurable.rb
solidus_core-2.5.0.beta2 lib/spree/preferences/statically_configurable.rb
solidus_core-2.5.0.beta1 lib/spree/preferences/statically_configurable.rb
solidus_core-2.4.2 lib/spree/preferences/statically_configurable.rb
solidus_core-2.3.1 app/models/spree/preferences/statically_configurable.rb
solidus_core-2.4.1 lib/spree/preferences/statically_configurable.rb
solidus_core-2.2.2 app/models/spree/preferences/statically_configurable.rb
solidus_core-2.1.1 app/models/spree/preferences/statically_configurable.rb
solidus_core-2.0.3 app/models/spree/preferences/statically_configurable.rb
solidus_core-1.4.2 app/models/spree/preferences/statically_configurable.rb
solidus_core-1.3.2 app/models/spree/preferences/statically_configurable.rb
solidus_core-1.2.3 app/models/spree/preferences/statically_configurable.rb
solidus_core-2.4.0 lib/spree/preferences/statically_configurable.rb
solidus_core-2.4.0.rc1 lib/spree/preferences/statically_configurable.rb
solidus_core-2.4.0.beta1 lib/spree/preferences/statically_configurable.rb
solidus_core-2.3.0 app/models/spree/preferences/statically_configurable.rb
solidus_core-2.3.0.rc3 app/models/spree/preferences/statically_configurable.rb