class ThinkingSphinx::ActiveRecord::Interpreter
Public Instance Methods
define_source(&block)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 6 def define_source(&block) @source = @index.append_source instance_eval &block end
group_by(*columns)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 11 def group_by(*columns) __source.groupings += columns end
has(*columns)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 15 def has(*columns) build_properties( ::ThinkingSphinx::ActiveRecord::Attribute, columns ).each { |attribute| __source.add_attribute attribute } end
indexes(*columns)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 21 def indexes(*columns) build_properties( ::ThinkingSphinx::ActiveRecord::Field, columns ).each { |field| __source.add_field field } end
join(*columns)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 27 def join(*columns) __source.associations += columns.collect { |column| ::ThinkingSphinx::ActiveRecord::Association.new column } end
polymorphs(column, options)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 33 def polymorphs(column, options) __source.polymorphs << ::ThinkingSphinx::ActiveRecord::Polymorpher.new( __source, column, options[:to] ) end
sanitize_sql(*arguments)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 39 def sanitize_sql(*arguments) __source.model.send :sanitize_sql, *arguments end
set_database(hash_or_key)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 43 def set_database(hash_or_key) configuration = hash_or_key.is_a?(::Hash) ? hash_or_key : ::ActiveRecord::Base.configurations[hash_or_key.to_s] __source.set_database_settings configuration.symbolize_keys end
set_property(properties)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 50 def set_property(properties) properties.each do |key, value| @index.send("#{key}=", value) if @index.class.settings.include?(key) __source.send("#{key}=", value) if __source.class.settings.include?(key) __source.options[key] = value if source_option?(key) @index.options[key] = value if search_option?(key) end end
where(*conditions)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 59 def where(*conditions) __source.conditions += conditions end
Private Instance Methods
__source()
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 65 def __source @source ||= @index.append_source end
build_properties(klass, columns)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 69 def build_properties(klass, columns) options = columns.extract_options! columns.collect { |column| klass.new(__source.model, column, options) } end
source_option?(key)
click to toggle source
# File lib/thinking_sphinx/active_record/interpreter.rb, line 74 def source_option?(key) ::ThinkingSphinx::ActiveRecord::SQLSource::OPTIONS.include?(key) end