Sha256: c3e8cd358409b500be10241fcd53e91472d8dfbc9eb0149d2b6acb7df31d9e38
Contents?: true
Size: 1.33 KB
Versions: 8
Compression:
Stored size: 1.33 KB
Contents
class ThinkingSphinx::Index attr_reader :reference, :options, :block def self.define(reference, options = {}, &block) new(reference, options, &block).indices.each do |index| ThinkingSphinx::Configuration.instance.indices << index end end def initialize(reference, options, &block) defaults = ThinkingSphinx::Configuration.instance. settings['index_options'] || {} defaults.symbolize_keys! @reference, @options, @block = reference, defaults.merge(options), block end def indices if options[:delta] delta_indices else [single_index] end end private def index_class case options[:with] when :active_record ThinkingSphinx::ActiveRecord::Index when :real_time ThinkingSphinx::RealTime::Index else raise "Unknown index type: #{options[:with]}" end end def single_index index_class.new(reference, options).tap do |index| index.definition_block = block end end def delta_indices [false, true].collect do |delta| index_class.new( reference, options.merge(:delta? => delta, :delta_processor => processor) ).tap do |index| index.definition_block = block end end end def processor @processor ||= ThinkingSphinx::Deltas.processor_for options.delete(:delta) end end
Version data entries
8 entries across 8 versions & 1 rubygems