module ThinkingSphinx::ActiveRecord::DatabaseAdapters
Attributes
default[RW]
Public Class Methods
adapter_for(model)
click to toggle source
# File lib/thinking_sphinx/active_record/database_adapters.rb, line 5 def adapter_for(model) return default.new(model) if default adapter = adapter_type_for(model) klass = case adapter when :mysql MySQLAdapter when :postgresql PostgreSQLAdapter else raise "Invalid Database Adapter '#{adapter}': Thinking Sphinx only supports MySQL and PostgreSQL." end klass.new model end
adapter_type_for(model)
click to toggle source
# File lib/thinking_sphinx/active_record/database_adapters.rb, line 21 def adapter_type_for(model) class_name = model.connection.class.name case class_name.split('::').last when 'MysqlAdapter', 'Mysql2Adapter' :mysql when 'PostgreSQLAdapter' :postgresql when 'JdbcAdapter' adapter_type_for_jdbc(model) else class_name end end
adapter_type_for_jdbc(model)
click to toggle source
# File lib/thinking_sphinx/active_record/database_adapters.rb, line 35 def adapter_type_for_jdbc(model) case adapter = model.connection.config[:adapter] when 'jdbcmysql' :mysql when 'jdbcpostgresql' :postgresql when 'jdbc' adapter_type_for_jdbc_plain(adapter, model.connection.config[:url]) else adapter end end
adapter_type_for_jdbc_plain(adapter, url)
click to toggle source
# File lib/thinking_sphinx/active_record/database_adapters.rb, line 47 def adapter_type_for_jdbc_plain(adapter, url) return adapter unless match = /^jdbc:(?<adapter>mysql|postgresql):\/\//.match(url) match[:adapter].to_sym end