Sha256: 92bcf84a55bb67adde0a28fcaad9af0b47cc52bb556cf2d5df2556e41bc8d1c5

Contents?: true

Size: 1.15 KB

Versions: 9

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 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
        @searcher ||= Spree::Search::Base.new
      end
      
      def searcher=(searcher_obj)
        @searcher = searcher_obj  
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spree-0.11.4 lib/spree/config.rb
spree-0.11.3 lib/spree/config.rb
spree-0.11.2 lib/spree/config.rb
spree-0.11.1 lib/spree/config.rb
spree-0.11.0 lib/spree/config.rb
spree-0.10.2 lib/spree/config.rb
spree-0.10.1 lib/spree/config.rb
spree-0.10.0 lib/spree/config.rb
spree-0.10.0.beta lib/spree/config.rb