chewy 7.0.0 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +0 -26
  3. data/CHANGELOG.md +11 -0
  4. data/README.md +27 -38
  5. data/lib/chewy/fields/root.rb +1 -2
  6. data/lib/chewy/index.rb +4 -15
  7. data/lib/chewy/index/actions.rb +1 -3
  8. data/lib/chewy/index/aliases.rb +1 -3
  9. data/lib/chewy/railtie.rb +2 -18
  10. data/lib/chewy/search/loader.rb +2 -12
  11. data/lib/chewy/search/parameters/indices.rb +12 -57
  12. data/lib/chewy/search/request.rb +20 -40
  13. data/lib/chewy/search/response.rb +1 -1
  14. data/lib/chewy/search/scrolling.rb +1 -1
  15. data/lib/chewy/stash.rb +2 -5
  16. data/lib/chewy/type/import/bulk_request.rb +1 -2
  17. data/lib/chewy/type/import/journal_builder.rb +1 -2
  18. data/lib/chewy/type/import/routine.rb +2 -2
  19. data/lib/chewy/type/mapping.rb +1 -1
  20. data/lib/chewy/type/syncer.rb +1 -4
  21. data/lib/chewy/version.rb +1 -1
  22. data/lib/tasks/chewy.rake +10 -10
  23. data/migration_guide.md +6 -3
  24. data/spec/chewy/fields/base_spec.rb +4 -4
  25. data/spec/chewy/fields/root_spec.rb +4 -4
  26. data/spec/chewy/index/specification_spec.rb +13 -13
  27. data/spec/chewy/index_spec.rb +1 -3
  28. data/spec/chewy/journal_spec.rb +4 -4
  29. data/spec/chewy/runtime_spec.rb +1 -1
  30. data/spec/chewy/search/loader_spec.rb +0 -16
  31. data/spec/chewy/search/parameters/indices_spec.rb +25 -110
  32. data/spec/chewy/search/request_spec.rb +11 -28
  33. data/spec/chewy/search/scrolling_spec.rb +2 -8
  34. data/spec/chewy/search_spec.rb +2 -2
  35. data/spec/chewy/type/import/bulk_request_spec.rb +0 -6
  36. data/spec/chewy/type/import/journal_builder_spec.rb +0 -4
  37. data/spec/chewy/type/import_spec.rb +2 -2
  38. data/spec/chewy/type/mapping_spec.rb +5 -37
  39. metadata +2 -5
  40. data/lib/chewy/search/parameters/types.rb +0 -20
  41. data/spec/chewy/search/parameters/types_spec.rb +0 -5
@@ -29,7 +29,6 @@ describe Chewy::Type::Import::JournalBuilder, :orm do
29
29
  expect(subject.bulk_body).to eq([{
30
30
  index: {
31
31
  _index: 'chewy_journal',
32
- _type: 'journal',
33
32
  data: {
34
33
  'index_name' => 'namespace/cities',
35
34
  'type_name' => 'city',
@@ -48,7 +47,6 @@ describe Chewy::Type::Import::JournalBuilder, :orm do
48
47
  expect(subject.bulk_body).to eq([{
49
48
  index: {
50
49
  _index: 'chewy_journal',
51
- _type: 'journal',
52
50
  data: {
53
51
  'index_name' => 'namespace/cities',
54
52
  'type_name' => 'city',
@@ -69,7 +67,6 @@ describe Chewy::Type::Import::JournalBuilder, :orm do
69
67
  expect(subject.bulk_body).to eq([{
70
68
  index: {
71
69
  _index: 'chewy_journal',
72
- _type: 'journal',
73
70
  data: {
74
71
  'index_name' => 'namespace/countries',
75
72
  'type_name' => 'country',
@@ -81,7 +78,6 @@ describe Chewy::Type::Import::JournalBuilder, :orm do
81
78
  }, {
82
79
  index: {
83
80
  _index: 'chewy_journal',
84
- _type: 'journal',
85
81
  data: {
86
82
  'index_name' => 'namespace/countries',
87
83
  'type_name' => 'country',
@@ -366,8 +366,8 @@ describe Chewy::Type::Import do
366
366
 
367
367
  # Full match doesn't work here.
368
368
  expect(payload[:errors][:update].keys).to match([
369
- hash_including('type' => 'document_missing_exception', 'reason' => '[city][1]: document missing'),
370
- hash_including('type' => 'document_missing_exception', 'reason' => '[city][3]: document missing')
369
+ hash_including('type' => 'document_missing_exception', 'reason' => '[_doc][1]: document missing'),
370
+ hash_including('type' => 'document_missing_exception', 'reason' => '[_doc][3]: document missing')
371
371
  ])
372
372
  expect(payload[:errors][:update].values).to eq([['1'], ['3']])
373
373
  expect(imported_cities).to match_array([
@@ -59,7 +59,7 @@ describe Chewy::Type::Mapping do
59
59
  Chewy.default_root_options = previous_options
60
60
  end
61
61
 
62
- specify { expect(product.mappings_hash[:product]).to include(_all: {enabled: false}) }
62
+ specify { expect(product.mappings_hash).to include(_all: {enabled: false}) }
63
63
  end
64
64
  end
65
65
 
@@ -90,12 +90,11 @@ describe Chewy::Type::Mapping do
90
90
  before do
91
91
  stub_index(:products) do
92
92
  define_type :product do
93
- root _parent: 'project', other_option: 'nothing' do
93
+ root other_option: 'nothing' do
94
94
  field :name do
95
95
  field :last_name # will be redefined in the following root flock
96
96
  end
97
97
  end
98
- root _parent: 'something_else'
99
98
  root other_option: 'option_value' do
100
99
  field :identifier
101
100
  field :name, type: 'integer'
@@ -105,47 +104,16 @@ describe Chewy::Type::Mapping do
105
104
  end
106
105
 
107
106
  specify do
108
- expect(product.mappings_hash).to eq(product: {
107
+ expect(product.mappings_hash).to eq(
109
108
  properties: {
110
109
  name: {type: 'integer'},
111
110
  identifier: {type: Chewy.default_field_type}
112
111
  },
113
- other_option: 'option_value',
114
- _parent: {type: 'something_else'}
115
- })
112
+ other_option: 'option_value'
113
+ )
116
114
  end
117
115
  end
118
116
  end
119
-
120
- context 'parent-child relationship' do
121
- context do
122
- before do
123
- stub_index(:products) do
124
- define_type :product do
125
- root _parent: 'project', parent_id: -> { project_id } do
126
- field :name, 'surname'
127
- end
128
- end
129
- end
130
- end
131
-
132
- specify { expect(product.mappings_hash[:product][:_parent]).to eq(type: 'project') }
133
- end
134
-
135
- context do
136
- before do
137
- stub_index(:products) do
138
- define_type :product do
139
- root parent: {'type' => 'project'}, parent_id: -> { project_id } do
140
- field :name, 'surname'
141
- end
142
- end
143
- end
144
- end
145
-
146
- specify { expect(product.mappings_hash[:product][:_parent]).to eq('type' => 'project') }
147
- end
148
- end
149
117
  end
150
118
 
151
119
  describe '.supports_outdated_sync?' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chewy
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toptal, LLC
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-02-22 00:00:00.000000000 Z
12
+ date: 2021-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: appraisal
@@ -335,7 +335,6 @@ files:
335
335
  - lib/chewy/search/parameters/terminate_after.rb
336
336
  - lib/chewy/search/parameters/timeout.rb
337
337
  - lib/chewy/search/parameters/track_scores.rb
338
- - lib/chewy/search/parameters/types.rb
339
338
  - lib/chewy/search/parameters/version.rb
340
339
  - lib/chewy/search/query_proxy.rb
341
340
  - lib/chewy/search/request.rb
@@ -434,7 +433,6 @@ files:
434
433
  - spec/chewy/search/parameters/terminate_after_spec.rb
435
434
  - spec/chewy/search/parameters/timeout_spec.rb
436
435
  - spec/chewy/search/parameters/track_scores_spec.rb
437
- - spec/chewy/search/parameters/types_spec.rb
438
436
  - spec/chewy/search/parameters/version_spec.rb
439
437
  - spec/chewy/search/parameters_spec.rb
440
438
  - spec/chewy/search/query_proxy_spec.rb
@@ -553,7 +551,6 @@ test_files:
553
551
  - spec/chewy/search/parameters/terminate_after_spec.rb
554
552
  - spec/chewy/search/parameters/timeout_spec.rb
555
553
  - spec/chewy/search/parameters/track_scores_spec.rb
556
- - spec/chewy/search/parameters/types_spec.rb
557
554
  - spec/chewy/search/parameters/version_spec.rb
558
555
  - spec/chewy/search/parameters_spec.rb
559
556
  - spec/chewy/search/query_proxy_spec.rb
@@ -1,20 +0,0 @@
1
- require 'chewy/search/parameters/storage'
2
-
3
- module Chewy
4
- module Search
5
- class Parameters
6
- # A standard string array storage with one exception: rendering is empty.
7
- #
8
- # @see Chewy::Search::Parameters::StringArrayStorage
9
- class Types < Storage
10
- include StringArrayStorage
11
-
12
- # Doesn't render anything, has specialized rendering logic in
13
- # {Chewy::Search::Request}
14
- #
15
- # @return [nil]
16
- def render; end
17
- end
18
- end
19
- end
20
- end
@@ -1,5 +0,0 @@
1
- require 'chewy/search/parameters/string_array_storage_examples'
2
-
3
- describe Chewy::Search::Parameters::Types do
4
- it_behaves_like :string_array_storage, nil
5
- end