class ThinkingSphinx::IndexSet
Attributes
configuration[R]
options[R]
Public Class Methods
new(options = {}, configuration = nil)
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 11 def initialize(options = {}, configuration = nil) @options = options @index_names = options[:indices] || [] @configuration = configuration || ThinkingSphinx::Configuration.instance end
reference_name(klass)
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 4 def self.reference_name(klass) @cached_results ||= {} @cached_results[klass.name] ||= klass.name.underscore.to_sym end
Public Instance Methods
ancestors()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 17 def ancestors classes_and_ancestors - classes end
to_a()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 21 def to_a indices end
Private Instance Methods
all_indices()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 29 def all_indices configuration.preload_indices configuration.indices end
classes()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 34 def classes options[:classes] || [] end
classes_and_ancestors()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 42 def classes_and_ancestors @classes_and_ancestors ||= mti_classes + sti_classes.collect { |model| model.ancestors.take_while { |klass| klass != ActiveRecord::Base }.select { |klass| klass.class == Class } }.flatten end
classes_specified?()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 38 def classes_specified? classes.any? || references_specified? end
index_names()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 52 def index_names options[:indices] || [] end
indices()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 56 def indices return all_indices.select { |index| index_names.include?(index.name) } if index_names.any? everything = classes_specified? ? indices_for_references : all_indices everything.reject &:distributed? end
indices_for_references()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 65 def indices_for_references all_indices.select { |index| references.include? index.reference } end
mti_classes()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 69 def mti_classes classes.reject { |klass| klass.column_names.include?(klass.inheritance_column) } end
references()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 75 def references options[:references] || classes_and_ancestors.collect { |klass| ThinkingSphinx::IndexSet.reference_name(klass) } end
references_specified?()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 81 def references_specified? options[:references] && options[:references].any? end
sti_classes()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 85 def sti_classes classes.select { |klass| klass.column_names.include?(klass.inheritance_column) } end