class ThinkingSphinx::Middlewares::StaleIdChecker::Inner

Attributes

context[R]

Public Class Methods

new(context) click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_checker.rb, line 15
def initialize(context)
  @context = context
end

Public Instance Methods

call() click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_checker.rb, line 19
def call
  raise_exception if context[:results].any?(&:nil?)
end

Private Instance Methods

actual_ids() click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_checker.rb, line 27
def actual_ids
  context[:results].compact.collect(&:id)
end
expected_ids() click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_checker.rb, line 31
def expected_ids
  context[:raw].collect { |row| row['sphinx_internal_id'].to_i }
end
raise_exception() click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_checker.rb, line 35
def raise_exception
  raise ThinkingSphinx::Search::StaleIdsException.new(stale_ids, context)
end
stale_ids() click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_checker.rb, line 39
def stale_ids
  # Currently only works with single-model queries. Has at no point done
  # otherwise, but such an improvement would be nice.
  expected_ids - actual_ids
end