chewy 7.3.4 → 7.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ccc78d2b2639947fa81151db668c7a733a046335332d37bf0d45fd5dbe8d7c6
4
- data.tar.gz: 7a4daeb15073d05116d154ca5f19d7f8d43a2926f85f2890c47e3fa20cc243de
3
+ metadata.gz: e5405b97585dccb630ef95340245a390ff7ffe19a1a27e57a35b4f4d6844e2e0
4
+ data.tar.gz: 91570a2fd199d511bf40caf473d8000504cae38a4bb4b68c6f767913033f7234
5
5
  SHA512:
6
- metadata.gz: f55f69638f9618445b047409a018a284f0cb0ec648e71eede51065b274f1d9b86e70dbf090c8d5efd174e7d74e231f7541b59820ad7cffdb1c829ddf0b6688f6
7
- data.tar.gz: c23c190126a842f5d0fc87990a7424aed90e1794e5ad0442f017b56f98c84e30e502189364b19da3ad40b2271e491dec04f53828b9e05fe9e82cef34ded63438
6
+ metadata.gz: 8441a05d5a3c55834f7380a1e10b3acb4f01f17b6cafc45e3ccead13f0d7c2a6485447c2bc8461ae5c91b37b36c4d57f140f76cb993ca63777195d64237d8432
7
+ data.tar.gz: 3571db3d5fa632d6ee9c10105578ca8f805090e375372f1ad98a192dca440536f27559be2439d7e75c8ab833f596fc61758d464696ec4ee47942ff29fbffa6d5
@@ -0,0 +1,42 @@
1
+ version: 2
2
+ registries:
3
+ toptal-github:
4
+ type: "git"
5
+ url: "https://github.com"
6
+ username: "x-access-token"
7
+ password: "${{secrets.DEPENDABOT_GITHUB_TOKEN}}"
8
+
9
+ updates:
10
+ - package-ecosystem: bundler
11
+ directory: "/"
12
+ schedule:
13
+ interval: "weekly"
14
+ day: "wednesday"
15
+ time: "07:00"
16
+ pull-request-branch-name:
17
+ separator: "-"
18
+ labels:
19
+ - "no-jira"
20
+ - "ruby"
21
+ - "dependencies"
22
+ reviewers:
23
+ - "toptal/devx"
24
+ registries:
25
+ - toptal-github
26
+ insecure-external-code-execution: allow
27
+ open-pull-requests-limit: 3
28
+ - package-ecosystem: "github-actions"
29
+ directory: "/"
30
+ schedule:
31
+ interval: "weekly"
32
+ day: "wednesday"
33
+ time: "07:00"
34
+ pull-request-branch-name:
35
+ separator: "-"
36
+ labels:
37
+ - "no-jira"
38
+ - "dependencies"
39
+ - "gha"
40
+ reviewers:
41
+ - "toptal/devx"
42
+ open-pull-requests-limit: 3
@@ -24,7 +24,7 @@ jobs:
24
24
  BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
25
25
 
26
26
  steps:
27
- - uses: actions/checkout@v2
27
+ - uses: actions/checkout@v4
28
28
  - uses: ruby/setup-ruby@v1
29
29
  with:
30
30
  ruby-version: ${{ matrix.ruby }}
@@ -43,14 +43,14 @@ jobs:
43
43
  fail-fast: false
44
44
  matrix:
45
45
  ruby: [ '3.0', '3.1', '3.2' ]
46
- gemfile: [ rails.6.1.activerecord, rails.7.0.activerecord ]
46
+ gemfile: [ rails.6.1.activerecord, rails.7.0.activerecord, rails.7.1.activerecord ]
47
47
  name: ${{ matrix.ruby }}-${{ matrix.gemfile }}
48
48
 
49
49
  env:
50
50
  BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
51
51
 
52
52
  steps:
53
- - uses: actions/checkout@v2
53
+ - uses: actions/checkout@v4
54
54
  - uses: ruby/setup-ruby@v1
55
55
  with:
56
56
  ruby-version: ${{ matrix.ruby }}
@@ -66,7 +66,7 @@ jobs:
66
66
  rubocop:
67
67
  runs-on: ubuntu-latest
68
68
  steps:
69
- - uses: actions/checkout@v2
69
+ - uses: actions/checkout@v4
70
70
  - uses: ruby/setup-ruby@v1
71
71
  with:
72
72
  ruby-version: 2.7
data/CHANGELOG.md CHANGED
@@ -8,6 +8,26 @@
8
8
 
9
9
  ### Bugs Fixed
10
10
 
11
+ ## 7.3.5 (2023-12-13)
12
+
13
+ ### New Features
14
+
15
+ * [#890](https://github.com/toptal/chewy/pull/890): Add the [`knn`](https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html) option to the request. ([@jkostolansky][])
16
+
17
+ ### Changes
18
+
19
+ ### Bugs Fixed
20
+
21
+ ## 7.3.5 (2023-12-06)
22
+
23
+ ### New Features
24
+
25
+ * [#907](https://github.com/toptal/chewy/pull/907): Fix deprecation warning in LogSubscriber for Rails 7.1 ([@alejandroperea](https://github.com/alejandroperea))
26
+
27
+ ### Changes
28
+
29
+ ### Bugs Fixed
30
+
11
31
  ## 7.3.4 (2023-08-29)
12
32
 
13
33
  ### New Features
@@ -0,0 +1,13 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'activejob', '~> 7.1.0'
4
+ gem 'activerecord', '~> 7.1.0'
5
+ gem 'activesupport', '~> 7.1.0'
6
+ gem 'kaminari-core', '~> 1.1.0', require: false
7
+ gem 'parallel', require: false
8
+ gem 'rspec_junit_formatter', '~> 0.4.1'
9
+ gem 'sidekiq', require: false
10
+
11
+ gem 'rexml' if RUBY_VERSION >= '3.0.0'
12
+
13
+ gemspec path: '../'
@@ -24,7 +24,11 @@ module Chewy
24
24
 
25
25
  subject = payload[:type].presence || payload[:index]
26
26
  action = "#{subject} #{action} (#{event.duration.round(1)}ms)"
27
- action = color(action, GREEN, true)
27
+ action = if ActiveSupport.version >= Gem::Version.new('7.1')
28
+ color(action, GREEN, bold: true)
29
+ else
30
+ color(action, GREEN, true)
31
+ end
28
32
 
29
33
  debug(" #{action} #{description}")
30
34
  end
@@ -0,0 +1,16 @@
1
+ require 'chewy/search/parameters/storage'
2
+
3
+ module Chewy
4
+ module Search
5
+ class Parameters
6
+ # Just a standard hash storage. Nothing to see here.
7
+ #
8
+ # @see Chewy::Search::Parameters::HashStorage
9
+ # @see Chewy::Search::Request#knn
10
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html
11
+ class Knn < Storage
12
+ include HashStorage
13
+ end
14
+ end
15
+ end
16
+ end
@@ -20,7 +20,7 @@ module Chewy
20
20
  UNDEFINED = Class.new.freeze
21
21
  EVERFIELDS = %w[_index _type _id _parent _routing].freeze
22
22
  DELEGATED_METHODS = %i[
23
- query filter post_filter order reorder docvalue_fields
23
+ query filter post_filter knn order reorder docvalue_fields
24
24
  track_scores track_total_hits request_cache explain version profile
25
25
  search_type preference limit offset terminate_after
26
26
  timeout min_score source stored_fields search_after
@@ -41,7 +41,7 @@ module Chewy
41
41
  EXTRA_STORAGES = %i[aggs suggest].freeze
42
42
  # An array of storage names that are changing the returned hist collection in any way.
43
43
  WHERE_STORAGES = %i[
44
- query filter post_filter none min_score rescore indices_boost collapse
44
+ query filter post_filter knn none min_score rescore indices_boost collapse
45
45
  ].freeze
46
46
 
47
47
  delegate :hits, :wrappers, :objects, :records, :documents,
@@ -520,7 +520,18 @@ module Chewy
520
520
  # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/collapse-search-results.html
521
521
  # @param value [Hash]
522
522
  # @return [Chewy::Search::Request]
523
- %i[request_cache search_type preference timeout limit offset terminate_after min_score ignore_unavailable collapse].each do |name|
523
+ #
524
+ # @!method knn(value)
525
+ # Replaces the value of the `knn` request part.
526
+ #
527
+ # @example
528
+ # PlacesIndex.knn(field: :vector, query_vector: [4, 2], k: 5, num_candidates: 50)
529
+ # # => <PlacesIndex::Query {..., :body=>{:knn=>{"field"=>:vector, "query_vector"=>[4, 2], "k"=>5, "num_candidates"=>50}}}>
530
+ # @see Chewy::Search::Parameters::Knn
531
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/knn-search.html
532
+ # @param value [Hash]
533
+ # @return [Chewy::Search::Request]
534
+ %i[request_cache search_type preference timeout limit offset terminate_after min_score ignore_unavailable collapse knn].each do |name|
524
535
  define_method name do |value|
525
536
  modify(name) { replace!(value) }
526
537
  end
data/lib/chewy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Chewy
2
- VERSION = '7.3.4'.freeze
2
+ VERSION = '7.3.6'.freeze
3
3
  end
data/lib/chewy.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'active_support'
1
2
  require 'active_support/version'
2
3
  require 'active_support/concern'
3
4
  require 'active_support/deprecation'
@@ -0,0 +1,5 @@
1
+ require 'chewy/search/parameters/hash_storage_examples'
2
+
3
+ describe Chewy::Search::Parameters::Knn do
4
+ it_behaves_like :hash_storage, :knn
5
+ end
@@ -314,14 +314,16 @@ describe Chewy::Search::Request do
314
314
  end
315
315
  end
316
316
 
317
- describe '#collapse' do
318
- specify { expect(subject.collapse(foo: {bar: 42}).render[:body]).to include(collapse: {'foo' => {bar: 42}}) }
319
- specify do
320
- expect(subject.collapse(foo: {bar: 42}).collapse(moo: {baz: 43}).render[:body])
321
- .to include(collapse: {'moo' => {baz: 43}})
317
+ %i[collapse knn].each do |name|
318
+ describe "##{name}" do
319
+ specify { expect(subject.send(name, foo: {bar: 42}).render[:body]).to include(name => {'foo' => {bar: 42}}) }
320
+ specify do
321
+ expect(subject.send(name, foo: {bar: 42}).send(name, moo: {baz: 43}).render[:body])
322
+ .to include(name => {'moo' => {baz: 43}})
323
+ end
324
+ specify { expect(subject.send(name, foo: {bar: 42}).send(name, nil).render[:body]).to be_blank }
325
+ specify { expect { subject.send(name, foo: {bar: 42}) }.not_to change { subject.render } }
322
326
  end
323
- specify { expect(subject.collapse(foo: {bar: 42}).collapse(nil).render[:body]).to be_blank }
324
- specify { expect { subject.collapse(foo: {bar: 42}) }.not_to change { subject.render } }
325
327
  end
326
328
 
327
329
  describe '#docvalue_fields' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chewy
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.4
4
+ version: 7.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toptal, LLC
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-08-29 00:00:00.000000000 Z
12
+ date: 2023-12-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: database_cleaner
@@ -240,6 +240,7 @@ files:
240
240
  - ".github/ISSUE_TEMPLATE/bug_report.md"
241
241
  - ".github/ISSUE_TEMPLATE/feature_request.md"
242
242
  - ".github/PULL_REQUEST_TEMPLATE.md"
243
+ - ".github/dependabot.yml"
243
244
  - ".github/workflows/ruby.yml"
244
245
  - ".gitignore"
245
246
  - ".rspec"
@@ -260,6 +261,7 @@ files:
260
261
  - gemfiles/rails.6.0.activerecord.gemfile
261
262
  - gemfiles/rails.6.1.activerecord.gemfile
262
263
  - gemfiles/rails.7.0.activerecord.gemfile
264
+ - gemfiles/rails.7.1.activerecord.gemfile
263
265
  - lib/chewy.rb
264
266
  - lib/chewy/config.rb
265
267
  - lib/chewy/errors.rb
@@ -322,6 +324,7 @@ files:
322
324
  - lib/chewy/search/parameters/ignore_unavailable.rb
323
325
  - lib/chewy/search/parameters/indices.rb
324
326
  - lib/chewy/search/parameters/indices_boost.rb
327
+ - lib/chewy/search/parameters/knn.rb
325
328
  - lib/chewy/search/parameters/limit.rb
326
329
  - lib/chewy/search/parameters/load.rb
327
330
  - lib/chewy/search/parameters/min_score.rb
@@ -417,6 +420,7 @@ files:
417
420
  - spec/chewy/search/parameters/ignore_unavailable_spec.rb
418
421
  - spec/chewy/search/parameters/indices_spec.rb
419
422
  - spec/chewy/search/parameters/integer_storage_examples.rb
423
+ - spec/chewy/search/parameters/knn_spec.rb
420
424
  - spec/chewy/search/parameters/limit_spec.rb
421
425
  - spec/chewy/search/parameters/load_spec.rb
422
426
  - spec/chewy/search/parameters/min_score_spec.rb
@@ -535,6 +539,7 @@ test_files:
535
539
  - spec/chewy/search/parameters/ignore_unavailable_spec.rb
536
540
  - spec/chewy/search/parameters/indices_spec.rb
537
541
  - spec/chewy/search/parameters/integer_storage_examples.rb
542
+ - spec/chewy/search/parameters/knn_spec.rb
538
543
  - spec/chewy/search/parameters/limit_spec.rb
539
544
  - spec/chewy/search/parameters/load_spec.rb
540
545
  - spec/chewy/search/parameters/min_score_spec.rb