es-elasticity 1.3.0 → 2.0.0

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
  SHA256:
3
- metadata.gz: e6b8a272cc95fb1faf14ed55842877056193c5e1abed37505adc38925ef530d2
4
- data.tar.gz: '0985fc6b75c10f235a9160a16367b6007128a6fbdc28f9a69991e99bde7b72b4'
3
+ metadata.gz: b8d8df30be52adb429cf46bc1478cbc02dd0ceb6aea341e1245bd07c05fc6a5a
4
+ data.tar.gz: 99554749d9eeaecd44c562a0a486ee0ff8b0fdb68ba2c41f6c09cc7f745256df
5
5
  SHA512:
6
- metadata.gz: 8fb4b8cd440bea1dfecd2920eec52b5ae309b5a308c6172840ecfef64e40aa4eb5d6a2b95372a7eba7b8637de973588cc8313451ce9f05ab065e3868a7f72525
7
- data.tar.gz: c005171a6fb78dbdbc16c4795cc82eb68ad0b614864bd41e11004cf4acfbe010313f89864612f5fde13044075621ad089a43a69cd83f8f6eaa33e0eec2b650b3
6
+ metadata.gz: 8dd0cc60e22b44999e3799e10b363820ffe2b474f8008c45f006e525dca14cf3a7d0a8a6e15619e37588bca2e57520900f6d69c9a0aa3a8f36020425752c4d83
7
+ data.tar.gz: '09aa1c18dd829b23b541f3d457e47b826f234385b256b4c2cbd94d61c5f94c08a5739368402587721170a7dc09b3f6a42f12fdabc9a7c8c197e82bb9aedcd9fc'
data/.circleci/config.yml CHANGED
@@ -1,13 +1,15 @@
1
1
  version: '2.1'
2
2
 
3
3
  meta:
4
- ruby-version-matrix: &ruby-version-matrix
4
+ test-version-matrix: &test-version-matrix
5
5
  matrix:
6
6
  parameters:
7
7
  ruby-version:
8
- - '3.1'
9
8
  - '3.2'
10
9
  - '3.3'
10
+ elasticsearch-version:
11
+ - '8.19.20'
12
+ - '9.5.2'
11
13
 
12
14
  orbs:
13
15
  ci-utils: doximity/ci-utils@2
@@ -17,13 +19,16 @@ executors:
17
19
  parameters:
18
20
  ruby-version:
19
21
  type: string
20
- default: '3.1'
22
+ default: '3.2'
23
+ elasticsearch-version:
24
+ type: string
25
+ default: '8.19.20'
21
26
  resource_class: small
22
27
  docker:
23
28
  - image: cimg/ruby:<< parameters.ruby-version >>
24
29
  environment:
25
30
  BUNDLE_VERSION: 2.5.23
26
- - image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
31
+ - image: docker.elastic.co/elasticsearch/elasticsearch:<< parameters.elasticsearch-version >>
27
32
  environment:
28
33
  discovery.type: single-node
29
34
  ES_JAVA_OPTS: "-Xms512m -Xmx512m"
@@ -224,7 +229,10 @@ jobs:
224
229
  default: ''
225
230
  ruby-version:
226
231
  type: string
227
- default: '3.1'
232
+ default: '3.2'
233
+ elasticsearch-version:
234
+ type: string
235
+ default: '8.19.20'
228
236
  pre-actions:
229
237
  description: Steps to perform any necessary setup after dependencies are installed.
230
238
  type: steps
@@ -247,6 +255,7 @@ jobs:
247
255
  executor:
248
256
  name: "<< parameters.executor >>"
249
257
  ruby-version: "<< parameters.ruby-version >>"
258
+ elasticsearch-version: "<< parameters.elasticsearch-version >>"
250
259
  resource_class: "<< parameters.resource_class >>"
251
260
  parallelism: "<< parameters.parallelism >>"
252
261
  steps:
@@ -265,5 +274,5 @@ workflows:
265
274
  - run_tests_ruby:
266
275
  executor: ruby
267
276
  context: nexus_readonly
268
- <<: *ruby-version-matrix
269
- name: run_tests_ruby-ruby-<< matrix.ruby-version >>
277
+ <<: *test-version-matrix
278
+ name: run_tests_ruby-<< matrix.ruby-version >>-elasticsearch-<< matrix.elasticsearch-version >>
data/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.0.0] - 2026-09-03
8
+ ### Changed
9
+ - Require Ruby 3.2 or newer
10
+ - Require Elasticsearch Ruby client 8.19
11
+ - Send scroll IDs in request bodies for Elasticsearch 9 compatibility
12
+
13
+ ## [1.4.0]
14
+ ## Changed
15
+ - Update dependencies for Rails 8 compatibility
16
+ - Replace `ActiveSupport::ProxyObject` with `BasicObject` for Rails 8 compatibility
17
+
7
18
  ## [1.3.0] - 2025-02-13
8
19
  ### Changed
9
20
  - Compatibility elasticsearch-ruby gem v8.16 and beyond
data/Gemfile.lock CHANGED
@@ -1,23 +1,23 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- es-elasticity (1.3.0)
5
- activemodel (>= 5.2.0, < 8)
6
- activerecord (>= 5.2.0, < 8)
7
- activesupport (>= 5.2.0, < 8)
8
- elastic-transport (>= 8.3, < 8.7)
9
- elasticsearch (>= 7, <= 8.16)
4
+ es-elasticity (2.0.0)
5
+ activemodel (>= 5.2.0, < 9)
6
+ activerecord (>= 5.2.0, < 9)
7
+ activesupport (>= 5.2.0, < 9)
8
+ elastic-transport (~> 8.4)
9
+ elasticsearch (~> 8.19.0)
10
10
 
11
11
  GEM
12
12
  remote: https://artifacts.dox.support/repository/gems/
13
13
  specs:
14
- activemodel (7.2.2)
15
- activesupport (= 7.2.2)
16
- activerecord (7.2.2)
17
- activemodel (= 7.2.2)
18
- activesupport (= 7.2.2)
14
+ activemodel (8.0.2.1)
15
+ activesupport (= 8.0.2.1)
16
+ activerecord (8.0.2.1)
17
+ activemodel (= 8.0.2.1)
18
+ activesupport (= 8.0.2.1)
19
19
  timeout (>= 0.4.0)
20
- activesupport (7.2.2)
20
+ activesupport (8.0.2.1)
21
21
  base64
22
22
  benchmark (>= 0.3)
23
23
  bigdecimal
@@ -29,36 +29,43 @@ GEM
29
29
  minitest (>= 5.1)
30
30
  securerandom (>= 0.3)
31
31
  tzinfo (~> 2.0, >= 2.0.5)
32
- base64 (0.2.0)
33
- benchmark (0.4.0)
34
- bigdecimal (3.1.8)
32
+ uri (>= 0.13.1)
33
+ base64 (0.3.0)
34
+ benchmark (0.4.1)
35
+ bigdecimal (3.2.2)
35
36
  byebug (11.1.3)
36
37
  codeclimate-test-reporter (1.0.7)
37
38
  simplecov
38
39
  coderay (1.1.3)
39
- concurrent-ruby (1.3.4)
40
- connection_pool (2.4.1)
40
+ concurrent-ruby (1.3.5)
41
+ connection_pool (2.5.3)
41
42
  diff-lcs (1.5.1)
42
43
  docile (1.4.1)
43
- drb (2.2.1)
44
- elastic-transport (8.3.5)
44
+ drb (2.2.3)
45
+ elastic-transport (8.5.3)
45
46
  faraday (< 3)
46
47
  multi_json
47
- elasticsearch (8.16.0)
48
+ elasticsearch (8.19.3)
48
49
  elastic-transport (~> 8.3)
49
- elasticsearch-api (= 8.16.0)
50
- elasticsearch-api (8.16.0)
50
+ elasticsearch-api (= 8.19.3)
51
+ ostruct
52
+ elasticsearch-api (8.19.3)
51
53
  multi_json
52
- faraday (2.7.4)
53
- faraday-net_http (>= 2.0, < 3.1)
54
- ruby2_keywords (>= 0.0.4)
55
- faraday-net_http (3.0.2)
56
- i18n (1.14.6)
54
+ faraday (2.14.3)
55
+ faraday-net_http (>= 2.0, < 3.5)
56
+ json
57
+ logger
58
+ faraday-net_http (3.4.4)
59
+ net-http (~> 0.5)
60
+ i18n (1.14.7)
57
61
  concurrent-ruby (~> 1.0)
58
- logger (1.6.1)
62
+ json (2.21.2)
63
+ logger (1.7.0)
59
64
  method_source (1.1.0)
60
- minitest (5.25.1)
61
- multi_json (1.15.0)
65
+ minitest (5.25.5)
66
+ multi_json (1.21.1)
67
+ net-http (0.9.1)
68
+ uri (>= 0.11.1)
62
69
  oj (3.16.7)
63
70
  bigdecimal (>= 3.0)
64
71
  ostruct (>= 0.2)
@@ -66,7 +73,7 @@ GEM
66
73
  pry (0.14.2)
67
74
  coderay (~> 1.1)
68
75
  method_source (~> 1.0)
69
- rake (10.5.0)
76
+ rake (13.3.0)
70
77
  redis (4.1.3)
71
78
  rspec (3.13.0)
72
79
  rspec-core (~> 3.13.0)
@@ -83,8 +90,7 @@ GEM
83
90
  rspec-support (3.13.1)
84
91
  rspec_junit_formatter (0.4.1)
85
92
  rspec-core (>= 2, < 4, != 2.12.0)
86
- ruby2_keywords (0.0.5)
87
- securerandom (0.3.1)
93
+ securerandom (0.4.1)
88
94
  simplecov (0.22.0)
89
95
  docile (~> 1.1)
90
96
  simplecov-html (~> 0.11)
@@ -92,9 +98,10 @@ GEM
92
98
  simplecov-html (0.13.1)
93
99
  simplecov_json_formatter (0.1.4)
94
100
  timecop (0.9.5)
95
- timeout (0.4.2)
101
+ timeout (0.4.3)
96
102
  tzinfo (2.0.6)
97
103
  concurrent-ruby (~> 1.0)
104
+ uri (1.0.3)
98
105
 
99
106
  PLATFORMS
100
107
  ruby
@@ -106,7 +113,7 @@ DEPENDENCIES
106
113
  es-elasticity!
107
114
  oj
108
115
  pry
109
- rake (~> 10.0)
116
+ rake (~> 13.0)
110
117
  redis
111
118
  rspec (~> 3.13.0)
112
119
  rspec_junit_formatter
data/README.md CHANGED
@@ -30,9 +30,7 @@ Or install it yourself as:
30
30
 
31
31
  ### Version Support
32
32
 
33
- This gem has [elasticsearch-ruby](https://github.com/elastic/elasticsearch-ruby) as a dependency. In order to use different versions of elasticsearch you will need to match your version of elasticsearch-ruby to the version of elasticsearch you want to use ([see here](https://github.com/elastic/elasticsearch-ruby#compatibility). Elasticity should work across all versions of elastisearch-ruby, although they have not all been tested so there are likely edge cases.
34
-
35
- Currently tests are run on CirlceCI against elasticsearch 7.17.3 with elasticsearch-ruby 7.17.1.
33
+ Elasticity 2.x requires Ruby 3.2 or newer and [elasticsearch-ruby](https://github.com/elastic/elasticsearch-ruby) 8.19. Tests run against Elasticsearch 8.19.20 and 9.5.2.
36
34
 
37
35
  ### Configuration
38
36
 
@@ -12,6 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = %q{Elasticity provides a higher level abstraction on top of [elasticsearch-ruby](https://github.com/elasticsearch/elasticsearch-ruby) gem}
13
13
  spec.homepage = "https://github.com/doximity/es-elasticity"
14
14
  spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 3.2"
15
16
 
16
17
  spec.files = `git ls-files -z`.split("\x0")
17
18
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -26,16 +27,16 @@ Gem::Specification.new do |spec|
26
27
  spec.add_development_dependency "codeclimate-test-reporter"
27
28
  spec.add_development_dependency "oj"
28
29
  spec.add_development_dependency "pry"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_development_dependency "rake", "~> 13.0"
30
31
  spec.add_development_dependency "redis"
31
32
  spec.add_development_dependency "rspec", "~> 3.13.0"
32
33
  spec.add_development_dependency "rspec_junit_formatter"
33
34
  spec.add_development_dependency "simplecov", "~> 0.22.0"
34
35
  spec.add_development_dependency "timecop"
35
36
 
36
- spec.add_dependency "activemodel", ">= 5.2.0", "< 8"
37
- spec.add_dependency "activerecord", ">= 5.2.0", "< 8"
38
- spec.add_dependency "activesupport", ">= 5.2.0", "< 8"
39
- spec.add_dependency "elasticsearch", ">= 7", "<= 8.16"
40
- spec.add_dependency "elastic-transport", ">= 8.3", "< 8.7"
37
+ spec.add_dependency "activemodel", ">= 5.2.0", "< 9"
38
+ spec.add_dependency "activerecord", ">= 5.2.0", "< 9"
39
+ spec.add_dependency "activesupport", ">= 5.2.0", "< 9"
40
+ spec.add_dependency "elasticsearch", "~> 8.19.0"
41
+ spec.add_dependency "elastic-transport", "~> 8.4"
41
42
  end
@@ -175,7 +175,7 @@ module Elasticity
175
175
  # Push the first set of results before requesting the second set
176
176
  y << Search::Results.new(response, @search_definition.body, @mapper)
177
177
  loop do
178
- response = @client.scroll(scroll_id: response["_scroll_id"], scroll: @scroll, body: { scroll_id: response["_scroll_id"] })
178
+ response = @client.scroll(scroll: @scroll, body: { scroll_id: response["_scroll_id"] })
179
179
  break if response["hits"]["hits"].empty?
180
180
 
181
181
  y << Search::Results.new(response, @search_definition.body, @mapper)
@@ -204,7 +204,7 @@ module Elasticity
204
204
  end
205
205
  end
206
206
 
207
- class Relation < ActiveSupport::ProxyObject
207
+ class Relation < ::BasicObject
208
208
 
209
209
  delegate :total, :per_page, :total_pages, :current_page, :next_page,
210
210
  :previous_page, :aggregations, to: :@results
@@ -291,7 +291,7 @@ module Elasticity
291
291
  end
292
292
  end
293
293
 
294
- class Results < ActiveSupport::ProxyObject
294
+ class Results < ::BasicObject
295
295
  include ::Enumerable
296
296
 
297
297
  delegate :each, :size, :length, :[], :+, :-, :&, :|, to: :@documents
@@ -95,7 +95,7 @@ module Elasticity
95
95
  end
96
96
 
97
97
  @client.bulk(body: ops) unless ops.empty?
98
- cursor = @client.scroll(scroll_id: cursor["_scroll_id"], scroll: "1m", body: { scroll_id: cursor["_scroll_id"] })
98
+ cursor = @client.scroll(scroll: "1m", body: { scroll_id: cursor["_scroll_id"] })
99
99
  end
100
100
 
101
101
  # Update aliases to only point to the new index.
@@ -139,7 +139,7 @@ module Elasticity
139
139
  end
140
140
 
141
141
  @client.bulk(body: ops)
142
- cursor = @client.scroll(scroll_id: cursor["_scroll_id"], scroll: "1m")
142
+ cursor = @client.scroll(scroll: "1m", body: { scroll_id: cursor["_scroll_id"] })
143
143
  end
144
144
 
145
145
  @client.index_refresh(index: original_index)
@@ -1,3 +1,3 @@
1
1
  module Elasticity
2
- VERSION = "1.3.0"
2
+ VERSION = "2.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: es-elasticity
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Kochenburger
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-02-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -86,14 +85,14 @@ dependencies:
86
85
  requirements:
87
86
  - - "~>"
88
87
  - !ruby/object:Gem::Version
89
- version: '10.0'
88
+ version: '13.0'
90
89
  type: :development
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - "~>"
95
94
  - !ruby/object:Gem::Version
96
- version: '10.0'
95
+ version: '13.0'
97
96
  - !ruby/object:Gem::Dependency
98
97
  name: redis
99
98
  requirement: !ruby/object:Gem::Requirement
@@ -173,7 +172,7 @@ dependencies:
173
172
  version: 5.2.0
174
173
  - - "<"
175
174
  - !ruby/object:Gem::Version
176
- version: '8'
175
+ version: '9'
177
176
  type: :runtime
178
177
  prerelease: false
179
178
  version_requirements: !ruby/object:Gem::Requirement
@@ -183,7 +182,7 @@ dependencies:
183
182
  version: 5.2.0
184
183
  - - "<"
185
184
  - !ruby/object:Gem::Version
186
- version: '8'
185
+ version: '9'
187
186
  - !ruby/object:Gem::Dependency
188
187
  name: activerecord
189
188
  requirement: !ruby/object:Gem::Requirement
@@ -193,7 +192,7 @@ dependencies:
193
192
  version: 5.2.0
194
193
  - - "<"
195
194
  - !ruby/object:Gem::Version
196
- version: '8'
195
+ version: '9'
197
196
  type: :runtime
198
197
  prerelease: false
199
198
  version_requirements: !ruby/object:Gem::Requirement
@@ -203,7 +202,7 @@ dependencies:
203
202
  version: 5.2.0
204
203
  - - "<"
205
204
  - !ruby/object:Gem::Version
206
- version: '8'
205
+ version: '9'
207
206
  - !ruby/object:Gem::Dependency
208
207
  name: activesupport
209
208
  requirement: !ruby/object:Gem::Requirement
@@ -213,7 +212,7 @@ dependencies:
213
212
  version: 5.2.0
214
213
  - - "<"
215
214
  - !ruby/object:Gem::Version
216
- version: '8'
215
+ version: '9'
217
216
  type: :runtime
218
217
  prerelease: false
219
218
  version_requirements: !ruby/object:Gem::Requirement
@@ -223,47 +222,35 @@ dependencies:
223
222
  version: 5.2.0
224
223
  - - "<"
225
224
  - !ruby/object:Gem::Version
226
- version: '8'
225
+ version: '9'
227
226
  - !ruby/object:Gem::Dependency
228
227
  name: elasticsearch
229
228
  requirement: !ruby/object:Gem::Requirement
230
229
  requirements:
231
- - - ">="
232
- - !ruby/object:Gem::Version
233
- version: '7'
234
- - - "<="
230
+ - - "~>"
235
231
  - !ruby/object:Gem::Version
236
- version: '8.16'
232
+ version: 8.19.0
237
233
  type: :runtime
238
234
  prerelease: false
239
235
  version_requirements: !ruby/object:Gem::Requirement
240
236
  requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- version: '7'
244
- - - "<="
237
+ - - "~>"
245
238
  - !ruby/object:Gem::Version
246
- version: '8.16'
239
+ version: 8.19.0
247
240
  - !ruby/object:Gem::Dependency
248
241
  name: elastic-transport
249
242
  requirement: !ruby/object:Gem::Requirement
250
243
  requirements:
251
- - - ">="
252
- - !ruby/object:Gem::Version
253
- version: '8.3'
254
- - - "<"
244
+ - - "~>"
255
245
  - !ruby/object:Gem::Version
256
- version: '8.7'
246
+ version: '8.4'
257
247
  type: :runtime
258
248
  prerelease: false
259
249
  version_requirements: !ruby/object:Gem::Requirement
260
250
  requirements:
261
- - - ">="
262
- - !ruby/object:Gem::Version
263
- version: '8.3'
264
- - - "<"
251
+ - - "~>"
265
252
  - !ruby/object:Gem::Version
266
- version: '8.7'
253
+ version: '8.4'
267
254
  description: Elasticity provides a higher level abstraction on top of [elasticsearch-ruby](https://github.com/elasticsearch/elasticsearch-ruby)
268
255
  gem
269
256
  email:
@@ -308,7 +295,6 @@ homepage: https://github.com/doximity/es-elasticity
308
295
  licenses:
309
296
  - MIT
310
297
  metadata: {}
311
- post_install_message:
312
298
  rdoc_options: []
313
299
  require_paths:
314
300
  - lib
@@ -316,15 +302,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
316
302
  requirements:
317
303
  - - ">="
318
304
  - !ruby/object:Gem::Version
319
- version: '0'
305
+ version: '3.2'
320
306
  required_rubygems_version: !ruby/object:Gem::Requirement
321
307
  requirements:
322
308
  - - ">="
323
309
  - !ruby/object:Gem::Version
324
310
  version: '0'
325
311
  requirements: []
326
- rubygems_version: 3.5.3
327
- signing_key:
312
+ rubygems_version: 3.6.9
328
313
  specification_version: 4
329
314
  summary: ActiveModel-based library for working with Elasticsearch
330
315
  test_files: []