From 597345bdbefbfd83eb6086afdcb327b5f32e05e9 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 2 Mar 2018 13:09:50 -0800 Subject: [PATCH] Moved logic out of Searchkick::Index [skip ci] --- lib/searchkick/index.rb | 24 ------------------------ lib/searchkick/record_indexer.rb | 35 ++++++++++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/lib/searchkick/index.rb b/lib/searchkick/index.rb index fbdccdf..5ae3fd8 100644 --- a/lib/searchkick/index.rb +++ b/lib/searchkick/index.rb @@ -117,30 +117,6 @@ module Searchkick RecordData.new(self, record).document_type end - def reindex_record(record) - if record.destroyed? || !record.should_index? - begin - remove(record) - rescue Elasticsearch::Transport::Transport::Errors::NotFound - # do nothing - end - else - store(record) - end - end - - def reindex_record_async(record) - if Searchkick.callbacks_value.nil? - if defined?(Searchkick::ReindexV2Job) - Searchkick::ReindexV2Job.perform_later(record.class.name, record.id.to_s) - else - raise Searchkick::Error, "Active Job not found" - end - else - reindex_record(record) - end - end - def similar_record(record, **options) like_text = retrieve(record).to_hash .keep_if { |k, _| !options[:fields] || options[:fields].map(&:to_s).include?(k) } diff --git a/lib/searchkick/record_indexer.rb b/lib/searchkick/record_indexer.rb index 05126c6..851f0a5 100644 --- a/lib/searchkick/record_indexer.rb +++ b/lib/searchkick/record_indexer.rb @@ -1,9 +1,10 @@ module Searchkick class RecordIndexer - attr_reader :record + attr_reader :record, :index def initialize(record) @record = record + @index = record.class.searchkick_index end def reindex(method_name = nil, refresh: false, mode: nil) @@ -13,8 +14,6 @@ module Searchkick raise ArgumentError, "Invalid value for mode" end - index = record.class.searchkick_index - klass_options = index.options if mode.nil? @@ -42,16 +41,42 @@ module Searchkick method_name: method_name ? method_name.to_s : nil ) else - index.reindex_record_async(record) + reindex_record_async end else if method_name index.update_record(record, method_name) else - index.reindex_record(record) + reindex_record end index.refresh if refresh end end + + private + + def reindex_record + if record.destroyed? || !record.should_index? + begin + index.remove(record) + rescue Elasticsearch::Transport::Transport::Errors::NotFound + # do nothing + end + else + index.store(record) + end + end + + def reindex_record_async + if Searchkick.callbacks_value.nil? + if defined?(Searchkick::ReindexV2Job) + Searchkick::ReindexV2Job.perform_later(record.class.name, record.id.to_s) + else + raise Searchkick::Error, "Active Job not found" + end + else + reindex_record + end + end end end -- libgit2 0.21.0