Sha256: 1ee3021d1cbf2e1337fd90aa80855faa2cd1635c4dcab6b74c62ecb7463d4e06

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

module Spree
  # Singleton class to access the configuration object (AppConfiguration.first by default) and its preferences.
  #
  # Usage:
  #   Spree::Config[:foo]                  # Returns the +foo+ preference
  #   Spree::Config[]                      # Returns a Hash with all the application preferences
  #   Spree::Config.instance               # Returns the configuration object (AppConfiguration.first)
  #   Spree::Config.set(preferences_hash)  # Set the application preferences as especified in +preference_hash+
  #   Spree::Config.searcher/searcher=     # get/set the default product search implementation
  class Config
    include Singleton
    include Spree::PreferenceAccess

    class << self
      def instance
        return @configuration if @configuration
        return nil unless ActiveRecord::Base.connection.tables.include?('configurations')
        @configuration ||= AppConfiguration.find_or_create_by_name("Default configuration")
        @configuration
      end

      def searcher_class
        @searcher_class ||= Spree::Search::Base
      end

      def searcher_class=(sclass)
        @searcher_class = sclass
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
spree_core-0.30.2 lib/spree/config.rb
spree_core-0.40.4 lib/spree/config.rb
spree_core-0.40.3 lib/spree/config.rb
spree_core-0.40.2 lib/spree/config.rb
spree_core-0.40.1 lib/spree/config.rb
spree_core-0.40.0 lib/spree/config.rb
spree_core-0.30.1 lib/spree/config.rb
spree_core-0.30.0 lib/spree/config.rb