chewy 7.2.1 → 7.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/dependabot.yml +42 -0
  4. data/.github/workflows/ruby.yml +28 -26
  5. data/.rubocop.yml +4 -1
  6. data/CHANGELOG.md +196 -0
  7. data/Gemfile +4 -3
  8. data/README.md +203 -20
  9. data/chewy.gemspec +4 -18
  10. data/gemfiles/base.gemfile +12 -0
  11. data/gemfiles/rails.6.1.activerecord.gemfile +2 -1
  12. data/gemfiles/{rails.5.2.activerecord.gemfile → rails.7.0.activerecord.gemfile} +6 -3
  13. data/gemfiles/{rails.6.0.activerecord.gemfile → rails.7.1.activerecord.gemfile} +6 -3
  14. data/lib/chewy/config.rb +22 -14
  15. data/lib/chewy/elastic_client.rb +31 -0
  16. data/lib/chewy/errors.rb +11 -2
  17. data/lib/chewy/fields/base.rb +69 -13
  18. data/lib/chewy/fields/root.rb +2 -10
  19. data/lib/chewy/index/actions.rb +11 -16
  20. data/lib/chewy/index/adapter/active_record.rb +18 -3
  21. data/lib/chewy/index/adapter/object.rb +0 -10
  22. data/lib/chewy/index/adapter/orm.rb +4 -14
  23. data/lib/chewy/index/crutch.rb +15 -7
  24. data/lib/chewy/index/import/bulk_builder.rb +219 -32
  25. data/lib/chewy/index/import/bulk_request.rb +1 -1
  26. data/lib/chewy/index/import/routine.rb +3 -3
  27. data/lib/chewy/index/import.rb +45 -31
  28. data/lib/chewy/index/mapping.rb +2 -2
  29. data/lib/chewy/index/observe/active_record_methods.rb +87 -0
  30. data/lib/chewy/index/observe/callback.rb +34 -0
  31. data/lib/chewy/index/observe.rb +3 -58
  32. data/lib/chewy/index/syncer.rb +1 -1
  33. data/lib/chewy/index.rb +25 -0
  34. data/lib/chewy/journal.rb +17 -6
  35. data/lib/chewy/log_subscriber.rb +5 -1
  36. data/lib/chewy/minitest/helpers.rb +77 -0
  37. data/lib/chewy/minitest/search_index_receiver.rb +3 -1
  38. data/lib/chewy/rake_helper.rb +92 -11
  39. data/lib/chewy/rspec/build_query.rb +12 -0
  40. data/lib/chewy/rspec/helpers.rb +55 -0
  41. data/lib/chewy/rspec/update_index.rb +14 -7
  42. data/lib/chewy/rspec.rb +2 -0
  43. data/lib/chewy/runtime/version.rb +1 -1
  44. data/lib/chewy/runtime.rb +1 -1
  45. data/lib/chewy/search/parameters/collapse.rb +16 -0
  46. data/lib/chewy/search/parameters/ignore_unavailable.rb +27 -0
  47. data/lib/chewy/search/parameters/indices.rb +1 -1
  48. data/lib/chewy/search/parameters/knn.rb +16 -0
  49. data/lib/chewy/search/parameters/order.rb +6 -19
  50. data/lib/chewy/search/parameters/storage.rb +1 -1
  51. data/lib/chewy/search/parameters/track_total_hits.rb +16 -0
  52. data/lib/chewy/search/parameters.rb +4 -4
  53. data/lib/chewy/search/request.rb +74 -16
  54. data/lib/chewy/search/scoping.rb +1 -1
  55. data/lib/chewy/search.rb +5 -2
  56. data/lib/chewy/stash.rb +3 -3
  57. data/lib/chewy/strategy/active_job.rb +1 -1
  58. data/lib/chewy/strategy/atomic_no_refresh.rb +18 -0
  59. data/lib/chewy/strategy/base.rb +10 -0
  60. data/lib/chewy/strategy/delayed_sidekiq/scheduler.rb +168 -0
  61. data/lib/chewy/strategy/delayed_sidekiq/worker.rb +76 -0
  62. data/lib/chewy/strategy/delayed_sidekiq.rb +30 -0
  63. data/lib/chewy/strategy/lazy_sidekiq.rb +64 -0
  64. data/lib/chewy/strategy/sidekiq.rb +1 -1
  65. data/lib/chewy/strategy.rb +3 -0
  66. data/lib/chewy/version.rb +1 -1
  67. data/lib/chewy.rb +21 -14
  68. data/lib/tasks/chewy.rake +18 -2
  69. data/migration_guide.md +1 -1
  70. data/spec/chewy/config_spec.rb +2 -2
  71. data/spec/chewy/elastic_client_spec.rb +26 -0
  72. data/spec/chewy/fields/base_spec.rb +39 -18
  73. data/spec/chewy/index/actions_spec.rb +10 -10
  74. data/spec/chewy/index/adapter/active_record_spec.rb +88 -0
  75. data/spec/chewy/index/import/bulk_builder_spec.rb +309 -1
  76. data/spec/chewy/index/import/routine_spec.rb +5 -5
  77. data/spec/chewy/index/import_spec.rb +48 -26
  78. data/spec/chewy/index/observe/active_record_methods_spec.rb +68 -0
  79. data/spec/chewy/index/observe/callback_spec.rb +139 -0
  80. data/spec/chewy/index/observe_spec.rb +27 -0
  81. data/spec/chewy/journal_spec.rb +13 -49
  82. data/spec/chewy/minitest/helpers_spec.rb +111 -1
  83. data/spec/chewy/minitest/search_index_receiver_spec.rb +6 -4
  84. data/spec/chewy/rake_helper_spec.rb +170 -0
  85. data/spec/chewy/rspec/build_query_spec.rb +34 -0
  86. data/spec/chewy/rspec/helpers_spec.rb +61 -0
  87. data/spec/chewy/search/pagination/kaminari_examples.rb +1 -1
  88. data/spec/chewy/search/pagination/kaminari_spec.rb +1 -1
  89. data/spec/chewy/search/parameters/collapse_spec.rb +5 -0
  90. data/spec/chewy/search/parameters/ignore_unavailable_spec.rb +67 -0
  91. data/spec/chewy/search/parameters/knn_spec.rb +5 -0
  92. data/spec/chewy/search/parameters/order_spec.rb +18 -11
  93. data/spec/chewy/search/parameters/track_total_hits_spec.rb +5 -0
  94. data/spec/chewy/search/parameters_spec.rb +6 -1
  95. data/spec/chewy/search/request_spec.rb +58 -9
  96. data/spec/chewy/search_spec.rb +9 -0
  97. data/spec/chewy/strategy/active_job_spec.rb +8 -8
  98. data/spec/chewy/strategy/atomic_no_refresh_spec.rb +60 -0
  99. data/spec/chewy/strategy/delayed_sidekiq_spec.rb +208 -0
  100. data/spec/chewy/strategy/lazy_sidekiq_spec.rb +214 -0
  101. data/spec/chewy/strategy/sidekiq_spec.rb +4 -4
  102. data/spec/chewy_spec.rb +10 -7
  103. data/spec/spec_helper.rb +1 -2
  104. data/spec/support/active_record.rb +8 -1
  105. metadata +45 -264
  106. data/lib/chewy/backports/deep_dup.rb +0 -46
  107. data/lib/chewy/backports/duplicable.rb +0 -91
  108. data/lib/chewy/index/import/thread_safe_progress_bar.rb +0 -40
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70c6d061a7070669eafe4f28bd09cd8e7a9138d0a66dd6fdbdf1f387f3f3f0af
4
- data.tar.gz: '03838f9c5e5b323e68482066b057bccff969e2826e581b994b92a962bb45e272'
3
+ metadata.gz: a15165f889275fecc6a0d590c3339ce0ac9b7944f916306fd6883e7c2be67747
4
+ data.tar.gz: 8efc6201add68bf1c378f598934b6c52c74bd9a62056e7aafdd357358d5cd2b0
5
5
  SHA512:
6
- metadata.gz: 8fcafb7b237abf426ed941e6b8d53b537db65186ce98f40b6c1b50257bc570b500b9bbff71aedb6828dfb0be11e13f031f3cf92413fd0f3efb5b860deca53a28
7
- data.tar.gz: c74fe5e6db07346b9e77f4a0d294317a6ade800fa506f231d7368058a6f058785bb0c9756110378b810398a7bc24ca5c695bbb46c330a97976fd3b1bf6a8d3da
6
+ metadata.gz: cfc7f1297fc72fcbdfdbedbcd82c6afe12dd9e15583b4e3467a8a77da89cd1aa8f20b9d0c0a8dd1841275e2916715030e28e9ed10cf510d6985904be9574890e
7
+ data.tar.gz: 6917027945ce94dab50d2f6d679570be58e4bb86472f1d591805d915ca425ecbd24e4cc13e30a459fe2dae4d572002735b69cef138a5c6038c52803a251b8a54
@@ -0,0 +1 @@
1
+ .github/workflows @toptal/platform-sre
@@ -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
@@ -1,46 +1,48 @@
1
1
  name: CI
2
2
 
3
- on: [push]
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ types: [
8
+ synchronize, # PR was updated
9
+ opened, # PR was open
10
+ reopened # PR was reopened
11
+ ]
4
12
 
5
13
  jobs:
6
- tests:
14
+ ruby-3:
7
15
  runs-on: ubuntu-latest
8
16
  strategy:
9
17
  fail-fast: false
10
18
  matrix:
11
- ruby: [2.6, 2.7]
12
- gemfile: [rails.5.2.activerecord, rails.6.0.activerecord, rails.6.1.activerecord]
19
+ ruby: [ '3.0', '3.1', '3.2' ]
20
+ gemfile: [rails.6.1.activerecord, rails.7.0.activerecord, rails.7.1.activerecord]
13
21
  name: ${{ matrix.ruby }}-${{ matrix.gemfile }}
14
22
 
15
23
  env:
16
24
  BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
17
25
 
26
+ services:
27
+ redis:
28
+ # Docker Hub image
29
+ image: redis
30
+ ports:
31
+ - '6379:6379'
32
+ # Set health checks to wait until redis has started
33
+ options: >-
34
+ --health-cmd "redis-cli ping"
35
+ --health-interval 10s
36
+ --health-timeout 5s
37
+ --health-retries 5
18
38
  steps:
19
- - uses: actions/checkout@v2
39
+ - uses: actions/checkout@v4
20
40
  - uses: ruby/setup-ruby@v1
21
41
  with:
22
42
  ruby-version: ${{ matrix.ruby }}
23
43
  bundler-cache: true
24
44
  - name: Run Elasticsearch
25
- uses: elastic/elastic-github-actions/elasticsearch@master
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@master
45
+ uses: elastic/elastic-github-actions/elasticsearch@9de0f78f306e4ebc0838f057e6b754364685e759
44
46
  with:
45
47
  stack-version: 7.10.1
46
48
  port: 9250
@@ -50,9 +52,9 @@ jobs:
50
52
  rubocop:
51
53
  runs-on: ubuntu-latest
52
54
  steps:
53
- - uses: actions/checkout@v2
55
+ - uses: actions/checkout@v4
54
56
  - uses: ruby/setup-ruby@v1
55
57
  with:
56
- ruby-version: 2.7
58
+ ruby-version: 3.0
57
59
  bundler-cache: true
58
60
  - run: bundle exec rubocop --format simple
data/.rubocop.yml CHANGED
@@ -2,7 +2,7 @@ inherit_from: .rubocop_todo.yml
2
2
 
3
3
  AllCops:
4
4
  NewCops: enable
5
- TargetRubyVersion: 2.6
5
+ TargetRubyVersion: 3.0
6
6
 
7
7
  Layout/AccessModifierIndentation:
8
8
  EnforcedStyle: outdent
@@ -59,3 +59,6 @@ Metrics/ModuleLength:
59
59
  Exclude:
60
60
  - 'lib/chewy/rake_helper.rb'
61
61
  - '**/*_spec.rb'
62
+
63
+ Style/ArgumentsForwarding:
64
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -8,6 +8,195 @@
8
8
 
9
9
  ### Bugs Fixed
10
10
 
11
+ ## 7.6.0 (2024-05-03)
12
+
13
+ ### Changes
14
+
15
+ * [#933](https://github.com/toptal/chewy/pull/933): Relax allowed `elasticsearch` dependency versions. ([@mjankowski][])
16
+
17
+ ### Bugs Fixed
18
+ * [#937](https://github.com/toptal/chewy/pull/937): Fix for race condition while using the `delayed_sidekiq` strategy. Also, fix for Redis bloating in case of reindexing error ([@skcc321](https://github.com/skcc321))
19
+
20
+ * [#947](https://github.com/toptal/chewy/pull/947): Fix intermittent time-based failure in delayed sidekiq spec. ([@mjankowski][])
21
+
22
+ ## 7.5.1 (2024-01-30)
23
+
24
+ ### New Features
25
+
26
+ * [#925](https://github.com/toptal/chewy/pull/925): Add configuration option for default scope cleanup behavior. ([@barthez][])
27
+
28
+ ### Changes
29
+
30
+ ### Bugs Fixed
31
+
32
+ ## 7.5.0 (2024-01-15)
33
+
34
+ ### New Features
35
+
36
+ * [#894](https://github.com/toptal/chewy/pull/894): Way of cleaning redis from artifacts left by `delayed_sidekiq` strategy which could potentially cause flaky tests. ([@Drowze](https://github.com/Drowze))
37
+ * [#919](https://github.com/toptal/chewy/pull/919): Add pre-request filter ([@konalegi][https://github.com/konalegi])
38
+
39
+ ## 7.4.0 (2023-12-13)
40
+
41
+ ### New Features
42
+
43
+ ### Changes
44
+
45
+ * [#911](https://github.com/toptal/chewy/pull/911): Remove ruby 2.x. ([@konalegi][https://github.com/konalegi])
46
+
47
+ ### Bugs Fixed
48
+
49
+ ## 7.3.6 (2023-12-13)
50
+
51
+ ### New Features
52
+
53
+ * [#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][])
54
+
55
+ ### Changes
56
+
57
+ ### Bugs Fixed
58
+
59
+ ## 7.3.5 (2023-12-06)
60
+
61
+ ### New Features
62
+
63
+ * [#907](https://github.com/toptal/chewy/pull/907): Fix deprecation warning in LogSubscriber for Rails 7.1 ([@alejandroperea](https://github.com/alejandroperea))
64
+
65
+ ### Changes
66
+
67
+ ### Bugs Fixed
68
+
69
+ ## 7.3.4 (2023-08-29)
70
+
71
+ ### New Features
72
+
73
+ * [#888](https://github.com/toptal/chewy/pull/892): Rake task to create missing indexes ([@konalegi](https://github.com/konalegi))
74
+
75
+ ### Changes
76
+
77
+ ### Bugs Fixed
78
+
79
+ ## 7.3.3 (2023-07-07)
80
+
81
+ ### New Features
82
+
83
+ * [#888](https://github.com/toptal/chewy/pull/888/files): Skip journal creation on import ([@konalegi](https://github.com/konalegi))
84
+
85
+ ### Changes
86
+
87
+ ### Bugs Fixed
88
+
89
+ ## 7.3.2 (2023-04-20)
90
+
91
+ ### New Features
92
+
93
+ ### Changes
94
+
95
+ ### Bugs Fixed
96
+
97
+ * [#861](https://github.com/toptal/chewy/pull/861): Fix bug in mock_elasticsearch_response_sources ([@lafeber](https://github.com/lafeber))
98
+
99
+ ## 7.3.1 (2023-04-20)
100
+
101
+ ### Bugs Fixed
102
+
103
+ * [#874](https://github.com/toptal/chewy/pull/874): Fix `chewy:journal:clean` task for ruby 3.x. ([@muk-ai](https://github.com/muk-ai))
104
+ * [#882](https://github.com/toptal/chewy/pull/882): Fix memory leak during `chewy:reset` for ruby 3.2 ([@konalegi](https://github.com/konalegi))
105
+
106
+ ## 7.3.0 (2023-04-03)
107
+
108
+ ### New Features
109
+
110
+ * [#869](https://github.com/toptal/chewy/pull/869): New strategy - `delayed_sidekiq`. Allow passing `strategy: :delayed_sidekiq` option to `SomeIndex.import([1, ...], strategy: :delayed_sidekiq)`. The strategy is compatible with `update_fields` option as well. ([@skcc321][])
111
+ * [#879](https://github.com/toptal/chewy/pull/879): Configure CI to check for ruby 3.2 compatibility. ([@konalegi][])
112
+
113
+ ### Changes
114
+
115
+ ### Bugs Fixed
116
+
117
+ * [#856](https://github.com/toptal/chewy/pull/856): Fix return value of subscribed_task_stats used in rake tasks. ([@fabiormoura][])
118
+
119
+ ## 7.2.7 (2022-11-15)
120
+
121
+ ### New Features
122
+
123
+ * [#857](https://github.com/toptal/chewy/pull/857): Allow passing `wait_for_completion`, `request_per_second` and `scroll_size` options to `chewy:journal:clean` rake task and `delete_all` query builder method. ([@konalegi][])([@barthez][])
124
+
125
+ ### Changes
126
+
127
+ ### Bugs Fixed
128
+
129
+ * [#863](https://github.com/toptal/chewy/pull/863): Fix `crutches` call doesn't respect `update_fields` option. ([@skcc321][])
130
+
131
+ ## 7.2.6 (2022-06-13)
132
+
133
+ ### New Features
134
+
135
+ * [#841](https://github.com/toptal/chewy/pull/841): Add the [`collapse`](https://www.elastic.co/guide/en/elasticsearch/reference/current/collapse-search-results.html) option to the request. ([@jkostolansky][])
136
+
137
+ ### Bugs Fixed
138
+
139
+ * [#842](https://github.com/toptal/chewy/issues/842): Fix `ignore_blank` handling. ([@rabotyaga][])
140
+ * [#848](https://github.com/toptal/chewy/issues/848): Fix invalid journal pagination. ([@konalegi][])
141
+
142
+ ## 7.2.5 (2022-03-04)
143
+
144
+ ### New Features
145
+
146
+ * [#827](https://github.com/toptal/chewy/pull/827): Add `:lazy_sidekiq` strategy, that defers not only importing but also `update_index` callback evaluation for created and updated objects. ([@sl4vr][])
147
+ * [#827](https://github.com/toptal/chewy/pull/827): Add `:atomic_no_refresh` strategy. Like `:atomic`, but `refresh=false` parameter is set. ([@barthez][])
148
+ * [#827](https://github.com/toptal/chewy/pull/827): Add `:no_refresh` chain call to `update_index` matcher to ensure import was called with `refresh=false`. ([@barthez][])
149
+
150
+ ### Bugs Fixed
151
+
152
+ * [#835](https://github.com/toptal/chewy/pull/835): Support keyword arguments in named scopes. ([@milk1000cc][])
153
+
154
+ ## 7.2.4 (2022-02-03)
155
+
156
+ ### New Features
157
+
158
+ * [#760](https://github.com/toptal/chewy/pull/760): Replace parent-child mapping with a [join field](https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html#parent-child-mapping-types) ([@mrzasa][])
159
+
160
+ ### Bugs Fixed
161
+
162
+ * [#825](https://github.com/toptal/chewy/issues/825): Fix mismatch argument names at update_mapping rake task ([@AgeevAndrew][])
163
+ * [#832](https://github.com/toptal/chewy/issues/832): Fix "cannot load such file -- `i18n/core_ext/hash`" ([@chrisandreae][])
164
+
165
+ ## 7.2.3 (2021-10-29)
166
+
167
+ ### New Features
168
+
169
+ * [#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][])
170
+ * [#810](https://github.com/toptal/chewy/pull/810): Use `unsafe_load` when loading config to support Psych 4.
171
+ * [#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][])
172
+
173
+ ### Changes
174
+
175
+ * [#817](https://github.com/toptal/chewy/pull/817): Show warning message during rake chewy:reset or chewy:upgrade if journaling is disabled. ([@konalegi][])
176
+
177
+ ### Bugs Fixed
178
+
179
+ * [#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][])
180
+
181
+ ## 7.2.2 (2021-05-24)
182
+
183
+ ### Changes
184
+
185
+ * [#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][])
186
+
187
+ * [#795](https://github.com/toptal/chewy/issues/795): **(Breaking)** Change the Chewy::Search::Parameters::Order implementation to use Array ([@jiajiawang][]):
188
+ * To allow multiple sorting options that may have the same key name. For example script based sorting whose key will always be `_script`.
189
+ * Behaviour change of chained `order` calls.
190
+ * e.g. `.order(_script: {a: 1}).order(_script: {b: 2})`
191
+ * Before `{:sort=>[{"_script"=>{:b=>2}}]}`
192
+ * After `{:sort=>[{"_script"=>{:a=>1}},{"_script"=>{:b=>2}}]}`
193
+
194
+ * [#654](https://github.com/toptal/chewy/issues/654): Add helpers and matchers for testing ([@Vitalina-Vakulchyk][]):
195
+ * `mock_elasticsearch_response` helpers both Rspec and Minitest - to mock elasticsearch response
196
+ * `mock_elasticsearch_response_sources` helpers both Rspec and Minitest - to mock elasticsearch response sources
197
+ * `assert_elasticsearch_query` helper for Minitest - to compare request and expected query (returns `true`/`false`)
198
+ * `build_query` matcher for Rspec - to compare request and expected query (returns `true`/`false`)
199
+
11
200
  ## 7.2.1 (2021-05-11)
12
201
 
13
202
  ### New Features
@@ -599,9 +788,11 @@
599
788
  * Initial version
600
789
 
601
790
  [@0x0badc0de]: https://github.com/0x0badc0de
791
+ [@AgeevAndrew]: https://github.com/AgeevAndrew
602
792
  [@aglushkov]: https://github.com/aglushkov
603
793
  [@AlexVPopov]: https://github.com/AlexVPopov
604
794
  [@AndreySavelyev]: https://github.com/AndreySavelyev
795
+ [@afg419]: https://github.com/afg419
605
796
  [@arion]: https://github.com/arion
606
797
  [@arturtr]: https://github.com/arturtr
607
798
  [@averell23]: https://github.com/averell23
@@ -612,6 +803,7 @@
612
803
  [@biow0lf]: https://github.com/biow0lf
613
804
  [@Borzik]: https://github.com/Borzik
614
805
  [@caldwecr]: https://github.com/caldwecr
806
+ [@chrisandreae]: https://github.com/chrisandreae
615
807
  [@clupprich]: https://github.com/clupprich
616
808
  [@dalthon]: https://github.com/dalthon
617
809
  [@davekaro]: https://github.com/davekaro
@@ -631,9 +823,11 @@
631
823
  [@inbeom]: https://github.com/inbeom
632
824
  [@jesjos]: https://github.com/jesjos
633
825
  [@JF-Lalonde]: https://github.com/JF-Lalonde
826
+ [@jiajiawang]: https://github.com/jiajiawang
634
827
  [@jimmybaker]: https://github.com/jimmybaker
635
828
  [@jirikolarik]: https://github.com/jirikolarik
636
829
  [@jirutka]: https://github.com/jirutka
830
+ [@jkostolansky]: https://github.com/jkostolansky
637
831
  [@joeljunstrom]: https://github.com/joeljunstrom
638
832
  [@jondavidford]: https://github.com/jondavidford
639
833
  [@joonty]: https://github.com/joonty
@@ -641,6 +835,7 @@
641
835
  [@josephchoe]: https://github.com/josephchoe
642
836
  [@jshirley]: https://github.com/jshirley
643
837
  [@ka8725]: https://github.com/ka8725
838
+ [@kolauren]: https://github.com/kolauren
644
839
  [@konalegi]: https://github.com/konalegi
645
840
  [@lardawge]: https://github.com/lardawge
646
841
  [@leemhenson]: https://github.com/leemhenson
@@ -654,6 +849,7 @@
654
849
  [@mattzollinhofer]: https://github.com/mattzollinhofer
655
850
  [@menglewis]: https://github.com/menglewis
656
851
  [@mikeyhogarth]: https://github.com/mikeyhogarth
852
+ [@milk1000cc]: https://github.com/milk1000cc
657
853
  [@mkcode]: https://github.com/mkcode
658
854
  [@mpeychich]: https://github.com/mpeychich
659
855
  [@mrbrdo]: https://github.com/mrbrdo
data/Gemfile CHANGED
@@ -1,7 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gemspec
4
-
5
3
  gem 'activerecord'
6
4
 
7
5
  gem 'activejob', require: false
@@ -18,4 +16,7 @@ gem 'guard-rspec'
18
16
  gem 'redcarpet'
19
17
  gem 'yard'
20
18
 
21
- gem 'rexml' if RUBY_VERSION >= '3.0.0'
19
+ gem 'rexml'
20
+
21
+ eval_gemfile 'gemfiles/base.gemfile'
22
+ gemspec