chewy 6.0.0 → 7.2.1

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.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +16 -0
  5. data/.github/workflows/ruby.yml +58 -0
  6. data/.rubocop.yml +13 -8
  7. data/.rubocop_todo.yml +110 -22
  8. data/CHANGELOG.md +200 -105
  9. data/CODE_OF_CONDUCT.md +14 -0
  10. data/CONTRIBUTING.md +63 -0
  11. data/Gemfile +0 -7
  12. data/Guardfile +3 -1
  13. data/README.md +313 -274
  14. data/chewy.gemspec +4 -5
  15. data/gemfiles/rails.5.2.activerecord.gemfile +8 -14
  16. data/gemfiles/rails.6.0.activerecord.gemfile +8 -14
  17. data/gemfiles/rails.6.1.activerecord.gemfile +8 -14
  18. data/lib/chewy.rb +21 -75
  19. data/lib/chewy/config.rb +40 -40
  20. data/lib/chewy/errors.rb +0 -12
  21. data/lib/chewy/fields/base.rb +11 -1
  22. data/lib/chewy/fields/root.rb +4 -6
  23. data/lib/chewy/index.rb +46 -98
  24. data/lib/chewy/index/actions.rb +65 -43
  25. data/lib/chewy/{type → index}/adapter/active_record.rb +12 -3
  26. data/lib/chewy/{type → index}/adapter/base.rb +2 -3
  27. data/lib/chewy/{type → index}/adapter/object.rb +37 -31
  28. data/lib/chewy/{type → index}/adapter/orm.rb +23 -14
  29. data/lib/chewy/index/aliases.rb +14 -5
  30. data/lib/chewy/{type → index}/crutch.rb +5 -5
  31. data/lib/chewy/{type → index}/import.rb +62 -32
  32. data/lib/chewy/{type → index}/import/bulk_builder.rb +15 -13
  33. data/lib/chewy/{type → index}/import/bulk_request.rb +6 -7
  34. data/lib/chewy/{type → index}/import/journal_builder.rb +11 -12
  35. data/lib/chewy/{type → index}/import/routine.rb +19 -18
  36. data/lib/chewy/index/import/thread_safe_progress_bar.rb +40 -0
  37. data/lib/chewy/{type → index}/mapping.rb +27 -32
  38. data/lib/chewy/{type → index}/observe.rb +9 -19
  39. data/lib/chewy/index/specification.rb +1 -0
  40. data/lib/chewy/{type → index}/syncer.rb +60 -60
  41. data/lib/chewy/{type → index}/witchcraft.rb +11 -7
  42. data/lib/chewy/{type → index}/wrapper.rb +2 -2
  43. data/lib/chewy/journal.rb +8 -8
  44. data/lib/chewy/minitest/helpers.rb +9 -13
  45. data/lib/chewy/minitest/search_index_receiver.rb +22 -26
  46. data/lib/chewy/railtie.rb +6 -20
  47. data/lib/chewy/rake_helper.rb +83 -108
  48. data/lib/chewy/rspec/update_index.rb +47 -43
  49. data/lib/chewy/search.rb +4 -17
  50. data/lib/chewy/search/loader.rb +19 -41
  51. data/lib/chewy/search/parameters.rb +4 -2
  52. data/lib/chewy/search/parameters/concerns/query_storage.rb +2 -2
  53. data/lib/chewy/search/parameters/indices.rb +12 -57
  54. data/lib/chewy/search/parameters/source.rb +5 -1
  55. data/lib/chewy/search/query_proxy.rb +9 -2
  56. data/lib/chewy/search/request.rb +96 -119
  57. data/lib/chewy/search/response.rb +5 -5
  58. data/lib/chewy/search/scoping.rb +6 -7
  59. data/lib/chewy/search/scrolling.rb +13 -13
  60. data/lib/chewy/stash.rb +16 -27
  61. data/lib/chewy/strategy.rb +3 -19
  62. data/lib/chewy/strategy/sidekiq.rb +1 -0
  63. data/lib/chewy/version.rb +1 -1
  64. data/lib/generators/chewy/install_generator.rb +1 -1
  65. data/lib/tasks/chewy.rake +20 -32
  66. data/migration_guide.md +46 -8
  67. data/spec/chewy/config_spec.rb +14 -39
  68. data/spec/chewy/fields/base_spec.rb +414 -150
  69. data/spec/chewy/fields/root_spec.rb +20 -28
  70. data/spec/chewy/fields/time_fields_spec.rb +5 -5
  71. data/spec/chewy/index/actions_spec.rb +368 -59
  72. data/spec/chewy/{type → index}/adapter/active_record_spec.rb +68 -40
  73. data/spec/chewy/{type → index}/adapter/object_spec.rb +21 -6
  74. data/spec/chewy/index/aliases_spec.rb +3 -3
  75. data/spec/chewy/{type → index}/import/bulk_builder_spec.rb +23 -31
  76. data/spec/chewy/{type → index}/import/bulk_request_spec.rb +5 -12
  77. data/spec/chewy/{type → index}/import/journal_builder_spec.rb +9 -19
  78. data/spec/chewy/{type → index}/import/routine_spec.rb +16 -16
  79. data/spec/chewy/{type → index}/import_spec.rb +140 -96
  80. data/spec/chewy/index/mapping_spec.rb +135 -0
  81. data/spec/chewy/index/observe_spec.rb +116 -0
  82. data/spec/chewy/index/settings_spec.rb +3 -1
  83. data/spec/chewy/index/specification_spec.rb +20 -30
  84. data/spec/chewy/{type → index}/syncer_spec.rb +14 -19
  85. data/spec/chewy/{type → index}/witchcraft_spec.rb +20 -22
  86. data/spec/chewy/index/wrapper_spec.rb +100 -0
  87. data/spec/chewy/index_spec.rb +60 -105
  88. data/spec/chewy/journal_spec.rb +13 -26
  89. data/spec/chewy/minitest/helpers_spec.rb +13 -15
  90. data/spec/chewy/minitest/search_index_receiver_spec.rb +22 -26
  91. data/spec/chewy/multi_search_spec.rb +4 -5
  92. data/spec/chewy/rake_helper_spec.rb +145 -55
  93. data/spec/chewy/rspec/update_index_spec.rb +74 -71
  94. data/spec/chewy/runtime_spec.rb +2 -2
  95. data/spec/chewy/search/loader_spec.rb +19 -53
  96. data/spec/chewy/search/pagination/kaminari_examples.rb +3 -5
  97. data/spec/chewy/search/pagination/kaminari_spec.rb +1 -1
  98. data/spec/chewy/search/parameters/indices_spec.rb +26 -117
  99. data/spec/chewy/search/parameters/order_spec.rb +1 -1
  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_spec.rb +12 -3
  104. data/spec/chewy/search/query_proxy_spec.rb +68 -17
  105. data/spec/chewy/search/request_spec.rb +234 -101
  106. data/spec/chewy/search/response_spec.rb +12 -12
  107. data/spec/chewy/search/scrolling_spec.rb +10 -17
  108. data/spec/chewy/search_spec.rb +32 -35
  109. data/spec/chewy/stash_spec.rb +9 -21
  110. data/spec/chewy/strategy/active_job_spec.rb +8 -8
  111. data/spec/chewy/strategy/atomic_spec.rb +9 -10
  112. data/spec/chewy/strategy/sidekiq_spec.rb +8 -8
  113. data/spec/chewy/strategy_spec.rb +19 -15
  114. data/spec/chewy_spec.rb +14 -100
  115. data/spec/spec_helper.rb +3 -21
  116. data/spec/support/active_record.rb +18 -7
  117. metadata +64 -106
  118. data/.circleci/config.yml +0 -240
  119. data/Appraisals +0 -81
  120. data/gemfiles/rails.5.2.mongoid.6.4.gemfile +0 -17
  121. data/gemfiles/sequel.4.45.gemfile +0 -11
  122. data/lib/chewy/search/pagination/will_paginate.rb +0 -43
  123. data/lib/chewy/search/parameters/types.rb +0 -20
  124. data/lib/chewy/strategy/resque.rb +0 -27
  125. data/lib/chewy/strategy/shoryuken.rb +0 -40
  126. data/lib/chewy/type.rb +0 -120
  127. data/lib/chewy/type/actions.rb +0 -43
  128. data/lib/chewy/type/adapter/mongoid.rb +0 -67
  129. data/lib/chewy/type/adapter/sequel.rb +0 -93
  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/search/parameters/types_spec.rb +0 -5
  134. data/spec/chewy/strategy/resque_spec.rb +0 -46
  135. data/spec/chewy/strategy/shoryuken_spec.rb +0 -70
  136. data/spec/chewy/type/actions_spec.rb +0 -50
  137. data/spec/chewy/type/adapter/mongoid_spec.rb +0 -372
  138. data/spec/chewy/type/adapter/sequel_spec.rb +0 -472
  139. data/spec/chewy/type/mapping_spec.rb +0 -175
  140. data/spec/chewy/type/observe_spec.rb +0 -137
  141. data/spec/chewy/type/wrapper_spec.rb +0 -100
  142. data/spec/chewy/type_spec.rb +0 -55
  143. data/spec/support/mongoid.rb +0 -93
  144. data/spec/support/sequel.rb +0 -80
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d885732170ee400be6fc8df2f567afb384e752235edaf57ae58624f6907fb0d
4
- data.tar.gz: 9d1aa6212b67c16a3e6cb7e4fec7c9b76ac768099d0717fbe97f16c1930584af
3
+ metadata.gz: 70c6d061a7070669eafe4f28bd09cd8e7a9138d0a66dd6fdbdf1f387f3f3f0af
4
+ data.tar.gz: '03838f9c5e5b323e68482066b057bccff969e2826e581b994b92a962bb45e272'
5
5
  SHA512:
6
- metadata.gz: 4c1809614999dc9c8e8f4ac0763e4aca663fa7f118bc4cedf17f7bef255f8161b19cfc94daeb34dfb2729dc68756726f647013ce63bc77d9596255b07b153239
7
- data.tar.gz: 73ad27cef56399d39974d837eb374279f1a9cbd84e6103c9d4aba6e151d0200f3b63075056b6ebff02e9c7d06bda1bd3ea4ab736e683cb60353b537da52757ea
6
+ metadata.gz: 8fcafb7b237abf426ed941e6b8d53b537db65186ce98f40b6c1b50257bc570b500b9bbff71aedb6828dfb0be11e13f031f3cf92413fd0f3efb5b860deca53a28
7
+ data.tar.gz: c74fe5e6db07346b9e77f4a0d294317a6ade800fa506f231d7368058a6f058785bb0c9756110378b810398a7bc24ca5c695bbb46c330a97976fd3b1bf6a8d3da
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report an issue with Chewy you've discovered.
4
+ ---
5
+
6
+ *Be clear, concise and precise in your description of the problem.
7
+ Open an issue with a descriptive title and a summary in grammatically correct,
8
+ complete sentences.*
9
+
10
+ *Use the template below when reporting bugs. Please, make sure that
11
+ you're running the latest stable Chewy and that the problem you're reporting
12
+ hasn't been reported (and potentially fixed) already.*
13
+
14
+ *Before filing the ticket you should replace all text above the horizontal
15
+ rule with your own words.*
16
+
17
+ --------
18
+
19
+ ## Expected behavior
20
+
21
+ Describe here how you expected Chewy to behave in this particular situation.
22
+
23
+ ## Actual behavior
24
+
25
+ Describe here what actually happened.
26
+
27
+ ## Steps to reproduce the problem
28
+
29
+ This is extremely important! Providing us with a reliable way to reproduce
30
+ a problem will expedite its solution.
31
+
32
+ ## Version Information
33
+
34
+ Share here essential version information such as:
35
+
36
+ * Chewy version
37
+ * Elasticsearch version
38
+ * Ruby version
39
+ * Rails version
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest new Chewy features or improvements to existing features.
4
+ ---
5
+
6
+ ## Is your feature request related to a problem? Please describe.
7
+
8
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9
+
10
+ ## Describe the solution you'd like
11
+
12
+ A clear and concise description of what you want to happen.
13
+
14
+ ## Describe alternatives you've considered
15
+
16
+ A clear and concise description of any alternative solutions or features you've considered.
17
+
18
+ ## Additional context
19
+
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,16 @@
1
+ **Replace this text with a summary of the changes in your PR.
2
+ The more detailed you are, the better.**
3
+
4
+ -----------------
5
+
6
+ Before submitting the PR make sure the following are checked:
7
+
8
+ * [ ] The PR relates to *only* one subject with a clear title and description in grammatically correct, complete sentences.
9
+ * [ ] Wrote [good commit messages][1].
10
+ * [ ] Commit message starts with `[Fix #issue-number]` (if the related issue exists).
11
+ * [ ] Feature branch is up-to-date with `master` (if not - rebase it).
12
+ * [ ] Squashed related commits together.
13
+ * [ ] Added tests.
14
+ * [ ] Added an entry to the changelog if the new code introduces user-observable changes. See [changelog entry format](https://github.com/toptal/chewy/blob/master/CONTRIBUTING.md#changelog-entry-format) for details.
15
+
16
+ [1]: https://chris.beams.io/posts/git-commit/
@@ -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@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
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
@@ -1,99 +1,193 @@
1
- # master
1
+ # Changelog
2
2
 
3
- # Version 6.0.0 (2021-02-11)
3
+ ## master (unreleased)
4
4
 
5
- ## Breaking changes
5
+ ### New Features
6
6
 
7
- * [#743](https://github.com/toptal/chewy/pull/743): Elasticsearch 6.x support added. See [migration guide](migration_guide.md) & ES [breaking changes](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/breaking-changes-6.0.html). Removed legacy DSL support. Removed support for ES < 5 ([@mrzasa][], [@konalegi][], [@rabotyaga][])
7
+ ### Changes
8
8
 
9
- ## Bug fixes
9
+ ### Bugs Fixed
10
10
 
11
- * [#695](https://github.com/toptal/chewy/pull/695): Clear the scroll by id after completing scroll_batches ([@socialchorus][])
12
- * [#749](https://github.com/toptal/chewy/pull/749): Avoid importing everything when given an empty relation ([@JF-Lalonde][], [@dalthon][])
13
- * [#736](https://github.com/toptal/chewy/pull/736): Fix nil children when using witchcraft ([@taylor-au][])
11
+ ## 7.2.1 (2021-05-11)
14
12
 
15
- ## Changes
13
+ ### New Features
16
14
 
17
- * [#751](https://github.com/toptal/chewy/pull/751): Add [Multi Search API](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-multi-search.html) support ([@mpeychich][], [@dalthon][])
18
- * [#755](https://github.com/toptal/chewy/pull/755): `attribute_highlights` returns an array of highlights ([@musaffa][], [@dalthon][])
19
- * [#753](https://github.com/toptal/chewy/pull/753): Add support for direct_import parameter to skip objects reloading ([@TikiTDO][], [@dalthon][])
20
- * [#739](https://github.com/toptal/chewy/pull/739): Remove explicit `main` branch dependencies on rspec* gems after `rspec-mocks` 3.10.2 is released ([@rabotyaga][])
15
+ * [#469](https://github.com/toptal/chewy/issues/469): Add ability to output the progressbar with `ENV['PROGRESS']` during `reset` rake tasks ([@Vitalina-Vakulchyk][]):
16
+ * for `rake chewy:reset` and `rake chewy:parallel:reset`
17
+ * progressbar is hidden by default, set `ENV['PROGRESS']` to `true` to display it
21
18
 
22
- # Version 5.2.0 (2021-01-28)
19
+ ### Bugs Fixed
23
20
 
24
- ## Changes
21
+ * [#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][])
25
22
 
26
- * [#734](https://github.com/toptal/chewy/pull/734): Add support for Ruby 3 ([@lowang][])
27
- * [#735](https://github.com/toptal/chewy/pull/735): Correct deprecation warning for Elasticsearch 5.6 to 6: empty query for`_delete_by_query`, delete by alias, `index_already_exists_exception` renaming ([@bhacaz][])
28
- * [#733](https://github.com/toptal/chewy/pull/733): Update gemspec dependencies for Rails. Update CI gemfiles and matrix to tests against current LTS Rails versions. ([@bhacaz][])
29
- * Tweak some wording and formatting; add a note about compatibility; update copyright; remove broken logo; update the CI badge ([@bbatsov][])
30
- * [#714](https://github.com/toptal/chewy/pull/714): Update instructions for AWS ElasticSearch ([@olancheg][])
31
- * [#728](https://github.com/toptal/chewy/pull/728): Fix more ruby 2.7 keyword params deprecation warnings ([@aglushkov][])
32
- * [#715](https://github.com/toptal/chewy/pull/715): Fixed all deprecation warnings in Ruby 2.7 ([@gseddon][])
33
- * [#718](https://github.com/toptal/chewy/pull/718): Added Ruby 2.7 to CircleCI config ([@mrzasa][])
34
- * [#707](https://github.com/toptal/chewy/pull/707): Allow configuration of Active Job queue name ([@mrzasa][])
35
- * [#711](https://github.com/toptal/chewy/pull/711): Setup CI on CircleCI ([@mrzasa][])
36
- * [#710](https://github.com/toptal/chewy/pull/710): Fix deprecation warning for contructing new BigDecimal ([@AlexVPopov][])
23
+ ## 7.0.1 (2021-05-03)
24
+
25
+ ### Changes
26
+
27
+ * [#792](https://github.com/toptal/chewy/pull/792): Skip ES version memoization for search requests ([@rabotyaga][])
28
+ * See the Migration Guide for details
29
+
30
+ ## 7.2.0 (2021-04-19)
31
+
32
+ ### New Features
33
+
34
+ * [#778](https://github.com/toptal/chewy/pull/778): Add `ignore_blank` option to `field` method ([@Vitalina-Vakulchyk][]):
35
+ * `true` by default for the `geo_point` type
36
+ * `false` by default for other types
37
+
38
+ ### Changes
39
+
40
+ * [#783](https://github.com/toptal/chewy/pull/783): **(Breaking)** Remove `Chewy::Type`, simplify DSL ([@rabotyaga][])
41
+ * Remove the `Chewy::Type` class
42
+ * e.g. remove `CitiesIndex::City` / `CitiesIndex.city`
43
+ * `CitiesIndex::City.import! ...` becomes `CitiesIndex.import! ...`
44
+ * Simplify index DSL:
45
+ * `define_type` block -> `index_scope` clause
46
+ * it can be omitted completely, if you don't need to specify the scope or options, e.g. `name`
47
+ * Remove type names from string representations:
48
+ * in `update_index` ActiveRecord helper and RSpec matcher, e.g.
49
+ * `update_index('cities#city')` -> `update_index('cities')`
50
+ * `update_index(UsersIndex::User)` -> `update_index(UsersIndex)`
51
+ * in rake tasks (e.g. `rake chewy:update[cities#city]` -> `rake chewy:update[cities]`)
52
+ * in rake tasks output (e.g. `Imported CitiesIndex::City in 1s, stats: index 3` -> `Imported CitiesIndex in 1s, stats: index 3`)
53
+ * Use index name instead of type name in loader additional scope
54
+ * e.g. `CitiesIndex.filter(...).load(city: {scope: City.where(...)})` -> `CitiesIndex.filter(...).load(cities: {scope: City.where(...)})`
55
+ * [#692](https://github.com/toptal/chewy/issues/692): Add `.update_mapping` to Index class ([@Vitalina-Vakulchyk][]):
56
+ * Wrapped Elasticsearch gem `.put_mapping` with `.update_mapping` in Index class
57
+ * Add `rake chewy:update_mapping` task
58
+ * [#594](https://github.com/toptal/chewy/issues/594): Add `.reindex` to Index class ([@Vitalina-Vakulchyk][]):
59
+ * Wrapped Elasticsearch gem `.reindex` with `.reindex` in Index class
60
+ * Add `rake chewy:reindex` task
61
+ * [#679](https://github.com/toptal/chewy/issues/679): Wrapped `Elasticsearch::API::Indices::Actions#clear_cache` with `.clear_cache` in Index class ([@Vitalina-Vakulchyk][])
62
+ * [#495](https://github.com/toptal/chewy/issues/495): Ability to change Rails console strategy with `Chewy.console_strategy` ([@Vitalina-Vakulchyk][])
63
+ * [#778](https://github.com/toptal/chewy/pull/778): **(Breaking)** Drop support for Ruby 2.5 ([@Vitalina-Vakulchyk][])
64
+ * [#776](https://github.com/toptal/chewy/pull/776): **(Breaking)** Removal of unnecessary features and integrations ([@Vitalina-Vakulchyk][]):
65
+ * `aws-sdk-sqs` / `shoryuken`
66
+ * `mongoid`
67
+ * `sequel`
68
+ * `will_paginate`
69
+ * `resque`
70
+ * [#769](https://github.com/toptal/chewy/pull/769): **(Breaking)** Removal of deprecated methods and rake tasks ([@Vitalina-Vakulchyk][]):
71
+ * `Chewy::Index.index_params` is removed, use `Chewy::Index.specification_hash` instead
72
+ * `Chewy::Index.derivable_index_name` is removed, use `Chewy::Index.derivable_name` instead
73
+ * `Chewy::Index.default_prefix` is removed, use `Chewy::Index.prefix` instead
74
+ * `Chewy::Index.build_index_name` is removed, use `Chewy::Index.index_name` instead
75
+ * `Chewy::RakeHelper.reset_index` is removed, use `Chewy::RakeHelper.reset` instead
76
+ * `Chewy::RakeHelper.reset_all` is removed, use `Chewy::RakeHelper.reset` instead
77
+ * `Chewy::RakeHelper.update_index` is removed, use `Chewy::RakeHelper.update` instead
78
+ * `Chewy::RakeHelper.update_all` is removed, use `Chewy::RakeHelper.update` instead
79
+ * `rake chewy:apply_changes_from` is removed, use `rake chewy:journal:apply` instead
80
+ * `rake chewy:clean_journal` is removed, use `rake chewy:journal:clean` instead
81
+
82
+ ## 7.1.0 (2021-03-03)
37
83
 
38
- # Version 5.1.0 (2019-09-24)
84
+ ### Changes
39
85
 
40
- ## Breaking changes
86
+ * [#766](https://github.com/toptal/chewy/pull/766): **(Breaking)** Drop support for Elasticsearch 6.x ([@rabotyaga][])
87
+ * [#765](https://github.com/toptal/chewy/pull/765): Fix ruby 2.7 warnings in rake tasks ([@aglushkov][])
41
88
 
42
- * [#657](https://github.com/toptal/chewy/pull/657): Add support for multiple indices in request ([@pyromaniac][])
43
- * [#647](https://github.com/toptal/chewy/pull/647): Support `search_type`, `request_cache`, and `allow_partial_search_results` as query string parameters ([@mattzollinhofer][])
89
+ ### Bugs Fixed
44
90
 
45
- ## Changes
91
+ * [#722](https://github.com/toptal/chewy/issues/722): Remove alias_method_chain, use Module#prepend instead ([@dalthon][])
46
92
 
47
- * [#606](https://github.com/toptal/chewy/pull/606): Speed up imports when `bulk_size` is specified ([@yahooguntu][])
48
- * [#682](https://github.com/toptal/chewy/pull/682): Insert `RequestStrategy` middleware before `ActionDispatch::ShowExceptions` ([@dck][])
93
+ ## 7.0.0 (2021-02-22)
49
94
 
50
- # Version 5.0.0 (2018-02-13)
95
+ ### New Features
51
96
 
52
- ## Breaking changes
97
+ * [#763](https://github.com/toptal/chewy/pull/763): Added support for Elasticsearch 7 ([@rabotyaga][])
53
98
 
54
- * Try to align the gem version with the ElasticSearch version we support
55
- * `Chewy.default_field_type` is `text` now.
56
- * `Chewy::Stash` was split onto two indexes - `Chewy::Stash::Specification` and `Chewy::Stash::Journal`
57
- * Data for journal and specification is stored in binary fields base64-encoded to bypass the limits of other fields.
58
- * [#626](https://github.com/toptal/chewy/pull/626): Don't underscore suggested index name ([@dm1try][])
99
+ ### Changes
59
100
 
60
- ## Changes
101
+ * [#757](https://github.com/toptal/chewy/pull/757): **(Breaking)** Fix `Chewy::Index.index` & `Chewy::Index.aliases` to correctly report indexes and aliases ([@mpeychich][], [@dalthon][])
102
+ * [#761](https://github.com/toptal/chewy/pull/761): Avoid fetching scope data to check if it is blank ([@dalthon][])
61
103
 
62
- * [#598](https://github.com/toptal/chewy/pull/598): `pipeline` import option support ([@eManPrague][])
63
- * [#625](https://github.com/toptal/chewy/pull/625): Proper Rails check ([@nattfodd][])
64
- * [#623](https://github.com/toptal/chewy/pull/623): Bypass strategy performance improvements ([@DNNX][])
65
- * [#620](https://github.com/toptal/chewy/pull/620): Avoid index update calls for empty data ([@robertasg][])
104
+ ## 6.0.0 (2021-02-11)
105
+
106
+ ### Changes
107
+
108
+ * [#743](https://github.com/toptal/chewy/pull/743): **(Breaking)** Elasticsearch 6.x support added. See the [migration guide](migration_guide.md) & ES [breaking changes](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/breaking-changes-6.0.html). Removed legacy DSL support. Removed support for ES < 5. ([@mrzasa][], [@konalegi][], [@rabotyaga][])
109
+ * [#751](https://github.com/toptal/chewy/pull/751): Add [Multi Search API](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-multi-search.html) support. ([@mpeychich][], [@dalthon][])
110
+ * [#755](https://github.com/toptal/chewy/pull/755): `attribute_highlights` returns an array of highlights. ([@musaffa][], [@dalthon][])
111
+ * [#753](https://github.com/toptal/chewy/pull/753): Add support for direct_import parameter to skip objects reloading. ([@TikiTDO][], [@dalthon][])
112
+ * [#739](https://github.com/toptal/chewy/pull/739): Remove explicit `main` branch dependencies on `rspec-*` gems after `rspec-mocks` 3.10.2 is released. ([@rabotyaga][])
113
+
114
+ ### Bugs Fixed
115
+
116
+ * [#695](https://github.com/toptal/chewy/pull/695): Clear the scroll by id after completing `scroll_batches`. ([@socialchorus][])
117
+ * [#749](https://github.com/toptal/chewy/pull/749): Avoid importing everything when given an empty relation. ([@JF-Lalonde][], [@dalthon][])
118
+ * [#736](https://github.com/toptal/chewy/pull/736): Fix nil children when using witchcraft. ([@taylor-au][])
119
+
120
+ ## 5.2.0 (2021-01-28)
121
+
122
+ ### Changes
123
+
124
+ * [#734](https://github.com/toptal/chewy/pull/734): Add support for Ruby 3. ([@lowang][])
125
+ * [#735](https://github.com/toptal/chewy/pull/735): Correct deprecation warning for Elasticsearch 5.6 to 6: empty query for`_delete_by_query`, delete by alias, `index_already_exists_exception` renaming. ([@bhacaz][])
126
+ * [#733](https://github.com/toptal/chewy/pull/733): Update gemspec dependencies for Rails. Update CI gemfiles and matrix to tests against current LTS Rails versions. ([@bhacaz][])
127
+ * Tweak some wording and formatting; add a note about compatibility; update copyright; remove broken logo; update the CI badge. ([@bbatsov][])
128
+ * [#714](https://github.com/toptal/chewy/pull/714): Update instructions for AWS ElasticSearch. ([@olancheg][])
129
+ * [#728](https://github.com/toptal/chewy/pull/728): Fix more ruby 2.7 keyword params deprecation warnings. ([@aglushkov][])
130
+ * [#715](https://github.com/toptal/chewy/pull/715): Fixed all deprecation warnings in Ruby 2.7. ([@gseddon][])
131
+ * [#718](https://github.com/toptal/chewy/pull/718): Added Ruby 2.7 to CircleCI config. ([@mrzasa][])
132
+ * [#707](https://github.com/toptal/chewy/pull/707): Allow configuration of Active Job queue name. ([@mrzasa][])
133
+ * [#711](https://github.com/toptal/chewy/pull/711): Setup CI on CircleCI. ([@mrzasa][])
134
+ * [#710](https://github.com/toptal/chewy/pull/710): Fix deprecation warning for constructing new `BigDecimal`. ([@AlexVPopov][])
135
+
136
+ ## 5.1.0 (2019-09-24)
137
+
138
+ ### Changes
139
+
140
+ * [#657](https://github.com/toptal/chewy/pull/657): **(Breaking)** Add support for multiple indices in request. ([@pyromaniac][])
141
+ * [#647](https://github.com/toptal/chewy/pull/647): **(Breaking)** Support `search_type`, `request_cache`, and `allow_partial_search_results` as query string parameters. ([@mattzollinhofer][])
142
+ * [#606](https://github.com/toptal/chewy/pull/606): Speed up imports when `bulk_size` is specified. ([@yahooguntu][])
143
+ * [#682](https://github.com/toptal/chewy/pull/682): Insert `RequestStrategy` middleware before `ActionDispatch::ShowExceptions`. ([@dck][])
144
+
145
+ ## 5.0.0 (2018-02-13)
146
+
147
+ ### Changes
148
+
149
+ * **(Breaking)** Align the gem version with the most recent ElasticSearch version we support.
150
+ * **(Breaking)** `Chewy.default_field_type` is `text` now.
151
+ * **(Breaking)** `Chewy::Stash` was split onto two indexes - `Chewy::Stash::Specification` and `Chewy::Stash::Journal`.
152
+ * **(Breaking)** Data for journal and specification is stored in binary fields base64-encoded to bypass the limits of other fields.
153
+ * **(Breaking)** [#626](https://github.com/toptal/chewy/pull/626): Don't underscore suggested index name. ([@dm1try][])
154
+ * [#598](https://github.com/toptal/chewy/pull/598): `pipeline` import option support. ([@eManPrague][])
155
+ * [#625](https://github.com/toptal/chewy/pull/625): Proper Rails check. ([@nattfodd][])
156
+ * [#623](https://github.com/toptal/chewy/pull/623): Bypass strategy performance improvements. ([@DNNX][])
157
+ * [#620](https://github.com/toptal/chewy/pull/620): Avoid index update calls for empty data. ([@robertasg][])
66
158
  * Do not underscore suggested index name on `Chewy::Index.index_name` call.
67
159
  * It is possible now to call `root` method several times inside a single type definition, the options will be merged. Also, the block isn't required anymore.
68
- * [#565](https://github.com/toptal/chewy/pull/565): Fixed some Sequel deprecation warnings ([@arturtr][])
69
- * [#577](https://github.com/toptal/chewy/pull/577): Fixed some Sequel deprecation warnings ([@matchbookmac][])
160
+ * [#565](https://github.com/toptal/chewy/pull/565): Fixed some Sequel deprecation warnings. ([@arturtr][])
161
+ * [#577](https://github.com/toptal/chewy/pull/577): Fixed some Sequel deprecation warnings. ([@matchbookmac][])
162
+
163
+ ### Bugs Fixed
70
164
 
71
- ## Bugfixes
165
+ * [#593](https://github.com/toptal/chewy/pull/593): Fixed index settings logic error. ([@yahooguntu][])
166
+ * [#567](https://github.com/toptal/chewy/pull/567): Missed check in higlight method. ([@heartfulbird][])
72
167
 
73
- * [#593](https://github.com/toptal/chewy/pull/593): Fixed index settings logic error ([@yahooguntu][])
74
- * [#567](https://github.com/toptal/chewy/pull/567): Missed check in higlight method ([@heartfulbird][])
168
+ -----------------------------------------------------------------------------------
75
169
 
76
- # Version 0.10.1
170
+ ## 0.10.1
77
171
 
78
- ## Changes
172
+ ### Changes
79
173
 
80
174
  * [#558](https://github.com/toptal/chewy/pull/558): Improved parallel worker titles
81
175
 
82
- ## Bugfixes
176
+ ### Bugs Fixed
83
177
 
84
178
  * [#557](https://github.com/toptal/chewy/pull/557): Fixed request strategy initial debug message
85
179
  * [#556](https://github.com/toptal/chewy/pull/556): Fixed will objects paginated array initialization when pagination was not used
86
180
  * [#555](https://github.com/toptal/chewy/pull/555): Fixed fields symbol/string value
87
181
  * [#554](https://github.com/toptal/chewy/pull/554): Fixed root field value proc
88
182
 
89
- # Version 0.10.0
183
+ ## 0.10.0
90
184
 
91
- ## Breaking changes
185
+ ### Breaking changes
92
186
 
93
187
  * Changed behavior of `Chewy::Index.index_name`, it doesn't cache the values anymore.
94
188
  * Journal interfaces, related code and rake tasks were completely refactored and are not compatible with the previous version.
95
189
 
96
- ## Changes
190
+ ### Changes
97
191
 
98
192
  * [#543](https://github.com/toptal/chewy/pull/543): Less noisy strategies logging ([@Borzik][])
99
193
  * Parallel import and the corresponding rake tasks.
@@ -116,9 +210,9 @@
116
210
  * [#467](https://github.com/toptal/chewy/pull/467): Bulk indexing optimizations with new additional options ([@eproulx-petalmd][])
117
211
  * [#438](https://github.com/toptal/chewy/pull/438): Configurable sidekiq options ([@averell23][])
118
212
 
119
- # Version 0.9.0
213
+ ## 0.9.0
120
214
 
121
- ## Changes
215
+ ### Changes
122
216
 
123
217
  * [#443](https://github.com/toptal/chewy/pull/443): Add `preference` param to Query ([@menglewis][])
124
218
  * [#417](https://github.com/toptal/chewy/pull/417): Add the `track_scores` option to the query; `_score` to be computed and tracked even when there are no `_score` in sort. ([@dmitry][])
@@ -134,16 +228,16 @@
134
228
  * Witchcraft™ supports dynamically generated procs with variables from closure.
135
229
  * Added `Query#preference` for specifying shard replicas to query against. ([@menglewis][])
136
230
 
137
- ## Bugfixes
231
+ ### Bugs Fixed
138
232
 
139
233
  * [#415](https://github.com/toptal/chewy/pull/415): `.script_fields` method in the Index class ([@dmitry][])
140
234
  * [#398](https://github.com/toptal/chewy/pull/398): Fix routing_missing_exception on delete with parent missing ([@guigs][])
141
235
  * [#385](https://github.com/toptal/chewy/pull/385): Sequel custom primary keys handling fix ([@okliv][])
142
236
  * [#374](https://github.com/toptal/chewy/pull/374): Bulk import fixes ([@0x0badc0de][])
143
237
 
144
- # Version 0.8.4
238
+ ## 0.8.4
145
239
 
146
- ## Changes
240
+ ### Changes
147
241
 
148
242
  * Brand new import `:bulk_size` option, set desired ElasticSearch bulk size in bytes
149
243
  * Witchcraft™ technology
@@ -159,7 +253,7 @@
159
253
  * Accessing types with methods is deprecated. Use `MyIndex::MyType` constant reference instead of `MyIndex.my_type` method.
160
254
  * [#294](https://github.com/toptal/chewy/pull/294): Sequel adapter improvements ([@mrbrdo][])
161
255
 
162
- ## Bugfixes
256
+ ### Bugs Fixed
163
257
 
164
258
  * [#325](https://github.com/toptal/chewy/pull/325): Mongoid atomic strategy fix
165
259
  * [#324](https://github.com/toptal/chewy/pull/324): Method missing fix ([@jesjos][])
@@ -167,18 +261,18 @@
167
261
  * [#306](https://github.com/toptal/chewy/pull/306): Better errors handling in strategies ([@barthez][])
168
262
  * [#303](https://github.com/toptal/chewy/pull/303): Assets strategies silencer fix for Rails 5 API mode ([@clupprich][])
169
263
 
170
- # Version 0.8.3
264
+ ## 0.8.3
171
265
 
172
- ## Breaking changes:
266
+ ### Breaking changes:
173
267
 
174
268
  * `Chewy.atomic` and `Chewy.urgent_update=` methods was removed from the codebase, use `Chewy.strategy` block instead.
175
269
  * `delete_from_index?` hook is removed from the codebase.
176
270
 
177
- ## Changes
271
+ ### Changes
178
272
 
179
273
  * Sequel support completely reworked to use common ORM implementations + better sequel specs covarage.
180
274
 
181
- ## Bugfixes
275
+ ### Bugs Fixed
182
276
 
183
277
  * Sequel objects transactional destruction fix
184
278
  * Correct Rspec mocking framework checking ([@mainameiz][])
@@ -186,9 +280,9 @@
186
280
  * Safe unsubscribe on import ([@marshall-lee][])
187
281
  * Correct custom assets path silencer ([@davekaro][])
188
282
 
189
- # Version 0.8.2
283
+ ## 0.8.2
190
284
 
191
- ## Changes
285
+ ### Changes
192
286
 
193
287
  * ActiveJob strategy by [@mkcode][]
194
288
  * Async strategies tweak ([@AndreySavelyev][])
@@ -200,23 +294,23 @@
200
294
  * Multiple grammar fixes ([@henrebotha][])
201
295
  * Ability to pass a proc to `update_index` to define updating index dynamically ([@SeTeM][])
202
296
 
203
- ## Bugfixes
297
+ ### Bugs Fixed
204
298
 
205
299
  * Fixed transport logger and tracer configuration
206
300
 
207
- # Version 0.8.1
301
+ ## 0.8.1
208
302
 
209
- ## Bugfixes
303
+ ### Bugs Fixed
210
304
 
211
305
  * Added support of elasticsearch-ruby 1.0.10
212
306
 
213
- # Version 0.8.0
307
+ ## 0.8.0
214
308
 
215
- ## Breaking changes:
309
+ ### Breaking changes:
216
310
 
217
311
  * `:atomic` and `:urgent` strategies are using `import!` method raising exceptions
218
312
 
219
- ## Changes
313
+ ### Changes
220
314
 
221
315
  * Crutches™ technology
222
316
  * Added `.script_fields` chainable method to query ([@ka8725][])
@@ -225,14 +319,14 @@
225
319
  * `:sidekiq` async strategy (inspired by [@sharkzp][])
226
320
  * Added `Query#search_type` for `search_type` request option setup ([@marshall-lee][])
227
321
 
228
- ## Bugfixes
322
+ ### Bugs Fixed
229
323
 
230
324
  * Rails 4.2 migrations are not raising UndefinedUpdateStrategy anymore on data updates
231
325
  * Mongoid random failing specs fixes ([@marshall-lee][])
232
326
 
233
- # Version 0.7.0
327
+ ## 0.7.0
234
328
 
235
- ## Breaking changes:
329
+ ### Breaking changes:
236
330
 
237
331
  * `Chewy.use_after_commit_callbacks = false` returns previous RDBMS behavior in tests
238
332
  * ActiveRecord import is now called after_commit instead of after_save and after_destroy
@@ -265,7 +359,7 @@
265
359
  end
266
360
  ```
267
361
 
268
- ## Changes
362
+ ### Changes
269
363
 
270
364
  * Multiple enhancements by [@DNNX][]
271
365
  * Added `script_fields` to search criteria ([@ka8725][])
@@ -306,61 +400,61 @@
306
400
  ```
307
401
  * Implemented basic named scopes
308
402
 
309
- ## Bugfixes
403
+ ### Bugs Fixed
310
404
 
311
405
  * `script_score` allow options ([@joeljunstrom][])
312
406
  * Chewy indexes eaged loading fixes ([@leemhenson][])
313
407
  * `Chewy::Index.import nil` imports nothing instead of initial data
314
408
 
315
- # Version 0.6.2
409
+ ## 0.6.2
316
410
 
317
- ## Changes
411
+ ### Changes
318
412
 
319
413
  * document root id custom value option ([@baronworks][])
320
414
 
321
- ## Bugfixes
415
+ ### Bugs Fixed
322
416
 
323
417
  * Removed decay function defaults ([@Linuus][])
324
418
  * Correct config file handling in case of empty file
325
419
 
326
- # Version 0.6.1
420
+ ## 0.6.1
327
421
 
328
- ## Changes
422
+ ### Changes
329
423
 
330
424
  * `min_score` query option support ([@jshirley][])
331
425
  * `Chewy::Query#find` method for finding documents by id
332
426
 
333
- # Version 0.6.0
427
+ ## 0.6.0
334
428
 
335
- ## Changes
429
+ ### Changes
336
430
 
337
431
  * Mongoid support YaY! ([@fabiotomio][], [@leemhenson][])
338
432
  * `urgent: true` option for `update_index` is deprecated and will be removed soon, use `Chewy.atomic` instead
339
433
  * `timeout` and `timed_out` support ([@MarkMurphy][])
340
434
  * will_paginate support ([@josecoelho][])
341
435
 
342
- ## Bugfixes
436
+ ### Bugs Fixed
343
437
 
344
438
  * All the query chainable methods delegated to indexes and types (partially [@Linuus][])
345
439
 
346
- # Version 0.5.2
440
+ ## 0.5.2
347
441
 
348
- ## Breaking changes:
442
+ ### Breaking changes:
349
443
 
350
444
  * `Chewy::Type::Base` removed in favour of using `Chewy::Type` as a base class for all types
351
445
 
352
- ## Changes
446
+ ### Changes
353
447
 
354
448
  * `Chewy.massacre` aliased to `Chewy.delete_all` method deletes all the indexes with current prefix
355
449
 
356
- ## Bugfixes:
450
+ ### Bugs Fixed:
357
451
 
358
452
  * Advanced type classes resolving ([@inbeom][])
359
453
  * `import` ignores nil
360
454
 
361
- # Version 0.5.1
455
+ ## 0.5.1
362
456
 
363
- ## Changes:
457
+ ### Changes:
364
458
 
365
459
  * `chewy.yml` Rails generator ([@jirikolarik][])
366
460
  * Parent-child mappings feature support ([@inbeom][])
@@ -370,20 +464,20 @@
370
464
  * Rspec 3 `update_index` matcher support ([@jimmybaker][])
371
465
  * Implemented function scoring ([@averell23][])
372
466
 
373
- ## Bugfixes:
467
+ ### Bugs Fixed:
374
468
 
375
469
  * Indexed eager-loading fix ([@leemhenson][])
376
470
  * Field type deriving nested type support fix ([@rschellhorn][])
377
471
 
378
- # Version 0.5.0
472
+ ## 0.5.0
379
473
 
380
- ## Breaking changes:
474
+ ### Breaking changes:
381
475
 
382
476
  * 404 exception (IndexMissingException) while query is swallowed and treated like an empty result set.
383
477
  * `load` and `preload` for queries became lazy. Might be partially incompatible.
384
478
  * Changed mapping behavior: multi-fields are defined in conformity with ElasticSearch documentation (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_multi_fields.html#_multi_fields)
385
479
 
386
- ## Changes:
480
+ ### Changes:
387
481
 
388
482
  * `suggest` query options support ([@rschellhorn][]).
389
483
  * Added hash data support. How it is possible to pass hashes to import.
@@ -397,7 +491,7 @@
397
491
  * `highlight` and `rescore` query options support.
398
492
  * config/chewy.yml ERB support.
399
493
 
400
- ## Bugfixes:
494
+ ### Bugs Fixed:
401
495
 
402
496
  * Fixed `missing` and `exists` filters DSL constructors.
403
497
  * Reworked index data composing.
@@ -405,7 +499,7 @@
405
499
  * Correct waiting for status. After index creation, bulk import, and deletion.
406
500
  * [#23](https://github.com/toptal/chewy/pull/23): Fix "wrong constant name" with namespace models
407
501
 
408
- # Version 0.4.0
502
+ ## 0.4.0
409
503
 
410
504
  * Changed `update_index` matcher behavior. Now it compare array attributes position-independently.
411
505
  * Search aggregations API support ([@arion][]).
@@ -416,18 +510,18 @@
416
510
  * `import` now creates index before performing.
417
511
  * `Chewy.configuration[:wait_for_status]` option. Can be set to `red`, `yellow` or `green`. If set - chewy will wait for cluster status before creating, deleting index and import. Useful for specs.
418
512
 
419
- # Version 0.3.0
513
+ ## 0.3.0
420
514
 
421
515
  * Added `Chewy.configuration[:index]` config to setup common indexes options.
422
516
  * `Chewy.client_options` replaced with `Chewy.configuration`
423
517
  * Using source filtering instead of fields filter (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-source-filtering.html).
424
518
 
425
- # Version 0.2.3
519
+ ## 0.2.3
426
520
 
427
521
  * `.import!` indexes method, raises import errors.
428
522
  * `.import!` types method, raises import errors. Useful for specs.
429
523
 
430
- # Version 0.2.2
524
+ ## 0.2.2
431
525
 
432
526
  * Support for `none` scope ([@undr][]).
433
527
  * Auto-resolved analyzers and analyzers repository ([@webgago][]):
@@ -443,7 +537,7 @@
443
537
  ```
444
538
  `title_analyzer` here will be automatically resolved and passed to index mapping
445
539
 
446
- # Version 0.2.0
540
+ ## 0.2.0
447
541
 
448
542
  * Reworked import error handling. Now all the import errors from ElasticSearch are handled properly, also import method returns true of false depending on the import process success.
449
543
  * `Chewy::Index.import` now takes types hash as argument within options hash:
@@ -461,7 +555,7 @@
461
555
  `CitiesIndex.all.load(scope: {city: -> { include(:country) }})`
462
556
  `CitiesIndex.all.load(scope: ->{ include(:country) })`
463
557
 
464
- # Version 0.1.0
558
+ ## 0.1.0
465
559
 
466
560
  * Added filters simplified DSL. See [filters.rb](lib/chewy/query/filters.rb) for more details.
467
561
  * Queries and filters join system reworked. See [query.rb](lib/chewy/query.rb) for more details.
@@ -498,7 +592,7 @@
498
592
  * Implemented isolated adapters to simplify adding new ORMs
499
593
  * Query DLS chainable methods delegated to index class (no longer need to call MyIndex.search.query, just MyIndex.query)
500
594
 
501
- # Version 0.0.1
595
+ ## 0.0.1
502
596
 
503
597
  * Query DSL
504
598
  * Basic index handling
@@ -584,5 +678,6 @@
584
678
  [@taylor-au]: https://github.com/taylor-au
585
679
  [@TikiTDO]: https://github.com/TikiTDO
586
680
  [@undr]: https://github.com/undr
681
+ [@Vitalina-Vakulchyk]: https://github.com/Vitalina-Vakulchyk
587
682
  [@webgago]: https://github.com/webgago
588
683
  [@yahooguntu]: https://github.com/yahooguntu