module ThinkingSphinx::Core::Index

Public Class Methods

new(reference, options = {}) click to toggle source
Calls superclass method
# File lib/thinking_sphinx/core/index.rb, line 10
def initialize(reference, options = {})
  @reference    = reference.to_sym
  @docinfo      = :extern
  @options      = options
  @offset       = config.next_offset(options[:offset_as] || reference)
  @type         = 'plain'

  super "#{options[:name] || reference.to_s.gsub('/', '_')}_#{name_suffix}"
end

Public Instance Methods

delta?() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 20
def delta?
  false
end
distributed?() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 24
def distributed?
  false
end
document_id_for_instance(instance) click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 28
def document_id_for_instance(instance)
  document_id_for_key instance.public_send(primary_key)
end
document_id_for_key(key) click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 32
def document_id_for_key(key)
  return nil if key.nil?

  key * config.indices.count + offset
end
interpret_definition!() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 38
def interpret_definition!
  return if @interpreted_definition

  apply_defaults!

  @interpreted_definition = true
  interpreter.translate! self, @definition_block if @definition_block
end
model() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 47
def model
  @model ||= reference.to_s.camelize.constantize
end
options() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 51
def options
  interpret_definition!
  @options
end
primary_key() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 56
def primary_key
  @primary_key ||= @options[:primary_key] ||
    config.settings['primary_key'] || model.primary_key || :id
end
render() click to toggle source
Calls superclass method
# File lib/thinking_sphinx/core/index.rb, line 61
def render
  pre_render
  set_path

  assign_infix_fields
  assign_prefix_fields

  super
end

Private Instance Methods

assign_infix_fields() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 73
def assign_infix_fields
  self.infix_fields  = fields.select(&:infixing?).collect(&:name)
end
assign_prefix_fields() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 77
def assign_prefix_fields
  self.prefix_fields = fields.select(&:prefixing?).collect(&:name)
end
config() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 81
def config
  ThinkingSphinx::Configuration.instance
end
name_suffix() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 85
def name_suffix
  'core'
end
path_prefix() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 89
def path_prefix
  options[:path] || config.indices_location
end
pre_render() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 93
def pre_render
  interpret_definition!
end
set_path() click to toggle source
# File lib/thinking_sphinx/core/index.rb, line 97
def set_path
  FileUtils.mkdir_p path_prefix
  @path = File.join path_prefix, name
end