class RediSearch::RecordIndexer

Attributes

index[R]
record[R]

Public Class Methods

new(record) click to toggle source
# File lib/redisearch-rails/record_indexer.rb, line 6
def initialize(record)
  @record = record
  @index = record.class.redisearch_index
end

Public Instance Methods

reindex(mode: nil, **options) click to toggle source
# File lib/redisearch-rails/record_indexer.rb, line 11
def reindex(mode: nil, **options)
  unless [:inline, true, nil, :async].include?(mode)
    raise ArgumentError, "#{mode} its not a valid value for mode"
  end

  mode ||= RediSearch.callbacks_value || record.class.redisearch_index_options[:callbacks] || true

  case mode
  when :async
    RediSearch::ReindexRecordJob.perform_later(record.class.name, record.id.to_s)
  else
    reindex_record
  end
end

Private Instance Methods

reindex_record() click to toggle source
# File lib/redisearch-rails/record_indexer.rb, line 28
def reindex_record
  if record.destroyed? || !record.persisted? || !record.should_index?
    document = index.generate_document(record.redisearch_document_id, {})
    document.del(dd: true)
  else
    record.redisearch_add
  end
end