class ThinkingSphinx::Middlewares::StaleIdFilter
Public Instance Methods
call(contexts)
click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_filter.rb, line 4 def call(contexts) @context = contexts.first @stale_ids = [] @retries = stale_retries begin app.call contexts rescue ThinkingSphinx::Search::StaleIdsException => error raise error if @retries <= 0 append_stale_ids error.ids ThinkingSphinx::Logger.log :message, log_message @retries -= 1 and retry end end
Private Instance Methods
append_stale_ids(ids)
click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_filter.rb, line 23 def append_stale_ids(ids) @stale_ids |= ids context.search.options[:without_ids] ||= [] context.search.options[:without_ids] |= ids end
log_message()
click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_filter.rb, line 30 def log_message 'Stale Ids (%s %s left): %s' % [ @retries, (@retries == 1 ? 'try' : 'tries'), @stale_ids.join(', ') ] end
stale_retries()
click to toggle source
# File lib/thinking_sphinx/middlewares/stale_id_filter.rb, line 36 def stale_retries case context.search.options[:retry_stale] when nil, TrueClass 2 when FalseClass 0 else context.search.options[:retry_stale].to_i end end