Class: ThinkingSphinx::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/thinking_sphinx/context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeContext

Returns a new instance of Context.



4
5
6
# File 'lib/thinking_sphinx/context.rb', line 4

def initialize
  @indexed_models = []
end

Instance Attribute Details

#indexed_modelsObject (readonly)

Returns the value of attribute indexed_models.



2
3
4
# File 'lib/thinking_sphinx/context.rb', line 2

def indexed_models
  @indexed_models
end

Instance Method Details

#add_indexed_model(model) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/thinking_sphinx/context.rb', line 19

def add_indexed_model(model)
  model = model.name if model.is_a?(Class)
  
  indexed_models << model
  indexed_models.uniq!
  indexed_models.sort!
end

#define_indexesObject



13
14
15
16
17
# File 'lib/thinking_sphinx/context.rb', line 13

def define_indexes
  indexed_models.each { |model|
    model.constantize.define_indexes
  }
end

#prepareObject



8
9
10
11
# File 'lib/thinking_sphinx/context.rb', line 8

def prepare
  load_models
  add_indexed_models
end

#superclass_indexed_modelsObject



27
28
29
30
31
32
# File 'lib/thinking_sphinx/context.rb', line 27

def superclass_indexed_models
  klasses = indexed_models.collect { |name| name.constantize }
  klasses.reject { |klass|
    klass.superclass.ancestors.any? { |ancestor| klasses.include?(ancestor) }
  }.collect { |klass| klass.name }
end