Sha256: 146afb6f2eada2aecd832fdba313a018ffa7935387b16e2db191188ef318ffbf

Contents?: true

Size: 1.34 KB

Versions: 82

Compression:

Stored size: 1.34 KB

Contents

module ThinkingSphinx
  class AbstractAdapter
    def initialize(model)
      @model = model
    end
    
    def setup
      # Deliberately blank - subclasses should do something though. Well, if
      # they need to.
    end
      
    def self.detect(model)
      case model.connection.class.name
      when "ActiveRecord::ConnectionAdapters::MysqlAdapter",
           "ActiveRecord::ConnectionAdapters::MysqlplusAdapter"
        ThinkingSphinx::MysqlAdapter.new model
      when "ActiveRecord::ConnectionAdapters::PostgreSQLAdapter"
        ThinkingSphinx::PostgreSQLAdapter.new model
      when "ActiveRecord::ConnectionAdapters::JdbcAdapter"
        if model.connection.config[:adapter] == "jdbcmysql"
          ThinkingSphinx::MysqlAdapter.new model
        elsif model.connection.config[:adapter] == "jdbcpostgresql"
          ThinkingSphinx::PostgreSQLAdapter.new model
        else
          raise "Invalid Database Adapter: Sphinx only supports MySQL and PostgreSQL"
        end
      else
        raise "Invalid Database Adapter: Sphinx only supports MySQL and PostgreSQL, not #{model.connection.class.name}"
      end
    end
    
    def quote_with_table(column)
      "#{@model.quoted_table_name}.#{@model.connection.quote_column_name(column)}"
    end
    
    protected
    
    def connection
      @connection ||= @model.connection
    end
  end
end

Version data entries

82 entries across 82 versions & 15 rubygems

Version Path
DrMark-thinking-sphinx-1.1.14 lib/thinking_sphinx/adapters/abstract_adapter.rb
DrMark-thinking-sphinx-1.1.15 lib/thinking_sphinx/adapters/abstract_adapter.rb
DrMark-thinking-sphinx-1.1.6 lib/thinking_sphinx/adapters/abstract_adapter.rb
DrMark-thinking-sphinx-1.2.5 lib/thinking_sphinx/adapters/abstract_adapter.rb
DrMark-thinking-sphinx-1.2.6 lib/thinking_sphinx/adapters/abstract_adapter.rb
bterlson-thinking-sphinx-1.2.8 lib/thinking_sphinx/adapters/abstract_adapter.rb
dpickett-thinking-sphinx-1.1.12 lib/thinking_sphinx/adapters/abstract_adapter.rb
dpickett-thinking-sphinx-1.1.23 lib/thinking_sphinx/adapters/abstract_adapter.rb
factorylabs-thinking-sphinx-1.2.7 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.10 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.11 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.12 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.14 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.15 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.16 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.17 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.18 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.19 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.20 lib/thinking_sphinx/adapters/abstract_adapter.rb
freelancing-god-thinking-sphinx-1.1.21 lib/thinking_sphinx/adapters/abstract_adapter.rb