lib/ultrasphinx/ultrasphinx.rb in ultrasphinx-1.5 vs lib/ultrasphinx/ultrasphinx.rb in ultrasphinx-1.5.1
- old
+ new
@@ -57,14 +57,32 @@
sql_query_pre = SET NAMES utf8
),
'postgresql' => %(
type = pgsql
)}
+
+ ADAPTER_SQL_FUNCTIONS = {
+ 'mysql' => {
+ 'group_by' => 'GROUP BY id',
+ 'timestamp' => 'UNIX_TIMESTAMP('
+ },
+ 'postgresql' => {
+ 'group_by' => '',
+ 'timestamp' => 'EXTRACT(EPOCH FROM '
+ }
+ }
+
+ ADAPTER = ActiveRecord::Base.connection.instance_variable_get("@config")[:adapter]
# Logger.
def self.say msg
- STDERR.puts "** ultrasphinx: #{msg}"
+ msg = "** ultrasphinx: #{msg}"
+ if defined? RAILS_DEFAULT_LOGGER
+ RAILS_DEFAULT_LOGGER.warn msg
+ else
+ STDERR.puts msg
+ end
end
# Configuration file parser.
def self.options_for(heading, path)
section = open(path).read[/^#{heading}\s*?\{(.*?)\}/m, 1]
@@ -98,16 +116,19 @@
MODEL_CONFIGURATION = {}
# Complain if the database names go out of sync.
def self.verify_database_name
if File.exist? CONF_PATH
- if options_for(
- "source #{MODEL_CONFIGURATION.keys.first.tableize}",
- CONF_PATH
- )['sql_db'] != ActiveRecord::Base.connection.instance_variable_get("@config")[:database]
- say "warning; configured database name is out-of-date"
- say "please run 'rake ultrasphinx:configure'"
- end rescue nil
+ begin
+ if options_for(
+ "source #{MODEL_CONFIGURATION.keys.first.tableize}",
+ CONF_PATH
+ )['sql_db'] != ActiveRecord::Base.connection.instance_variable_get("@config")[:database]
+ say "warning; configured database name is out-of-date"
+ say "please run 'rake ultrasphinx:configure'"
+ end
+ rescue Object
+ end
end
end
end