Sha256: 771b4d1c2c691ced2793c2a6e9dc536b337889ed828e3c48c22f2afd21babb67

Contents?: true

Size: 803 Bytes

Versions: 5

Compression:

Stored size: 803 Bytes

Contents

module Spree
  module Preferences
    class RuntimeConfiguration
      def initialize
        self.class.defaults.each do |key, value|
          self[key] = value
        end
      end

      def configure
        yield(self) if block_given?
      end

      def get(preference)
        send(preference)
      end

      alias [] get

      def set(preference, value)
        send("#{preference}=", value)
      end

      alias []= set

      class << self
        def preference(name, _type, default: nil, deprecated: false)
          defaults[name] = default
          deprecations[name] = deprecated
          attr_accessor name
        end

        def defaults
          @defaults ||= {}
        end

        def deprecations
          @deprecations ||= {}
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spree_core-4.10.1 lib/spree/core/preferences/runtime_configuration.rb
spree_core-4.10.0 lib/spree/core/preferences/runtime_configuration.rb
spree_core-4.9.0 lib/spree/core/preferences/runtime_configuration.rb
spree_core-4.8.3 lib/spree/core/preferences/runtime_configuration.rb
spree_core-4.8.2 lib/spree/core/preferences/runtime_configuration.rb