elastic_record 4.1.1 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0666a1914afdfee1757a35b622b3b16147d48e56
4
- data.tar.gz: e6294dee92b9b6b07cd37615e26616e5d92c06cf
3
+ metadata.gz: cd6f75dec0ea4b1919142bb0ba494194b7311bc8
4
+ data.tar.gz: 2023aa88262eea919d945492810a9045851a7fc2
5
5
  SHA512:
6
- metadata.gz: 4193c89f4afdfb2d26424dc610ef8d3dd4c38d2845e370076e20802383c5024ae2a52ba1d0262b84357d0fa6703f9a1d2bc78abe7943af2b22efa160f31af392
7
- data.tar.gz: 35b037fa288e53d92a1f1fa36b8151619e745f28f76665a011b1cb37d64278dc665cc4c95d3449ae166dbf02d7cd45812c6227e32e08e6cf95c23d2791d1a06f
6
+ metadata.gz: f64bc4220954f757d8779f811ec7f09aa7f75e8b4fb7464f4205dca7aefa054424d42069cb68c68e0b0a2998e842525bfbd6db95ed4ca4a9a9f464537a9240fa
7
+ data.tar.gz: d49988d87eb175d619969f51aa535749252582b369f78581bddd85b8167441db1603860b69a94200cc206117981118673da5121932704a657eb5617330e48ec6
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'elastic_record'
5
- s.version = '4.1.1'
5
+ s.version = '4.1.2'
6
6
  s.summary = 'An Elasticsearch querying ORM'
7
7
  s.description = 'Find your records with Elasticsearch'
8
8
 
@@ -12,6 +12,7 @@ module ElasticRecord
12
12
  autoload :JSON, 'elastic_record/json'
13
13
  autoload :Lucene, 'elastic_record/lucene'
14
14
  autoload :Model, 'elastic_record/model'
15
+ autoload :NameCache, 'elastic_record/name_cache'
15
16
  autoload :PercolatorModel, 'elastic_record/percolator_model'
16
17
  autoload :Relation, 'elastic_record/relation'
17
18
  autoload :Searching, 'elastic_record/searching'
@@ -6,6 +6,7 @@ module ElasticRecord
6
6
  extend ClassMethods
7
7
  include Callbacks
8
8
  include AsDocument
9
+ include NameCache
9
10
 
10
11
  class_attribute :elastic_connection
11
12
  self.elastic_connection = ElasticRecord::Connection.new(ElasticRecord::Config.servers, ElasticRecord::Config.connection_options)
@@ -0,0 +1,23 @@
1
+ module ElasticRecord
2
+ module NameCache
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ class_attribute :cached_index_name
7
+ class_attribute :index_name_cache_time
8
+ self.index_name_cache_time = 0
9
+ end
10
+
11
+ class_methods do
12
+ def current_index_name
13
+ if (Time.now - index_name_cache_time) < 60
14
+ cached_index_name
15
+ else
16
+ self.index_name_cache_time = Time.now
17
+ aliased_names = elastic_connection.json_get("/_alias/#{elastic_index.alias_name}").keys
18
+ self.cached_index_name = aliased_names.first
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,16 @@
1
+ require 'helper'
2
+
3
+ class ElasticRecord::NameCacheTest < MiniTest::Test
4
+ class Felon
5
+ include TestModel
6
+ end
7
+
8
+ def test_index_name
9
+ begin
10
+ Felon.elastic_index.create_and_deploy("felons_datestamp")
11
+ assert_equal "felons_datestamp", Felon.current_index_name
12
+ ensure
13
+ Felon.elastic_index.delete("felons_datestamp")
14
+ end
15
+ end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elastic_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 4.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Infogroup
@@ -71,6 +71,7 @@ files:
71
71
  - lib/elastic_record/log_subscriber.rb
72
72
  - lib/elastic_record/lucene.rb
73
73
  - lib/elastic_record/model.rb
74
+ - lib/elastic_record/name_cache.rb
74
75
  - lib/elastic_record/percolator_model.rb
75
76
  - lib/elastic_record/railtie.rb
76
77
  - lib/elastic_record/railties/controller_runtime.rb
@@ -152,6 +153,7 @@ files:
152
153
  - test/elastic_record/log_subscriber_test.rb
153
154
  - test/elastic_record/lucene_test.rb
154
155
  - test/elastic_record/model_test.rb
156
+ - test/elastic_record/name_cache_test.rb
155
157
  - test/elastic_record/percolator_model_test.rb
156
158
  - test/elastic_record/railties/controller_runtime_test.rb
157
159
  - test/elastic_record/relation/batches_test.rb
@@ -183,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
185
  version: 1.8.11
184
186
  requirements: []
185
187
  rubyforge_project:
186
- rubygems_version: 2.6.11
188
+ rubygems_version: 2.6.13
187
189
  signing_key:
188
190
  specification_version: 4
189
191
  summary: An Elasticsearch querying ORM