lib/thinking_sphinx/deltas.rb in pixeltrix-thinking-sphinx-1.1.5 vs lib/thinking_sphinx/deltas.rb in pixeltrix-thinking-sphinx-1.2.1
- old
+ new
@@ -2,21 +2,29 @@
require 'thinking_sphinx/deltas/delayed_delta'
require 'thinking_sphinx/deltas/datetime_delta'
module ThinkingSphinx
module Deltas
- def self.parse(index, options)
- case options.delete(:delta)
+ def self.parse(index)
+ delta_option = index.local_options.delete(:delta)
+ case delta_option
when TrueClass, :default
- DefaultDelta.new index, options
+ DefaultDelta.new index, index.local_options
when :delayed
- DelayedDelta.new index, options
+ DelayedDelta.new index, index.local_options
when :datetime
- DatetimeDelta.new index, options
+ DatetimeDelta.new index, index.local_options
when FalseClass, nil
nil
else
- raise "Unknown delta type"
+ if delta_option.is_a?(String)
+ delta_option = Kernel.const_get(delta_option)
+ end
+ if delta_option.ancestors.include?(ThinkingSphinx::Deltas::DefaultDelta)
+ delta_option.new index, index.local_options
+ else
+ raise "Unknown delta type"
+ end
end
end
end
end