class ThinkingSphinx::ActiveRecord::SQLBuilder::Query

Attributes

report[RW]
scope[RW]

Public Class Methods

new(report) click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 6
def initialize(report)
  self.report = report
  self.scope = []
end

Public Instance Methods

to_query() click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 11
def to_query
  filter_by_query_pre

  scope.compact
end

Protected Instance Methods

filter_by_query_pre() click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 21
def filter_by_query_pre
  scope_by_time_zone
  scope_by_delta_processor
  scope_by_session
  scope_by_utf8
end
method_missing(*args, &block) click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 54
def method_missing(*args, &block)
  report.send *args, &block
end
scope_by_delta_processor() click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 28
def scope_by_delta_processor
  return unless delta_processor && !source.delta?

  self.scope << delta_processor.reset_query
end
scope_by_session() click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 34
def scope_by_session
  return unless max_len = source.options[:group_concat_max_len]

  self.scope << "SET SESSION group_concat_max_len = #{max_len}"
end
scope_by_time_zone() click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 40
def scope_by_time_zone
  return if config.settings['skip_time_zone']

  self.scope += time_zone_query_pre
end
scope_by_utf8() click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 46
def scope_by_utf8
  self.scope += utf8_query_pre if source.options[:utf8?]
end
source() click to toggle source
# File lib/thinking_sphinx/active_record/sql_builder/query.rb, line 50
def source
  report.source
end