chewy 7.1.0 → 7.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +58 -0
  3. data/.rubocop.yml +13 -8
  4. data/.rubocop_todo.yml +110 -22
  5. data/CHANGELOG.md +112 -0
  6. data/Gemfile +0 -7
  7. data/Guardfile +3 -1
  8. data/README.md +307 -248
  9. data/chewy.gemspec +4 -6
  10. data/gemfiles/rails.5.2.activerecord.gemfile +8 -14
  11. data/gemfiles/rails.6.0.activerecord.gemfile +8 -14
  12. data/gemfiles/rails.6.1.activerecord.gemfile +8 -14
  13. data/lib/chewy/config.rb +41 -41
  14. data/lib/chewy/errors.rb +0 -12
  15. data/lib/chewy/fields/base.rb +11 -1
  16. data/lib/chewy/fields/root.rb +3 -4
  17. data/lib/chewy/index/actions.rb +51 -32
  18. data/lib/chewy/{type → index}/adapter/active_record.rb +12 -3
  19. data/lib/chewy/{type → index}/adapter/base.rb +2 -3
  20. data/lib/chewy/{type → index}/adapter/object.rb +27 -31
  21. data/lib/chewy/{type → index}/adapter/orm.rb +11 -14
  22. data/lib/chewy/{type → index}/crutch.rb +5 -5
  23. data/lib/chewy/{type → index}/import/bulk_builder.rb +15 -13
  24. data/lib/chewy/{type → index}/import/bulk_request.rb +6 -6
  25. data/lib/chewy/{type → index}/import/journal_builder.rb +10 -10
  26. data/lib/chewy/{type → index}/import/routine.rb +15 -14
  27. data/lib/chewy/{type → index}/import.rb +36 -27
  28. data/lib/chewy/{type → index}/mapping.rb +26 -31
  29. data/lib/chewy/{type → index}/observe.rb +9 -19
  30. data/lib/chewy/index/specification.rb +1 -0
  31. data/lib/chewy/{type → index}/syncer.rb +60 -57
  32. data/lib/chewy/{type → index}/witchcraft.rb +11 -7
  33. data/lib/chewy/{type → index}/wrapper.rb +2 -2
  34. data/lib/chewy/index.rb +46 -87
  35. data/lib/chewy/journal.rb +8 -8
  36. data/lib/chewy/minitest/helpers.rb +86 -13
  37. data/lib/chewy/minitest/search_index_receiver.rb +22 -26
  38. data/lib/chewy/railtie.rb +4 -2
  39. data/lib/chewy/rake_helper.rb +103 -108
  40. data/lib/chewy/rspec/build_query.rb +12 -0
  41. data/lib/chewy/rspec/helpers.rb +55 -0
  42. data/lib/chewy/rspec/update_index.rb +47 -43
  43. data/lib/chewy/rspec.rb +2 -0
  44. data/lib/chewy/runtime.rb +1 -1
  45. data/lib/chewy/search/loader.rb +18 -30
  46. data/lib/chewy/search/parameters/concerns/query_storage.rb +2 -2
  47. data/lib/chewy/search/parameters/ignore_unavailable.rb +27 -0
  48. data/lib/chewy/search/parameters/order.rb +6 -19
  49. data/lib/chewy/search/parameters/source.rb +5 -1
  50. data/lib/chewy/search/parameters/track_total_hits.rb +16 -0
  51. data/lib/chewy/search/parameters.rb +5 -3
  52. data/lib/chewy/search/query_proxy.rb +9 -2
  53. data/lib/chewy/search/request.rb +110 -90
  54. data/lib/chewy/search/response.rb +4 -4
  55. data/lib/chewy/search/scoping.rb +7 -8
  56. data/lib/chewy/search/scrolling.rb +12 -12
  57. data/lib/chewy/search.rb +4 -17
  58. data/lib/chewy/stash.rb +14 -22
  59. data/lib/chewy/strategy/sidekiq.rb +1 -0
  60. data/lib/chewy/strategy.rb +3 -19
  61. data/lib/chewy/version.rb +1 -1
  62. data/lib/chewy.rb +34 -78
  63. data/lib/generators/chewy/install_generator.rb +1 -1
  64. data/lib/tasks/chewy.rake +10 -22
  65. data/migration_guide.md +20 -1
  66. data/spec/chewy/config_spec.rb +14 -39
  67. data/spec/chewy/fields/base_spec.rb +412 -148
  68. data/spec/chewy/fields/root_spec.rb +16 -24
  69. data/spec/chewy/fields/time_fields_spec.rb +5 -5
  70. data/spec/chewy/index/actions_spec.rb +270 -24
  71. data/spec/chewy/{type → index}/adapter/active_record_spec.rb +68 -40
  72. data/spec/chewy/{type → index}/adapter/object_spec.rb +21 -6
  73. data/spec/chewy/{type → index}/import/bulk_builder_spec.rb +23 -31
  74. data/spec/chewy/{type → index}/import/bulk_request_spec.rb +5 -6
  75. data/spec/chewy/{type → index}/import/journal_builder_spec.rb +9 -15
  76. data/spec/chewy/{type → index}/import/routine_spec.rb +16 -16
  77. data/spec/chewy/{type → index}/import_spec.rb +102 -98
  78. data/spec/chewy/{type → index}/mapping_spec.rb +46 -54
  79. data/spec/chewy/index/observe_spec.rb +116 -0
  80. data/spec/chewy/index/settings_spec.rb +3 -1
  81. data/spec/chewy/index/specification_spec.rb +7 -17
  82. data/spec/chewy/{type → index}/syncer_spec.rb +14 -19
  83. data/spec/chewy/{type → index}/witchcraft_spec.rb +20 -22
  84. data/spec/chewy/index/wrapper_spec.rb +100 -0
  85. data/spec/chewy/index_spec.rb +59 -102
  86. data/spec/chewy/journal_spec.rb +9 -22
  87. data/spec/chewy/minitest/helpers_spec.rb +122 -14
  88. data/spec/chewy/minitest/search_index_receiver_spec.rb +22 -26
  89. data/spec/chewy/multi_search_spec.rb +4 -5
  90. data/spec/chewy/rake_helper_spec.rb +164 -55
  91. data/spec/chewy/rspec/build_query_spec.rb +34 -0
  92. data/spec/chewy/rspec/helpers_spec.rb +61 -0
  93. data/spec/chewy/rspec/update_index_spec.rb +74 -71
  94. data/spec/chewy/search/loader_spec.rb +19 -37
  95. data/spec/chewy/search/pagination/kaminari_examples.rb +3 -5
  96. data/spec/chewy/search/pagination/kaminari_spec.rb +1 -1
  97. data/spec/chewy/search/parameters/ignore_unavailable_spec.rb +67 -0
  98. data/spec/chewy/search/parameters/indices_spec.rb +2 -8
  99. data/spec/chewy/search/parameters/order_spec.rb +18 -11
  100. data/spec/chewy/search/parameters/query_storage_examples.rb +67 -21
  101. data/spec/chewy/search/parameters/search_after_spec.rb +4 -1
  102. data/spec/chewy/search/parameters/source_spec.rb +8 -2
  103. data/spec/chewy/search/parameters/track_total_hits_spec.rb +5 -0
  104. data/spec/chewy/search/parameters_spec.rb +18 -4
  105. data/spec/chewy/search/query_proxy_spec.rb +68 -17
  106. data/spec/chewy/search/request_spec.rb +243 -83
  107. data/spec/chewy/search/response_spec.rb +12 -12
  108. data/spec/chewy/search/scrolling_spec.rb +8 -10
  109. data/spec/chewy/search_spec.rb +32 -35
  110. data/spec/chewy/stash_spec.rb +9 -21
  111. data/spec/chewy/strategy/active_job_spec.rb +8 -8
  112. data/spec/chewy/strategy/atomic_spec.rb +9 -10
  113. data/spec/chewy/strategy/sidekiq_spec.rb +8 -8
  114. data/spec/chewy/strategy_spec.rb +19 -15
  115. data/spec/chewy_spec.rb +17 -103
  116. data/spec/spec_helper.rb +2 -21
  117. data/spec/support/active_record.rb +15 -5
  118. metadata +64 -105
  119. data/.circleci/config.yml +0 -214
  120. data/Appraisals +0 -81
  121. data/gemfiles/rails.5.2.mongoid.6.4.gemfile +0 -17
  122. data/gemfiles/sequel.4.45.gemfile +0 -11
  123. data/lib/chewy/search/pagination/will_paginate.rb +0 -43
  124. data/lib/chewy/strategy/resque.rb +0 -27
  125. data/lib/chewy/strategy/shoryuken.rb +0 -40
  126. data/lib/chewy/type/actions.rb +0 -43
  127. data/lib/chewy/type/adapter/mongoid.rb +0 -67
  128. data/lib/chewy/type/adapter/sequel.rb +0 -93
  129. data/lib/chewy/type.rb +0 -120
  130. data/lib/sequel/plugins/chewy_observe.rb +0 -63
  131. data/spec/chewy/search/pagination/will_paginate_examples.rb +0 -63
  132. data/spec/chewy/search/pagination/will_paginate_spec.rb +0 -23
  133. data/spec/chewy/strategy/resque_spec.rb +0 -46
  134. data/spec/chewy/strategy/shoryuken_spec.rb +0 -70
  135. data/spec/chewy/type/actions_spec.rb +0 -50
  136. data/spec/chewy/type/adapter/mongoid_spec.rb +0 -372
  137. data/spec/chewy/type/adapter/sequel_spec.rb +0 -472
  138. data/spec/chewy/type/observe_spec.rb +0 -137
  139. data/spec/chewy/type/wrapper_spec.rb +0 -100
  140. data/spec/chewy/type_spec.rb +0 -55
  141. data/spec/support/mongoid.rb +0 -93
  142. data/spec/support/sequel.rb +0 -80
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58a5011ecef1ca511a28d4d3299d61f852c4c11ffe6fd124db3e0a5b370a0f9e
4
- data.tar.gz: fa0ce61841d579210c2de4a84624b265cca533f887e6125d8e07cee59315c4a6
3
+ metadata.gz: a027fc99d931ad37a70f2cdf906363917af16afc6dd82bbc1da8066e63dad9ee
4
+ data.tar.gz: 602bbb699c4971f8653207bb52d8bb7c40899128b1c6034c89f0f4481207f569
5
5
  SHA512:
6
- metadata.gz: '0925c5bb8f3adfc79b5914d975c71f2677d6232ccbac074d65ee63d99d23cfbc16c85adf88c953e003fbebfcff2fc9b0bb5a11d735ce6432cdcd57d76e7f81e4'
7
- data.tar.gz: fefd812c6daea408e90b6f235efd169b195b5d1003fe4d3042c2e502b375d0b7cdf6d4d41133d012bf05a0f0e417ce95e43fbd1eb8e99b9ba3d72f6a4b50e548
6
+ metadata.gz: 444a1e44ad27a6d066daf31ceee258ee51e4ef1398fe6af4bf7294090b2391d2f136aa1726d5eb9f1c22f1c87abfd16f4a05c1198a0496e2062a13f8f31340db
7
+ data.tar.gz: 5f484506393af6b6959593850c9c7cb73307628076eb9676bd72e53b7fa02a987986d79443c35c2c7a0efd652615fb7ccf6ed418ab7bdf85eb69fbe6b2b02c24
@@ -0,0 +1,58 @@
1
+ name: CI
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ tests:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ fail-fast: false
10
+ matrix:
11
+ ruby: [2.6, 2.7]
12
+ gemfile: [rails.5.2.activerecord, rails.6.0.activerecord, rails.6.1.activerecord]
13
+ name: ${{ matrix.ruby }}-${{ matrix.gemfile }}
14
+
15
+ env:
16
+ BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ bundler-cache: true
24
+ - name: Run Elasticsearch
25
+ uses: elastic/elastic-github-actions/elasticsearch@9de0f78f306e4ebc0838f057e6b754364685e759
26
+ with:
27
+ stack-version: 7.10.1
28
+ port: 9250
29
+ - name: Tests
30
+ run: bundle exec rspec
31
+
32
+ ruby-3-0-activerecord-6-1:
33
+ runs-on: ubuntu-latest
34
+ env:
35
+ BUNDLE_GEMFILE: gemfiles/rails.6.1.activerecord.gemfile
36
+ steps:
37
+ - uses: actions/checkout@v2
38
+ - uses: ruby/setup-ruby@v1
39
+ with:
40
+ ruby-version: '3.0'
41
+ bundler-cache: true
42
+ - name: Run Elasticsearch
43
+ uses: elastic/elastic-github-actions/elasticsearch@9de0f78f306e4ebc0838f057e6b754364685e759
44
+ with:
45
+ stack-version: 7.10.1
46
+ port: 9250
47
+ - name: Tests
48
+ run: bundle exec rspec
49
+
50
+ rubocop:
51
+ runs-on: ubuntu-latest
52
+ steps:
53
+ - uses: actions/checkout@v2
54
+ - uses: ruby/setup-ruby@v1
55
+ with:
56
+ ruby-version: 2.7
57
+ bundler-cache: true
58
+ - run: bundle exec rubocop --format simple
data/.rubocop.yml CHANGED
@@ -1,24 +1,31 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
+ AllCops:
4
+ NewCops: enable
5
+ TargetRubyVersion: 2.6
6
+
3
7
  Layout/AccessModifierIndentation:
4
8
  EnforcedStyle: outdent
5
9
 
6
- Layout/AlignHash:
10
+ Layout/HashAlignment:
7
11
  EnforcedLastArgumentHashStyle: always_ignore
8
12
 
9
- Layout/AlignParameters:
13
+ Layout/ParameterAlignment:
10
14
  EnforcedStyle: with_fixed_indentation
11
15
 
12
16
  Layout/CaseIndentation:
13
17
  EnforcedStyle: end
14
18
 
15
- Layout/IndentArray:
19
+ Layout/EndAlignment:
20
+ EnforcedStyleAlignWith: variable
21
+
22
+ Layout/FirstArrayElementIndentation:
16
23
  EnforcedStyle: consistent
17
24
 
18
- Layout/IndentHash:
25
+ Layout/FirstHashElementIndentation:
19
26
  EnforcedStyle: consistent
20
27
 
21
- Layout/IndentHeredoc:
28
+ Layout/HeredocIndentation:
22
29
  Enabled: false
23
30
 
24
31
  Layout/MultilineMethodCallIndentation:
@@ -33,9 +40,6 @@ Layout/SpaceInsideHashLiteralBraces:
33
40
  Lint/AmbiguousBlockAssociation:
34
41
  Enabled: false
35
42
 
36
- Lint/EndAlignment:
37
- EnforcedStyleAlignWith: variable
38
-
39
43
  Style/Alias:
40
44
  EnforcedStyle: prefer_alias_method
41
45
 
@@ -53,4 +57,5 @@ Metrics/BlockLength:
53
57
 
54
58
  Metrics/ModuleLength:
55
59
  Exclude:
60
+ - 'lib/chewy/rake_helper.rb'
56
61
  - '**/*_spec.rb'
data/.rubocop_todo.yml CHANGED
@@ -1,44 +1,132 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2016-09-09 17:05:47 +0700 using RuboCop version 0.42.0.
3
+ # on 2021-04-02 12:44:05 UTC using RuboCop version 1.11.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 42
9
+ # Offense count: 1
10
+ # Configuration parameters: Include.
11
+ # Include: **/*.gemspec
12
+ Gemspec/RequiredRubyVersion:
13
+ Exclude:
14
+ - 'chewy.gemspec'
15
+
16
+ # Offense count: 2
17
+ # Configuration parameters: AllowedMethods.
18
+ # AllowedMethods: enums
19
+ Lint/ConstantDefinitionInBlock:
20
+ Exclude:
21
+ - 'lib/chewy/rspec/update_index.rb'
22
+ - 'spec/chewy/config_spec.rb'
23
+
24
+ # Offense count: 10
25
+ # Configuration parameters: AllowComments, AllowEmptyLambdas.
26
+ Lint/EmptyBlock:
27
+ Exclude:
28
+ - 'spec/chewy/minitest/helpers_spec.rb'
29
+ - 'spec/chewy/rspec/update_index_spec.rb'
30
+ - 'spec/chewy/search/scrolling_spec.rb'
31
+ - 'spec/chewy/strategy/atomic_spec.rb'
32
+ - 'spec/chewy/strategy_spec.rb'
33
+ - 'spec/chewy/index/import/bulk_request_spec.rb'
34
+ - 'spec/chewy/index/witchcraft_spec.rb'
35
+ - 'spec/chewy_spec.rb'
36
+
37
+ # Offense count: 3
38
+ Lint/MissingSuper:
39
+ Exclude:
40
+ - 'lib/chewy/strategy/atomic.rb'
41
+ - 'lib/chewy/index/adapter/object.rb'
42
+ - 'lib/chewy/index/adapter/orm.rb'
43
+
44
+ # Offense count: 35
45
+ # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
10
46
  Metrics/AbcSize:
11
- Max: 48
47
+ Max: 41
12
48
 
13
49
  # Offense count: 4
14
- # Configuration parameters: CountComments.
50
+ # Configuration parameters: CountComments, CountAsOne.
15
51
  Metrics/ClassLength:
16
- Max: 300
52
+ Max: 267
17
53
 
18
- # Offense count: 14
54
+ # Offense count: 13
55
+ # Configuration parameters: IgnoredMethods.
19
56
  Metrics/CyclomaticComplexity:
20
- Max: 13
21
-
22
- # Offense count: 1450
23
- # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
24
- # URISchemes: http, https
25
- Metrics/LineLength:
26
- Max: 198
57
+ Max: 12
27
58
 
28
- # Offense count: 38
29
- # Configuration parameters: CountComments.
59
+ # Offense count: 43
60
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
30
61
  Metrics/MethodLength:
31
- Max: 33
62
+ Max: 29
32
63
 
33
- # Offense count: 1
34
- # Configuration parameters: CountComments.
64
+ # Offense count: 2
65
+ # Configuration parameters: CountComments, CountAsOne.
35
66
  Metrics/ModuleLength:
36
- Max: 180
67
+ Max: 158
37
68
 
38
- # Offense count: 14
69
+ # Offense count: 18
70
+ # Configuration parameters: IgnoredMethods.
39
71
  Metrics/PerceivedComplexity:
40
- Max: 15
72
+ Max: 13
41
73
 
42
- # Offense count: 93
74
+ # Offense count: 11
75
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers.
76
+ # SupportedStyles: snake_case, normalcase, non_integer
77
+ # AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339
78
+ Naming/VariableNumber:
79
+ Exclude:
80
+ - 'spec/chewy/fields/root_spec.rb'
81
+
82
+ # Offense count: 5
83
+ Style/DocumentDynamicEvalDefinition:
84
+ Exclude:
85
+ - 'lib/chewy/index/actions.rb'
86
+ - 'lib/chewy/repository.rb'
87
+ - 'lib/chewy/search/pagination/kaminari.rb'
88
+ - 'lib/chewy/index/crutch.rb'
89
+ - 'lib/chewy/index/witchcraft.rb'
90
+
91
+ # Offense count: 58
43
92
  Style/Documentation:
44
93
  Enabled: false
94
+
95
+ # Offense count: 2
96
+ # Cop supports --auto-correct.
97
+ Style/EvalWithLocation:
98
+ Exclude:
99
+ - 'spec/chewy/index_spec.rb'
100
+
101
+ # Offense count: 191
102
+ # Cop supports --auto-correct.
103
+ # Configuration parameters: EnforcedStyle.
104
+ # SupportedStyles: always, always_true, never
105
+ Style/FrozenStringLiteralComment:
106
+ Enabled: false
107
+
108
+ # Offense count: 2
109
+ # Configuration parameters: MinBodyLength.
110
+ Style/GuardClause:
111
+ Exclude:
112
+ - 'lib/chewy.rb'
113
+ - 'spec/support/active_record.rb'
114
+
115
+ # Offense count: 10
116
+ # Cop supports --auto-correct.
117
+ Style/IfUnlessModifier:
118
+ Exclude:
119
+ - 'lib/chewy.rb'
120
+ - 'lib/chewy/railtie.rb'
121
+ - 'lib/chewy/rspec/update_index.rb'
122
+ - 'lib/chewy/search/query_proxy.rb'
123
+ - 'lib/chewy/index/import.rb'
124
+ - 'lib/chewy/index/witchcraft.rb'
125
+ - 'spec/support/active_record.rb'
126
+
127
+ # Offense count: 53
128
+ # Cop supports --auto-correct.
129
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
130
+ # URISchemes: http, https
131
+ Layout/LineLength:
132
+ Max: 191
data/CHANGELOG.md CHANGED
@@ -8,6 +8,112 @@
8
8
 
9
9
  ### Bugs Fixed
10
10
 
11
+ ## 7.2.3 (2021-10-29)
12
+
13
+ ### New Features
14
+
15
+ * [#801](https://github.com/toptal/chewy/pull/801): Add the [`track_total_hits`](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-your-data.html#track-total-hits) option to the query. ([@milk1000cc][])
16
+ * [#810](https://github.com/toptal/chewy/pull/810): Use `unsafe_load` when loading config to support Psych 4.
17
+ * [#819](https://github.com/toptal/chewy/pull/819): Add the [`ignore_unavailable`](https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html#multi-index) option to the request. ([@kolauren][])
18
+
19
+ ### Changes
20
+
21
+ * [#817](https://github.com/toptal/chewy/pull/817): Show warning message during rake chewy:reset or chewy:upgrade if journaling is disabled. ([@konalegi][])
22
+
23
+ ### Bugs Fixed
24
+
25
+ * [#816](https://github.com/toptal/chewy/pull/816): Move query [`preference`](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/search-search.html#search-preference) from body to query parameters. ([@afg419][])
26
+
27
+ ## 7.2.2 (2021-05-24)
28
+
29
+ ### Changes
30
+
31
+ * [#800](https://github.com/toptal/chewy/pull/800): Revert [#787](https://github.com/toptal/chewy/pull/787) progressbar feature to avoid performance degradation in parallel import ([@rabotyaga][])
32
+
33
+ * [#795](https://github.com/toptal/chewy/issues/795): **(Breaking)** Change the Chewy::Search::Parameters::Order implementation to use Array ([@jiajiawang][]):
34
+ * To allow multiple sorting options that may have the same key name. For example script based sorting whose key will always be `_script`.
35
+ * Behaviour change of chained `order` calls.
36
+ * e.g. `.order(_script: {a: 1}).order(_script: {b: 2})`
37
+ * Before `{:sort=>[{"_script"=>{:b=>2}}]}`
38
+ * After `{:sort=>[{"_script"=>{:a=>1}},{"_script"=>{:b=>2}}]}`
39
+
40
+ * [#654](https://github.com/toptal/chewy/issues/654): Add helpers and matchers for testing ([@Vitalina-Vakulchyk][]):
41
+ * `mock_elasticsearch_response` helpers both Rspec and Minitest - to mock elasticsearch response
42
+ * `mock_elasticsearch_response_sources` helpers both Rspec and Minitest - to mock elasticsearch response sources
43
+ * `assert_elasticsearch_query` helper for Minitest - to compare request and expected query (returns `true`/`false`)
44
+ * `build_query` matcher for Rspec - to compare request and expected query (returns `true`/`false`)
45
+
46
+ ## 7.2.1 (2021-05-11)
47
+
48
+ ### New Features
49
+
50
+ * [#469](https://github.com/toptal/chewy/issues/469): Add ability to output the progressbar with `ENV['PROGRESS']` during `reset` rake tasks ([@Vitalina-Vakulchyk][]):
51
+ * for `rake chewy:reset` and `rake chewy:parallel:reset`
52
+ * progressbar is hidden by default, set `ENV['PROGRESS']` to `true` to display it
53
+
54
+ ### Bugs Fixed
55
+
56
+ * [#796](https://github.com/toptal/chewy/pull/796): Fix clear scroll: pass `scroll_id` in body, as passing in path parameters is deprecated and can overflow `http.max_initial_line_length` ([@rabotyaga][])
57
+
58
+ ## 7.0.1 (2021-05-03)
59
+
60
+ ### Changes
61
+
62
+ * [#792](https://github.com/toptal/chewy/pull/792): Skip ES version memoization for search requests ([@rabotyaga][])
63
+ * See the Migration Guide for details
64
+
65
+ ## 7.2.0 (2021-04-19)
66
+
67
+ ### New Features
68
+
69
+ * [#778](https://github.com/toptal/chewy/pull/778): Add `ignore_blank` option to `field` method ([@Vitalina-Vakulchyk][]):
70
+ * `true` by default for the `geo_point` type
71
+ * `false` by default for other types
72
+
73
+ ### Changes
74
+
75
+ * [#783](https://github.com/toptal/chewy/pull/783): **(Breaking)** Remove `Chewy::Type`, simplify DSL ([@rabotyaga][])
76
+ * Remove the `Chewy::Type` class
77
+ * e.g. remove `CitiesIndex::City` / `CitiesIndex.city`
78
+ * `CitiesIndex::City.import! ...` becomes `CitiesIndex.import! ...`
79
+ * Simplify index DSL:
80
+ * `define_type` block -> `index_scope` clause
81
+ * it can be omitted completely, if you don't need to specify the scope or options, e.g. `name`
82
+ * Remove type names from string representations:
83
+ * in `update_index` ActiveRecord helper and RSpec matcher, e.g.
84
+ * `update_index('cities#city')` -> `update_index('cities')`
85
+ * `update_index(UsersIndex::User)` -> `update_index(UsersIndex)`
86
+ * in rake tasks (e.g. `rake chewy:update[cities#city]` -> `rake chewy:update[cities]`)
87
+ * in rake tasks output (e.g. `Imported CitiesIndex::City in 1s, stats: index 3` -> `Imported CitiesIndex in 1s, stats: index 3`)
88
+ * Use index name instead of type name in loader additional scope
89
+ * e.g. `CitiesIndex.filter(...).load(city: {scope: City.where(...)})` -> `CitiesIndex.filter(...).load(cities: {scope: City.where(...)})`
90
+ * [#692](https://github.com/toptal/chewy/issues/692): Add `.update_mapping` to Index class ([@Vitalina-Vakulchyk][]):
91
+ * Wrapped Elasticsearch gem `.put_mapping` with `.update_mapping` in Index class
92
+ * Add `rake chewy:update_mapping` task
93
+ * [#594](https://github.com/toptal/chewy/issues/594): Add `.reindex` to Index class ([@Vitalina-Vakulchyk][]):
94
+ * Wrapped Elasticsearch gem `.reindex` with `.reindex` in Index class
95
+ * Add `rake chewy:reindex` task
96
+ * [#679](https://github.com/toptal/chewy/issues/679): Wrapped `Elasticsearch::API::Indices::Actions#clear_cache` with `.clear_cache` in Index class ([@Vitalina-Vakulchyk][])
97
+ * [#495](https://github.com/toptal/chewy/issues/495): Ability to change Rails console strategy with `Chewy.console_strategy` ([@Vitalina-Vakulchyk][])
98
+ * [#778](https://github.com/toptal/chewy/pull/778): **(Breaking)** Drop support for Ruby 2.5 ([@Vitalina-Vakulchyk][])
99
+ * [#776](https://github.com/toptal/chewy/pull/776): **(Breaking)** Removal of unnecessary features and integrations ([@Vitalina-Vakulchyk][]):
100
+ * `aws-sdk-sqs` / `shoryuken`
101
+ * `mongoid`
102
+ * `sequel`
103
+ * `will_paginate`
104
+ * `resque`
105
+ * [#769](https://github.com/toptal/chewy/pull/769): **(Breaking)** Removal of deprecated methods and rake tasks ([@Vitalina-Vakulchyk][]):
106
+ * `Chewy::Index.index_params` is removed, use `Chewy::Index.specification_hash` instead
107
+ * `Chewy::Index.derivable_index_name` is removed, use `Chewy::Index.derivable_name` instead
108
+ * `Chewy::Index.default_prefix` is removed, use `Chewy::Index.prefix` instead
109
+ * `Chewy::Index.build_index_name` is removed, use `Chewy::Index.index_name` instead
110
+ * `Chewy::RakeHelper.reset_index` is removed, use `Chewy::RakeHelper.reset` instead
111
+ * `Chewy::RakeHelper.reset_all` is removed, use `Chewy::RakeHelper.reset` instead
112
+ * `Chewy::RakeHelper.update_index` is removed, use `Chewy::RakeHelper.update` instead
113
+ * `Chewy::RakeHelper.update_all` is removed, use `Chewy::RakeHelper.update` instead
114
+ * `rake chewy:apply_changes_from` is removed, use `rake chewy:journal:apply` instead
115
+ * `rake chewy:clean_journal` is removed, use `rake chewy:journal:clean` instead
116
+
11
117
  ## 7.1.0 (2021-03-03)
12
118
 
13
119
  ### Changes
@@ -531,6 +637,7 @@
531
637
  [@aglushkov]: https://github.com/aglushkov
532
638
  [@AlexVPopov]: https://github.com/AlexVPopov
533
639
  [@AndreySavelyev]: https://github.com/AndreySavelyev
640
+ [@afg419]: https://github.com/afg419
534
641
  [@arion]: https://github.com/arion
535
642
  [@arturtr]: https://github.com/arturtr
536
643
  [@averell23]: https://github.com/averell23
@@ -560,6 +667,7 @@
560
667
  [@inbeom]: https://github.com/inbeom
561
668
  [@jesjos]: https://github.com/jesjos
562
669
  [@JF-Lalonde]: https://github.com/JF-Lalonde
670
+ [@jiajiawang]: https://github.com/jiajiawang
563
671
  [@jimmybaker]: https://github.com/jimmybaker
564
672
  [@jirikolarik]: https://github.com/jirikolarik
565
673
  [@jirutka]: https://github.com/jirutka
@@ -570,6 +678,7 @@
570
678
  [@josephchoe]: https://github.com/josephchoe
571
679
  [@jshirley]: https://github.com/jshirley
572
680
  [@ka8725]: https://github.com/ka8725
681
+ [@kolauren]: https://github.com/kolauren
573
682
  [@konalegi]: https://github.com/konalegi
574
683
  [@lardawge]: https://github.com/lardawge
575
684
  [@leemhenson]: https://github.com/leemhenson
@@ -583,6 +692,7 @@
583
692
  [@mattzollinhofer]: https://github.com/mattzollinhofer
584
693
  [@menglewis]: https://github.com/menglewis
585
694
  [@mikeyhogarth]: https://github.com/mikeyhogarth
695
+ [@milk1000cc]: https://github.com/milk1000cc
586
696
  [@mkcode]: https://github.com/mkcode
587
697
  [@mpeychich]: https://github.com/mpeychich
588
698
  [@mrbrdo]: https://github.com/mrbrdo
@@ -607,5 +717,7 @@
607
717
  [@taylor-au]: https://github.com/taylor-au
608
718
  [@TikiTDO]: https://github.com/TikiTDO
609
719
  [@undr]: https://github.com/undr
720
+ [@Vitalina-Vakulchyk]: https://github.com/Vitalina-Vakulchyk
610
721
  [@webgago]: https://github.com/webgago
611
722
  [@yahooguntu]: https://github.com/yahooguntu
723
+
data/Gemfile CHANGED
@@ -3,18 +3,11 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'activerecord'
6
- # gem 'mongoid'
7
- # gem 'sequel'
8
6
 
9
7
  gem 'activejob', require: false
10
- gem 'resque', require: false
11
8
  gem 'sidekiq', require: false
12
9
 
13
- gem 'aws-sdk-sqs', require: false
14
- gem 'shoryuken', require: false
15
-
16
10
  gem 'kaminari-core', require: false
17
- gem 'will_paginate', require: false
18
11
 
19
12
  gem 'parallel', require: false
20
13
  gem 'ruby-progressbar', require: false
data/Guardfile CHANGED
@@ -9,7 +9,9 @@ guard :rspec, cmd: 'rspec' do
9
9
  # Rails example
10
10
  watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
11
  watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
- watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) do |m|
13
+ ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"]
14
+ end
13
15
  watch(%r{^spec/support/(.+)\.rb$}) { 'spec' }
14
16
  watch('config/routes.rb') { 'spec/routing' }
15
17
  watch('app/controllers/application_controller.rb') { 'spec/controllers' }