diff --git a/lib/searchkick/model.rb b/lib/searchkick/model.rb index aab4b07..e36caad 100644 --- a/lib/searchkick/model.rb +++ b/lib/searchkick/model.rb @@ -3,17 +3,19 @@ module Searchkick def searchkick(options = {}) class_eval do - cattr_reader :searchkick_options, :searchkick_env, :searchkick_klass, :searchkick_index + cattr_reader :searchkick_options, :searchkick_env, :searchkick_klass class_variable_set :@@searchkick_options, options.dup class_variable_set :@@searchkick_env, ENV["RACK_ENV"] || ENV["RAILS_ENV"] || "development" class_variable_set :@@searchkick_klass, self class_variable_set :@@searchkick_callbacks, options[:callbacks] != false + class_variable_set :@@searchkick_index, options[:index_name] || [options[:index_prefix], model_name.plural, searchkick_env].compact.join("_") - # set index name - # TODO support proc - index_name = options[:index_name] || [options[:index_prefix], model_name.plural, searchkick_env].compact.join("_") - class_variable_set :@@searchkick_index, Searchkick::Index.new(index_name) + def self.searchkick_index + index = class_variable_get :@@searchkick_index + index = index.call if index.respond_to? :call + Searchkick::Index.new(index) + end extend Searchkick::Search extend Searchkick::Reindex diff --git a/test/inheritance_test.rb b/test/inheritance_test.rb index 44e0633..6212d96 100644 --- a/test/inheritance_test.rb +++ b/test/inheritance_test.rb @@ -10,7 +10,7 @@ class TestInheritance < Minitest::Unit::TestCase end def test_child_index_name - assert_equal "animals_test", Dog.searchkick_index.name + assert_equal "animals-#{Date.today.year}", Dog.searchkick_index.name end def test_child_search diff --git a/test/test_helper.rb b/test/test_helper.rb index ddf92ff..342044b 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -143,7 +143,7 @@ class Store end class Animal - searchkick autocomplete: [:name], suggest: [:name] + searchkick autocomplete: [:name], suggest: [:name], index_name: -> { "#{self.name.tableize}-#{Date.today.year}" } end Product.searchkick_index.delete if Product.searchkick_index.exists? -- libgit2 0.21.0