elasticsearch-model 0.1.9 → 7.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -2
  3. data/Gemfile +22 -0
  4. data/LICENSE.txt +199 -10
  5. data/README.md +96 -43
  6. data/Rakefile +49 -35
  7. data/elasticsearch-model.gemspec +53 -41
  8. data/examples/activerecord_article.rb +18 -1
  9. data/examples/activerecord_associations.rb +86 -17
  10. data/examples/activerecord_custom_analyzer.rb +152 -0
  11. data/examples/activerecord_mapping_completion.rb +33 -16
  12. data/examples/activerecord_mapping_edge_ngram.rb +118 -0
  13. data/examples/couchbase_article.rb +17 -0
  14. data/examples/datamapper_article.rb +28 -1
  15. data/examples/mongoid_article.rb +17 -0
  16. data/examples/ohm_article.rb +17 -0
  17. data/examples/riak_article.rb +17 -0
  18. data/gemfiles/3.0.gemfile +23 -1
  19. data/gemfiles/4.0.gemfile +25 -1
  20. data/gemfiles/5.0.gemfile +35 -0
  21. data/gemfiles/6.0.gemfile +36 -0
  22. data/lib/elasticsearch/model/adapter.rb +17 -0
  23. data/lib/elasticsearch/model/adapters/active_record.rb +31 -27
  24. data/lib/elasticsearch/model/adapters/default.rb +17 -0
  25. data/lib/elasticsearch/model/adapters/mongoid.rb +27 -3
  26. data/lib/elasticsearch/model/adapters/multiple.rb +29 -4
  27. data/lib/elasticsearch/model/callbacks.rb +17 -0
  28. data/lib/elasticsearch/model/client.rb +17 -0
  29. data/lib/elasticsearch/model/ext/active_record.rb +17 -0
  30. data/lib/elasticsearch/model/hash_wrapper.rb +32 -0
  31. data/lib/elasticsearch/model/importing.rb +61 -17
  32. data/lib/elasticsearch/model/indexing.rb +87 -49
  33. data/lib/elasticsearch/model/multimodel.rb +17 -0
  34. data/lib/elasticsearch/model/naming.rb +33 -2
  35. data/lib/elasticsearch/model/proxy.rb +61 -18
  36. data/lib/elasticsearch/model/response/aggregations.rb +55 -0
  37. data/lib/elasticsearch/model/response/base.rb +25 -3
  38. data/lib/elasticsearch/model/response/pagination/kaminari.rb +126 -0
  39. data/lib/elasticsearch/model/response/pagination/will_paginate.rb +112 -0
  40. data/lib/elasticsearch/model/response/pagination.rb +19 -192
  41. data/lib/elasticsearch/model/response/records.rb +17 -1
  42. data/lib/elasticsearch/model/response/result.rb +19 -2
  43. data/lib/elasticsearch/model/response/results.rb +17 -0
  44. data/lib/elasticsearch/model/response/suggestions.rb +20 -1
  45. data/lib/elasticsearch/model/response.rb +28 -10
  46. data/lib/elasticsearch/model/searching.rb +17 -0
  47. data/lib/elasticsearch/model/serializing.rb +17 -0
  48. data/lib/elasticsearch/model/version.rb +18 -1
  49. data/lib/elasticsearch/model.rb +36 -39
  50. data/spec/elasticsearch/model/adapter_spec.rb +136 -0
  51. data/spec/elasticsearch/model/adapters/active_record/associations_spec.rb +351 -0
  52. data/spec/elasticsearch/model/adapters/active_record/basic_spec.rb +395 -0
  53. data/spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb +35 -0
  54. data/spec/elasticsearch/model/adapters/active_record/import_spec.rb +193 -0
  55. data/spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb +127 -0
  56. data/spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb +55 -0
  57. data/spec/elasticsearch/model/adapters/active_record/pagination_spec.rb +332 -0
  58. data/spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb +92 -0
  59. data/spec/elasticsearch/model/adapters/active_record/serialization_spec.rb +78 -0
  60. data/spec/elasticsearch/model/adapters/active_record_spec.rb +224 -0
  61. data/spec/elasticsearch/model/adapters/default_spec.rb +58 -0
  62. data/spec/elasticsearch/model/adapters/mongoid/basic_spec.rb +284 -0
  63. data/spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb +83 -0
  64. data/spec/elasticsearch/model/adapters/mongoid_spec.rb +252 -0
  65. data/spec/elasticsearch/model/adapters/multiple_spec.rb +142 -0
  66. data/spec/elasticsearch/model/callbacks_spec.rb +50 -0
  67. data/spec/elasticsearch/model/client_spec.rb +83 -0
  68. data/spec/elasticsearch/model/hash_wrapper_spec.rb +29 -0
  69. data/spec/elasticsearch/model/importing_spec.rb +243 -0
  70. data/spec/elasticsearch/model/indexing_spec.rb +1014 -0
  71. data/spec/elasticsearch/model/module_spec.rb +94 -0
  72. data/spec/elasticsearch/model/multimodel_spec.rb +72 -0
  73. data/spec/elasticsearch/model/naming_spec.rb +203 -0
  74. data/spec/elasticsearch/model/proxy_spec.rb +124 -0
  75. data/spec/elasticsearch/model/response/aggregations_spec.rb +83 -0
  76. data/spec/elasticsearch/model/response/base_spec.rb +107 -0
  77. data/spec/elasticsearch/model/response/pagination/kaminari_spec.rb +472 -0
  78. data/spec/elasticsearch/model/response/pagination/will_paginate_spec.rb +279 -0
  79. data/spec/elasticsearch/model/response/records_spec.rb +135 -0
  80. data/spec/elasticsearch/model/response/response_spec.rb +148 -0
  81. data/spec/elasticsearch/model/response/result_spec.rb +139 -0
  82. data/spec/elasticsearch/model/response/results_spec.rb +73 -0
  83. data/spec/elasticsearch/model/searching_search_request_spec.rb +129 -0
  84. data/spec/elasticsearch/model/searching_spec.rb +66 -0
  85. data/spec/elasticsearch/model/serializing_spec.rb +39 -0
  86. data/spec/spec_helper.rb +193 -0
  87. data/spec/support/app/answer.rb +50 -0
  88. data/spec/support/app/article.rb +39 -0
  89. data/spec/support/app/article_for_pagination.rb +29 -0
  90. data/spec/support/app/article_no_type.rb +37 -0
  91. data/spec/support/app/article_with_custom_serialization.rb +30 -0
  92. data/spec/support/app/article_with_dynamic_index_name.rb +32 -0
  93. data/spec/support/app/author.rb +26 -0
  94. data/spec/support/app/authorship.rb +21 -0
  95. data/spec/support/app/category.rb +20 -0
  96. data/spec/support/app/comment.rb +20 -0
  97. data/spec/support/app/episode.rb +28 -0
  98. data/spec/support/app/image.rb +36 -0
  99. data/spec/support/app/import_article.rb +29 -0
  100. data/spec/support/app/mongoid_article.rb +38 -0
  101. data/spec/support/app/namespaced_book.rb +27 -0
  102. data/spec/support/app/parent_and_child_searchable.rb +41 -0
  103. data/spec/support/app/post.rb +31 -0
  104. data/spec/support/app/question.rb +44 -0
  105. data/spec/support/app/searchable.rb +65 -0
  106. data/spec/support/app/series.rb +28 -0
  107. data/spec/support/app.rb +46 -0
  108. data/spec/support/model.json +1 -0
  109. data/{test → spec}/support/model.yml +0 -0
  110. metadata +175 -121
  111. data/test/integration/active_record_associations_parent_child.rb +0 -139
  112. data/test/integration/active_record_associations_test.rb +0 -326
  113. data/test/integration/active_record_basic_test.rb +0 -234
  114. data/test/integration/active_record_custom_serialization_test.rb +0 -62
  115. data/test/integration/active_record_import_test.rb +0 -109
  116. data/test/integration/active_record_namespaced_model_test.rb +0 -49
  117. data/test/integration/active_record_pagination_test.rb +0 -145
  118. data/test/integration/dynamic_index_name_test.rb +0 -47
  119. data/test/integration/mongoid_basic_test.rb +0 -177
  120. data/test/integration/multiple_models_test.rb +0 -172
  121. data/test/support/model.json +0 -1
  122. data/test/test_helper.rb +0 -93
  123. data/test/unit/adapter_active_record_test.rb +0 -157
  124. data/test/unit/adapter_default_test.rb +0 -41
  125. data/test/unit/adapter_mongoid_test.rb +0 -104
  126. data/test/unit/adapter_multiple_test.rb +0 -106
  127. data/test/unit/adapter_test.rb +0 -69
  128. data/test/unit/callbacks_test.rb +0 -31
  129. data/test/unit/client_test.rb +0 -27
  130. data/test/unit/importing_test.rb +0 -203
  131. data/test/unit/indexing_test.rb +0 -650
  132. data/test/unit/module_test.rb +0 -57
  133. data/test/unit/multimodel_test.rb +0 -38
  134. data/test/unit/naming_test.rb +0 -103
  135. data/test/unit/proxy_test.rb +0 -100
  136. data/test/unit/response_base_test.rb +0 -40
  137. data/test/unit/response_pagination_kaminari_test.rb +0 -433
  138. data/test/unit/response_pagination_will_paginate_test.rb +0 -398
  139. data/test/unit/response_records_test.rb +0 -91
  140. data/test/unit/response_result_test.rb +0 -90
  141. data/test/unit/response_results_test.rb +0 -31
  142. data/test/unit/response_test.rb +0 -104
  143. data/test/unit/searching_search_request_test.rb +0 -78
  144. data/test/unit/searching_test.rb +0 -41
  145. data/test/unit/serializing_test.rb +0 -17
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 7.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karel Minarik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-05 00:00:00.000000000 Z
11
+ date: 2020-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: elasticsearch
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.4'
19
+ version: '3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.4'
26
+ version: '3'
27
27
  - !ruby/object:Gem::Dependency
28
- name: activesupport
28
+ name: elasticsearch
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">"
32
32
  - !ruby/object:Gem::Version
33
- version: '3'
33
+ version: '1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">"
39
39
  - !ruby/object:Gem::Version
40
- version: '3'
40
+ version: '1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hashie
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,35 +53,35 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: activemodel
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.3'
61
+ version: '3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.3'
68
+ version: '3'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
70
+ name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "<"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '11.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "<"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '11.0'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: elasticsearch-extensions
84
+ name: cane
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: sqlite3
98
+ name: elasticsearch-extensions
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,21 +109,21 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: activemodel
112
+ name: kaminari
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '3.0'
117
+ version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '3.0'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: oj
126
+ name: minitest
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: kaminari
140
+ name: mocha
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: will_paginate
154
+ name: pry
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -165,21 +165,21 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: minitest
168
+ name: rake
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '4.2'
173
+ version: '12'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '4.2'
180
+ version: '12'
181
181
  - !ruby/object:Gem::Dependency
182
- name: shoulda-context
182
+ name: require-prof
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ">="
@@ -193,7 +193,7 @@ dependencies:
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
- name: mocha
196
+ name: shoulda-context
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - ">="
@@ -207,7 +207,7 @@ dependencies:
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
- name: turn
210
+ name: simplecov
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - ">="
@@ -221,7 +221,7 @@ dependencies:
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  - !ruby/object:Gem::Dependency
224
- name: yard
224
+ name: test-unit
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - ">="
@@ -235,7 +235,7 @@ dependencies:
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
237
  - !ruby/object:Gem::Dependency
238
- name: ruby-prof
238
+ name: turn
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
241
  - - ">="
@@ -249,7 +249,7 @@ dependencies:
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
251
  - !ruby/object:Gem::Dependency
252
- name: pry
252
+ name: will_paginate
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
255
  - - ">="
@@ -263,21 +263,21 @@ dependencies:
263
263
  - !ruby/object:Gem::Version
264
264
  version: '0'
265
265
  - !ruby/object:Gem::Dependency
266
- name: ci_reporter
266
+ name: yard
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - "~>"
269
+ - - ">="
270
270
  - !ruby/object:Gem::Version
271
- version: '1.9'
271
+ version: '0'
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
- - - "~>"
276
+ - - ">="
277
277
  - !ruby/object:Gem::Version
278
- version: '1.9'
278
+ version: '0'
279
279
  - !ruby/object:Gem::Dependency
280
- name: simplecov
280
+ name: oj
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
283
  - - ">="
@@ -291,7 +291,7 @@ dependencies:
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0'
293
293
  - !ruby/object:Gem::Dependency
294
- name: cane
294
+ name: ruby-prof
295
295
  requirement: !ruby/object:Gem::Requirement
296
296
  requirements:
297
297
  - - ">="
@@ -305,7 +305,7 @@ dependencies:
305
305
  - !ruby/object:Gem::Version
306
306
  version: '0'
307
307
  - !ruby/object:Gem::Dependency
308
- name: require-prof
308
+ name: sqlite3
309
309
  requirement: !ruby/object:Gem::Requirement
310
310
  requirements:
311
311
  - - ">="
@@ -336,7 +336,9 @@ files:
336
336
  - elasticsearch-model.gemspec
337
337
  - examples/activerecord_article.rb
338
338
  - examples/activerecord_associations.rb
339
+ - examples/activerecord_custom_analyzer.rb
339
340
  - examples/activerecord_mapping_completion.rb
341
+ - examples/activerecord_mapping_edge_ngram.rb
340
342
  - examples/couchbase_article.rb
341
343
  - examples/datamapper_article.rb
342
344
  - examples/mongoid_article.rb
@@ -344,6 +346,8 @@ files:
344
346
  - examples/riak_article.rb
345
347
  - gemfiles/3.0.gemfile
346
348
  - gemfiles/4.0.gemfile
349
+ - gemfiles/5.0.gemfile
350
+ - gemfiles/6.0.gemfile
347
351
  - lib/elasticsearch/model.rb
348
352
  - lib/elasticsearch/model/adapter.rb
349
353
  - lib/elasticsearch/model/adapters/active_record.rb
@@ -353,14 +357,18 @@ files:
353
357
  - lib/elasticsearch/model/callbacks.rb
354
358
  - lib/elasticsearch/model/client.rb
355
359
  - lib/elasticsearch/model/ext/active_record.rb
360
+ - lib/elasticsearch/model/hash_wrapper.rb
356
361
  - lib/elasticsearch/model/importing.rb
357
362
  - lib/elasticsearch/model/indexing.rb
358
363
  - lib/elasticsearch/model/multimodel.rb
359
364
  - lib/elasticsearch/model/naming.rb
360
365
  - lib/elasticsearch/model/proxy.rb
361
366
  - lib/elasticsearch/model/response.rb
367
+ - lib/elasticsearch/model/response/aggregations.rb
362
368
  - lib/elasticsearch/model/response/base.rb
363
369
  - lib/elasticsearch/model/response/pagination.rb
370
+ - lib/elasticsearch/model/response/pagination/kaminari.rb
371
+ - lib/elasticsearch/model/response/pagination/will_paginate.rb
364
372
  - lib/elasticsearch/model/response/records.rb
365
373
  - lib/elasticsearch/model/response/result.rb
366
374
  - lib/elasticsearch/model/response/results.rb
@@ -368,42 +376,66 @@ files:
368
376
  - lib/elasticsearch/model/searching.rb
369
377
  - lib/elasticsearch/model/serializing.rb
370
378
  - lib/elasticsearch/model/version.rb
371
- - test/integration/active_record_associations_parent_child.rb
372
- - test/integration/active_record_associations_test.rb
373
- - test/integration/active_record_basic_test.rb
374
- - test/integration/active_record_custom_serialization_test.rb
375
- - test/integration/active_record_import_test.rb
376
- - test/integration/active_record_namespaced_model_test.rb
377
- - test/integration/active_record_pagination_test.rb
378
- - test/integration/dynamic_index_name_test.rb
379
- - test/integration/mongoid_basic_test.rb
380
- - test/integration/multiple_models_test.rb
381
- - test/support/model.json
382
- - test/support/model.yml
383
- - test/test_helper.rb
384
- - test/unit/adapter_active_record_test.rb
385
- - test/unit/adapter_default_test.rb
386
- - test/unit/adapter_mongoid_test.rb
387
- - test/unit/adapter_multiple_test.rb
388
- - test/unit/adapter_test.rb
389
- - test/unit/callbacks_test.rb
390
- - test/unit/client_test.rb
391
- - test/unit/importing_test.rb
392
- - test/unit/indexing_test.rb
393
- - test/unit/module_test.rb
394
- - test/unit/multimodel_test.rb
395
- - test/unit/naming_test.rb
396
- - test/unit/proxy_test.rb
397
- - test/unit/response_base_test.rb
398
- - test/unit/response_pagination_kaminari_test.rb
399
- - test/unit/response_pagination_will_paginate_test.rb
400
- - test/unit/response_records_test.rb
401
- - test/unit/response_result_test.rb
402
- - test/unit/response_results_test.rb
403
- - test/unit/response_test.rb
404
- - test/unit/searching_search_request_test.rb
405
- - test/unit/searching_test.rb
406
- - test/unit/serializing_test.rb
379
+ - spec/elasticsearch/model/adapter_spec.rb
380
+ - spec/elasticsearch/model/adapters/active_record/associations_spec.rb
381
+ - spec/elasticsearch/model/adapters/active_record/basic_spec.rb
382
+ - spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb
383
+ - spec/elasticsearch/model/adapters/active_record/import_spec.rb
384
+ - spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb
385
+ - spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb
386
+ - spec/elasticsearch/model/adapters/active_record/pagination_spec.rb
387
+ - spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb
388
+ - spec/elasticsearch/model/adapters/active_record/serialization_spec.rb
389
+ - spec/elasticsearch/model/adapters/active_record_spec.rb
390
+ - spec/elasticsearch/model/adapters/default_spec.rb
391
+ - spec/elasticsearch/model/adapters/mongoid/basic_spec.rb
392
+ - spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb
393
+ - spec/elasticsearch/model/adapters/mongoid_spec.rb
394
+ - spec/elasticsearch/model/adapters/multiple_spec.rb
395
+ - spec/elasticsearch/model/callbacks_spec.rb
396
+ - spec/elasticsearch/model/client_spec.rb
397
+ - spec/elasticsearch/model/hash_wrapper_spec.rb
398
+ - spec/elasticsearch/model/importing_spec.rb
399
+ - spec/elasticsearch/model/indexing_spec.rb
400
+ - spec/elasticsearch/model/module_spec.rb
401
+ - spec/elasticsearch/model/multimodel_spec.rb
402
+ - spec/elasticsearch/model/naming_spec.rb
403
+ - spec/elasticsearch/model/proxy_spec.rb
404
+ - spec/elasticsearch/model/response/aggregations_spec.rb
405
+ - spec/elasticsearch/model/response/base_spec.rb
406
+ - spec/elasticsearch/model/response/pagination/kaminari_spec.rb
407
+ - spec/elasticsearch/model/response/pagination/will_paginate_spec.rb
408
+ - spec/elasticsearch/model/response/records_spec.rb
409
+ - spec/elasticsearch/model/response/response_spec.rb
410
+ - spec/elasticsearch/model/response/result_spec.rb
411
+ - spec/elasticsearch/model/response/results_spec.rb
412
+ - spec/elasticsearch/model/searching_search_request_spec.rb
413
+ - spec/elasticsearch/model/searching_spec.rb
414
+ - spec/elasticsearch/model/serializing_spec.rb
415
+ - spec/spec_helper.rb
416
+ - spec/support/app.rb
417
+ - spec/support/app/answer.rb
418
+ - spec/support/app/article.rb
419
+ - spec/support/app/article_for_pagination.rb
420
+ - spec/support/app/article_no_type.rb
421
+ - spec/support/app/article_with_custom_serialization.rb
422
+ - spec/support/app/article_with_dynamic_index_name.rb
423
+ - spec/support/app/author.rb
424
+ - spec/support/app/authorship.rb
425
+ - spec/support/app/category.rb
426
+ - spec/support/app/comment.rb
427
+ - spec/support/app/episode.rb
428
+ - spec/support/app/image.rb
429
+ - spec/support/app/import_article.rb
430
+ - spec/support/app/mongoid_article.rb
431
+ - spec/support/app/namespaced_book.rb
432
+ - spec/support/app/parent_and_child_searchable.rb
433
+ - spec/support/app/post.rb
434
+ - spec/support/app/question.rb
435
+ - spec/support/app/searchable.rb
436
+ - spec/support/app/series.rb
437
+ - spec/support/model.json
438
+ - spec/support/model.yml
407
439
  homepage: https://github.com/elasticsearch/elasticsearch-rails/
408
440
  licenses:
409
441
  - Apache 2
@@ -417,53 +449,75 @@ required_ruby_version: !ruby/object:Gem::Requirement
417
449
  requirements:
418
450
  - - ">="
419
451
  - !ruby/object:Gem::Version
420
- version: 1.9.3
452
+ version: '2.4'
421
453
  required_rubygems_version: !ruby/object:Gem::Requirement
422
454
  requirements:
423
455
  - - ">="
424
456
  - !ruby/object:Gem::Version
425
457
  version: '0'
426
458
  requirements: []
427
- rubyforge_project:
428
- rubygems_version: 2.2.2
459
+ rubygems_version: 3.1.2
429
460
  signing_key:
430
461
  specification_version: 4
431
462
  summary: ActiveModel/Record integrations for Elasticsearch.
432
463
  test_files:
433
- - test/integration/active_record_associations_parent_child.rb
434
- - test/integration/active_record_associations_test.rb
435
- - test/integration/active_record_basic_test.rb
436
- - test/integration/active_record_custom_serialization_test.rb
437
- - test/integration/active_record_import_test.rb
438
- - test/integration/active_record_namespaced_model_test.rb
439
- - test/integration/active_record_pagination_test.rb
440
- - test/integration/dynamic_index_name_test.rb
441
- - test/integration/mongoid_basic_test.rb
442
- - test/integration/multiple_models_test.rb
443
- - test/support/model.json
444
- - test/support/model.yml
445
- - test/test_helper.rb
446
- - test/unit/adapter_active_record_test.rb
447
- - test/unit/adapter_default_test.rb
448
- - test/unit/adapter_mongoid_test.rb
449
- - test/unit/adapter_multiple_test.rb
450
- - test/unit/adapter_test.rb
451
- - test/unit/callbacks_test.rb
452
- - test/unit/client_test.rb
453
- - test/unit/importing_test.rb
454
- - test/unit/indexing_test.rb
455
- - test/unit/module_test.rb
456
- - test/unit/multimodel_test.rb
457
- - test/unit/naming_test.rb
458
- - test/unit/proxy_test.rb
459
- - test/unit/response_base_test.rb
460
- - test/unit/response_pagination_kaminari_test.rb
461
- - test/unit/response_pagination_will_paginate_test.rb
462
- - test/unit/response_records_test.rb
463
- - test/unit/response_result_test.rb
464
- - test/unit/response_results_test.rb
465
- - test/unit/response_test.rb
466
- - test/unit/searching_search_request_test.rb
467
- - test/unit/searching_test.rb
468
- - test/unit/serializing_test.rb
469
- has_rdoc:
464
+ - spec/elasticsearch/model/adapter_spec.rb
465
+ - spec/elasticsearch/model/adapters/active_record/associations_spec.rb
466
+ - spec/elasticsearch/model/adapters/active_record/basic_spec.rb
467
+ - spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb
468
+ - spec/elasticsearch/model/adapters/active_record/import_spec.rb
469
+ - spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb
470
+ - spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb
471
+ - spec/elasticsearch/model/adapters/active_record/pagination_spec.rb
472
+ - spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb
473
+ - spec/elasticsearch/model/adapters/active_record/serialization_spec.rb
474
+ - spec/elasticsearch/model/adapters/active_record_spec.rb
475
+ - spec/elasticsearch/model/adapters/default_spec.rb
476
+ - spec/elasticsearch/model/adapters/mongoid/basic_spec.rb
477
+ - spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb
478
+ - spec/elasticsearch/model/adapters/mongoid_spec.rb
479
+ - spec/elasticsearch/model/adapters/multiple_spec.rb
480
+ - spec/elasticsearch/model/callbacks_spec.rb
481
+ - spec/elasticsearch/model/client_spec.rb
482
+ - spec/elasticsearch/model/hash_wrapper_spec.rb
483
+ - spec/elasticsearch/model/importing_spec.rb
484
+ - spec/elasticsearch/model/indexing_spec.rb
485
+ - spec/elasticsearch/model/module_spec.rb
486
+ - spec/elasticsearch/model/multimodel_spec.rb
487
+ - spec/elasticsearch/model/naming_spec.rb
488
+ - spec/elasticsearch/model/proxy_spec.rb
489
+ - spec/elasticsearch/model/response/aggregations_spec.rb
490
+ - spec/elasticsearch/model/response/base_spec.rb
491
+ - spec/elasticsearch/model/response/pagination/kaminari_spec.rb
492
+ - spec/elasticsearch/model/response/pagination/will_paginate_spec.rb
493
+ - spec/elasticsearch/model/response/records_spec.rb
494
+ - spec/elasticsearch/model/response/response_spec.rb
495
+ - spec/elasticsearch/model/response/result_spec.rb
496
+ - spec/elasticsearch/model/response/results_spec.rb
497
+ - spec/elasticsearch/model/searching_search_request_spec.rb
498
+ - spec/elasticsearch/model/searching_spec.rb
499
+ - spec/elasticsearch/model/serializing_spec.rb
500
+ - spec/spec_helper.rb
501
+ - spec/support/app.rb
502
+ - spec/support/app/answer.rb
503
+ - spec/support/app/article.rb
504
+ - spec/support/app/article_for_pagination.rb
505
+ - spec/support/app/article_no_type.rb
506
+ - spec/support/app/article_with_custom_serialization.rb
507
+ - spec/support/app/article_with_dynamic_index_name.rb
508
+ - spec/support/app/author.rb
509
+ - spec/support/app/authorship.rb
510
+ - spec/support/app/category.rb
511
+ - spec/support/app/comment.rb
512
+ - spec/support/app/episode.rb
513
+ - spec/support/app/image.rb
514
+ - spec/support/app/import_article.rb
515
+ - spec/support/app/mongoid_article.rb
516
+ - spec/support/app/namespaced_book.rb
517
+ - spec/support/app/parent_and_child_searchable.rb
518
+ - spec/support/app/post.rb
519
+ - spec/support/app/question.rb
520
+ - spec/support/app/searchable.rb
521
+ - spec/support/app/series.rb
522
+ - spec/support/model.json
523
+ - spec/support/model.yml
@@ -1,139 +0,0 @@
1
- require 'test_helper'
2
- require 'active_record'
3
-
4
- class Question < ActiveRecord::Base
5
- include Elasticsearch::Model
6
-
7
- has_many :answers, dependent: :destroy
8
-
9
- index_name 'questions_and_answers'
10
-
11
- mapping do
12
- indexes :title
13
- indexes :text
14
- indexes :author
15
- end
16
-
17
- after_commit lambda { __elasticsearch__.index_document }, on: :create
18
- after_commit lambda { __elasticsearch__.update_document }, on: :update
19
- after_commit lambda { __elasticsearch__.delete_document }, on: :destroy
20
- end
21
-
22
- class Answer < ActiveRecord::Base
23
- include Elasticsearch::Model
24
-
25
- belongs_to :question
26
-
27
- index_name 'questions_and_answers'
28
-
29
- mapping _parent: { type: 'question', required: true } do
30
- indexes :text
31
- indexes :author
32
- end
33
-
34
- after_commit lambda { __elasticsearch__.index_document(parent: question_id) }, on: :create
35
- after_commit lambda { __elasticsearch__.update_document(parent: question_id) }, on: :update
36
- after_commit lambda { __elasticsearch__.delete_document(parent: question_id) }, on: :destroy
37
- end
38
-
39
- module ParentChildSearchable
40
- INDEX_NAME = 'questions_and_answers'
41
-
42
- def create_index!(options={})
43
- client = Question.__elasticsearch__.client
44
- client.indices.delete index: INDEX_NAME rescue nil if options[:force]
45
-
46
- settings = Question.settings.to_hash.merge Answer.settings.to_hash
47
- mappings = Question.mappings.to_hash.merge Answer.mappings.to_hash
48
-
49
- client.indices.create index: INDEX_NAME,
50
- body: {
51
- settings: settings.to_hash,
52
- mappings: mappings.to_hash }
53
- end
54
-
55
- extend self
56
- end
57
-
58
- module Elasticsearch
59
- module Model
60
- class ActiveRecordAssociationsParentChildIntegrationTest < Elasticsearch::Test::IntegrationTestCase
61
-
62
- context "ActiveRecord associations with parent/child modelling" do
63
- setup do
64
- ActiveRecord::Schema.define(version: 1) do
65
- create_table :questions do |t|
66
- t.string :title
67
- t.text :text
68
- t.string :author
69
- t.timestamps
70
- end
71
- create_table :answers do |t|
72
- t.text :text
73
- t.string :author
74
- t.references :question
75
- t.timestamps
76
- end and add_index(:answers, :question_id)
77
- end
78
-
79
- Question.delete_all
80
- ParentChildSearchable.create_index! force: true
81
-
82
- q_1 = Question.create! title: 'First Question', author: 'John'
83
- q_2 = Question.create! title: 'Second Question', author: 'Jody'
84
-
85
- q_1.answers.create! text: 'Lorem Ipsum', author: 'Adam'
86
- q_1.answers.create! text: 'Dolor Sit', author: 'Ryan'
87
-
88
- q_2.answers.create! text: 'Amet Et', author: 'John'
89
-
90
- Question.__elasticsearch__.refresh_index!
91
- end
92
-
93
- should "find questions by matching answers" do
94
- response = Question.search(
95
- { query: {
96
- has_child: {
97
- type: 'answer',
98
- query: {
99
- match: {
100
- author: 'john'
101
- }
102
- }
103
- }
104
- }
105
- })
106
-
107
- assert_equal 'Second Question', response.records.first.title
108
- end
109
-
110
- should "find answers for matching questions" do
111
- response = Answer.search(
112
- { query: {
113
- has_parent: {
114
- parent_type: 'question',
115
- query: {
116
- match: {
117
- author: 'john'
118
- }
119
- }
120
- }
121
- }
122
- })
123
-
124
- assert_same_elements ['Adam', 'Ryan'], response.records.map(&:author)
125
- end
126
-
127
- should "delete answers when the question is deleted" do
128
- Question.where(title: 'First Question').each(&:destroy)
129
- Question.__elasticsearch__.refresh_index!
130
-
131
- response = Answer.search query: { match_all: {} }
132
-
133
- assert_equal 1, response.results.total
134
- end
135
- end
136
-
137
- end
138
- end
139
- end