Sha256: 2ad8b41f83d0af2e9f1cfb842b3c7168b1c5c365d68e0523965152a7ee669669

Contents?: true

Size: 1.89 KB

Versions: 18

Compression:

Stored size: 1.89 KB

Contents

require 'sunspot'
require File.join(File.dirname(__FILE__), 'rails', 'configuration')
require File.join(File.dirname(__FILE__), 'rails', 'adapters')
require File.join(File.dirname(__FILE__), 'rails', 'request_lifecycle')
require File.join(File.dirname(__FILE__), 'rails', 'searchable')

module Sunspot #:nodoc:
  module Rails #:nodoc:
    autoload :StubSessionProxy, File.join(File.dirname(__FILE__), 'rails', 'stub_session_proxy')
    autoload :Server, File.join(File.dirname(__FILE__), 'rails', 'server')
    autoload :VERSION, File.join(File.dirname(__FILE__), 'rails', 'version')

    class <<self
      attr_writer :configuration

      def configuration
        @configuration ||= Sunspot::Rails::Configuration.new
      end

      def reset
        @configuration = nil
      end

      def build_session(configuration = self.configuration)
        if configuration.has_master?
          SessionProxy::MasterSlaveSessionProxy.new(
            SessionProxy::ThreadLocalSessionProxy.new(master_config(configuration)),
            SessionProxy::ThreadLocalSessionProxy.new(slave_config(configuration))
          )
        else
          SessionProxy::ThreadLocalSessionProxy.new(slave_config(configuration))
        end
      end

      private

      def master_config(sunspot_rails_configuration)
        config = Sunspot::Configuration.build
        config.solr.url = URI::HTTP.build(
          :host => sunspot_rails_configuration.master_hostname,
          :port => sunspot_rails_configuration.master_port,
          :path => sunspot_rails_configuration.master_path
        ).to_s
        config
      end

      def slave_config(sunspot_rails_configuration)
        config = Sunspot::Configuration.build
        config.solr.url = URI::HTTP.build(
          :host => configuration.hostname,
          :port => configuration.port,
          :path => configuration.path
        ).to_s
        config
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 6 rubygems

Version Path
erichummel-sunspot_rails-1.2.1b lib/sunspot/rails.rb
ruben_sunspot_rails-1.1.4 lib/sunspot/rails.rb
ruben_sunspot_rails-1.1.3 lib/sunspot/rails.rb
ruben_sunspot_rails-1.1.2 lib/sunspot/rails.rb
sunspot_rails_mongoid-1.2.1 lib/sunspot/rails.rb
sunspot_rails-1.2.1 lib/sunspot/rails.rb
sunspot_rails-1.2.0 lib/sunspot/rails.rb
ruben_sunspot_rails-1.1.1 lib/sunspot/rails.rb
ruben_sunspot_rails-1.1.0 lib/sunspot/rails.rb
nuatt_sunspot_rails-1.1.0.3 lib/sunspot/rails.rb
robsharp-sunspot_rails-1.1.0.2 lib/sunspot/rails.rb
sunspot_rails-1.1.0 lib/sunspot/rails.rb
sunspot_rails-1.0.5 lib/sunspot/rails.rb
sunspot_rails-1.0.4 lib/sunspot/rails.rb
sunspot_rails-1.0.3 lib/sunspot/rails.rb
sunspot_rails-1.0.2 lib/sunspot/rails.rb
sunspot_rails-1.0.1 lib/sunspot/rails.rb
sunspot_rails-1.0.0 lib/sunspot/rails.rb