From ed00548cd8ab9427fa95829c01aafdbb6116c525 Mon Sep 17 00:00:00 2001 From: Jim Date: Tue, 25 Mar 2014 21:55:21 -0400 Subject: [PATCH] added the possibility to use a proc or labda as an index_name --- lib/searchkick/model.rb | 12 +++++++----- test/inheritance_test.rb | 2 +- test/test_helper.rb | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) 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