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 13 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 6 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 19 def ancestors classes_and_ancestors - classes end
to_a()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 23 def to_a indices end
Private Instance Methods
all_indices()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 31 def all_indices configuration.preload_indices configuration.indices end
classes()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 36 def classes options[:classes] || [] end
classes_and_ancestors()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 44 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 40 def classes_specified? classes.any? || references_specified? end
index_names()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 54 def index_names options[:indices] || [] end
indices()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 58 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 67 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 71 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 77 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 83 def references_specified? options[:references] && options[:references].any? end
sti_classes()
click to toggle source
# File lib/thinking_sphinx/index_set.rb, line 87 def sti_classes classes.select { |klass| klass.column_names.include?(klass.inheritance_column) } end