elasticsearch-model 6.1.1 → 7.0.0.pre

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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/Gemfile +17 -0
  4. data/LICENSE.txt +199 -10
  5. data/README.md +17 -16
  6. data/Rakefile +18 -1
  7. data/elasticsearch-model.gemspec +19 -2
  8. data/examples/activerecord_article.rb +17 -0
  9. data/examples/activerecord_associations.rb +17 -0
  10. data/examples/activerecord_custom_analyzer.rb +17 -0
  11. data/examples/activerecord_mapping_completion.rb +17 -0
  12. data/examples/activerecord_mapping_edge_ngram.rb +17 -0
  13. data/examples/couchbase_article.rb +17 -0
  14. data/examples/datamapper_article.rb +17 -0
  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 +18 -1
  19. data/gemfiles/4.0.gemfile +20 -4
  20. data/gemfiles/5.0.gemfile +18 -1
  21. data/gemfiles/6.0.gemfile +21 -3
  22. data/lib/elasticsearch/model.rb +25 -15
  23. data/lib/elasticsearch/model/adapter.rb +17 -0
  24. data/lib/elasticsearch/model/adapters/active_record.rb +18 -1
  25. data/lib/elasticsearch/model/adapters/default.rb +17 -0
  26. data/lib/elasticsearch/model/adapters/mongoid.rb +17 -0
  27. data/lib/elasticsearch/model/adapters/multiple.rb +29 -4
  28. data/lib/elasticsearch/model/callbacks.rb +17 -0
  29. data/lib/elasticsearch/model/client.rb +17 -0
  30. data/lib/elasticsearch/model/ext/active_record.rb +17 -0
  31. data/lib/elasticsearch/model/hash_wrapper.rb +17 -0
  32. data/lib/elasticsearch/model/importing.rb +17 -0
  33. data/lib/elasticsearch/model/indexing.rb +29 -8
  34. data/lib/elasticsearch/model/multimodel.rb +17 -0
  35. data/lib/elasticsearch/model/naming.rb +19 -10
  36. data/lib/elasticsearch/model/proxy.rb +17 -0
  37. data/lib/elasticsearch/model/response.rb +17 -0
  38. data/lib/elasticsearch/model/response/aggregations.rb +17 -0
  39. data/lib/elasticsearch/model/response/base.rb +22 -1
  40. data/lib/elasticsearch/model/response/pagination.rb +17 -0
  41. data/lib/elasticsearch/model/response/pagination/kaminari.rb +17 -0
  42. data/lib/elasticsearch/model/response/pagination/will_paginate.rb +17 -0
  43. data/lib/elasticsearch/model/response/records.rb +17 -0
  44. data/lib/elasticsearch/model/response/result.rb +17 -0
  45. data/lib/elasticsearch/model/response/results.rb +17 -0
  46. data/lib/elasticsearch/model/response/suggestions.rb +17 -0
  47. data/lib/elasticsearch/model/searching.rb +17 -0
  48. data/lib/elasticsearch/model/serializing.rb +17 -0
  49. data/lib/elasticsearch/model/version.rb +18 -1
  50. data/spec/elasticsearch/model/adapter_spec.rb +17 -0
  51. data/spec/elasticsearch/model/adapters/active_record/associations_spec.rb +17 -0
  52. data/spec/elasticsearch/model/adapters/active_record/basic_spec.rb +281 -226
  53. data/spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb +17 -0
  54. data/spec/elasticsearch/model/adapters/active_record/import_spec.rb +17 -0
  55. data/spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb +17 -0
  56. data/spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb +18 -1
  57. data/spec/elasticsearch/model/adapters/active_record/pagination_spec.rb +17 -0
  58. data/spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb +18 -1
  59. data/spec/elasticsearch/model/adapters/active_record/serialization_spec.rb +17 -0
  60. data/spec/elasticsearch/model/adapters/active_record_spec.rb +17 -0
  61. data/spec/elasticsearch/model/adapters/default_spec.rb +17 -0
  62. data/spec/elasticsearch/model/adapters/mongoid/basic_spec.rb +17 -0
  63. data/spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb +17 -0
  64. data/spec/elasticsearch/model/adapters/mongoid_spec.rb +17 -0
  65. data/spec/elasticsearch/model/adapters/multiple_spec.rb +17 -0
  66. data/spec/elasticsearch/model/callbacks_spec.rb +17 -0
  67. data/spec/elasticsearch/model/client_spec.rb +17 -0
  68. data/spec/elasticsearch/model/hash_wrapper_spec.rb +17 -0
  69. data/spec/elasticsearch/model/importing_spec.rb +17 -0
  70. data/spec/elasticsearch/model/indexing_spec.rb +108 -12
  71. data/spec/elasticsearch/model/module_spec.rb +17 -25
  72. data/spec/elasticsearch/model/multimodel_spec.rb +17 -0
  73. data/spec/elasticsearch/model/naming_inheritance_spec.rb +82 -143
  74. data/spec/elasticsearch/model/naming_spec.rb +22 -5
  75. data/spec/elasticsearch/model/proxy_spec.rb +17 -0
  76. data/spec/elasticsearch/model/response/aggregations_spec.rb +17 -0
  77. data/spec/elasticsearch/model/response/base_spec.rb +17 -0
  78. data/spec/elasticsearch/model/response/pagination/kaminari_spec.rb +85 -23
  79. data/spec/elasticsearch/model/response/pagination/will_paginate_spec.rb +17 -0
  80. data/spec/elasticsearch/model/response/records_spec.rb +17 -0
  81. data/spec/elasticsearch/model/response/response_spec.rb +17 -0
  82. data/spec/elasticsearch/model/response/result_spec.rb +17 -0
  83. data/spec/elasticsearch/model/response/results_spec.rb +17 -0
  84. data/spec/elasticsearch/model/searching_search_request_spec.rb +17 -0
  85. data/spec/elasticsearch/model/searching_spec.rb +17 -0
  86. data/spec/elasticsearch/model/serializing_spec.rb +17 -0
  87. data/spec/spec_helper.rb +18 -0
  88. data/spec/support/app.rb +18 -0
  89. data/spec/support/app/answer.rb +17 -0
  90. data/spec/support/app/article.rb +17 -0
  91. data/spec/support/app/article_for_pagination.rb +17 -0
  92. data/spec/support/app/article_no_type.rb +37 -0
  93. data/spec/support/app/article_with_custom_serialization.rb +17 -0
  94. data/spec/support/app/article_with_dynamic_index_name.rb +17 -0
  95. data/spec/support/app/author.rb +17 -0
  96. data/spec/support/app/authorship.rb +17 -0
  97. data/spec/support/app/category.rb +17 -0
  98. data/spec/support/app/comment.rb +17 -0
  99. data/spec/support/app/episode.rb +17 -0
  100. data/spec/support/app/image.rb +17 -0
  101. data/spec/support/app/import_article.rb +17 -0
  102. data/spec/support/app/mongoid_article.rb +17 -0
  103. data/spec/support/app/namespaced_book.rb +17 -0
  104. data/spec/support/app/parent_and_child_searchable.rb +21 -4
  105. data/spec/support/app/post.rb +17 -0
  106. data/spec/support/app/question.rb +17 -0
  107. data/spec/support/app/searchable.rb +17 -0
  108. data/spec/support/app/series.rb +17 -0
  109. metadata +12 -10
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  class Episode < ActiveRecord::Base
2
19
  include Elasticsearch::Model
3
20
  include Elasticsearch::Model::Callbacks
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  class Image
2
19
  include Mongoid::Document
3
20
  include Elasticsearch::Model
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  class ImportArticle < ActiveRecord::Base
2
19
  include Elasticsearch::Model
3
20
 
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  class ::MongoidArticle
2
19
  include Mongoid::Document
3
20
  include Elasticsearch::Model
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module MyNamespace
2
19
  class Book < ActiveRecord::Base
3
20
  include Elasticsearch::Model
@@ -1,10 +1,27 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module ParentChildSearchable
2
19
  INDEX_NAME = 'questions_and_answers'.freeze
3
20
  JOIN = 'join'.freeze
4
21
 
5
22
  def create_index!(options={})
6
23
  client = Question.__elasticsearch__.client
7
- client.indices.delete index: INDEX_NAME rescue nil if options[:force]
24
+ client.indices.delete index: INDEX_NAME rescue nil if options.delete(:force)
8
25
 
9
26
  settings = Question.settings.to_hash.merge Answer.settings.to_hash
10
27
  mapping_properties = { join_field: { type: JOIN,
@@ -14,10 +31,10 @@ module ParentChildSearchable
14
31
  Answer.mappings.to_hash[:doc][:properties])
15
32
  mappings = { doc: { properties: merged_properties }}
16
33
 
17
- client.indices.create index: INDEX_NAME,
18
- body: {
34
+ client.indices.create({ index: INDEX_NAME,
35
+ body: {
19
36
  settings: settings.to_hash,
20
- mappings: mappings }
37
+ mappings: mappings } }.merge(options))
21
38
  end
22
39
 
23
40
  extend self
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  class Post < ActiveRecord::Base
2
19
  include Searchable
3
20
 
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  class Question < ActiveRecord::Base
2
19
  include Elasticsearch::Model
3
20
 
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Searchable
2
19
  extend ActiveSupport::Concern
3
20
 
@@ -1,3 +1,20 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  class Series < ActiveRecord::Base
2
19
  include Elasticsearch::Model
3
20
  include Elasticsearch::Model::Callbacks
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.1
4
+ version: 7.0.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karel Minarik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-19 00:00:00.000000000 Z
11
+ date: 2019-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: elasticsearch
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">"
18
18
  - !ruby/object:Gem::Version
19
- version: '6'
19
+ version: '1'
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: '6'
26
+ version: '1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -418,6 +418,7 @@ files:
418
418
  - spec/support/app/answer.rb
419
419
  - spec/support/app/article.rb
420
420
  - spec/support/app/article_for_pagination.rb
421
+ - spec/support/app/article_no_type.rb
421
422
  - spec/support/app/article_with_custom_serialization.rb
422
423
  - spec/support/app/article_with_dynamic_index_name.rb
423
424
  - spec/support/app/author.rb
@@ -449,14 +450,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
449
450
  requirements:
450
451
  - - ">="
451
452
  - !ruby/object:Gem::Version
452
- version: '2.2'
453
+ version: 1.9.3
453
454
  required_rubygems_version: !ruby/object:Gem::Requirement
454
455
  requirements:
455
- - - ">="
456
+ - - ">"
456
457
  - !ruby/object:Gem::Version
457
- version: '0'
458
+ version: 1.3.1
458
459
  requirements: []
459
- rubygems_version: 3.1.2
460
+ rubygems_version: 3.0.3
460
461
  signing_key:
461
462
  specification_version: 4
462
463
  summary: ActiveModel/Record integrations for Elasticsearch.
@@ -503,6 +504,7 @@ test_files:
503
504
  - spec/support/app/answer.rb
504
505
  - spec/support/app/article.rb
505
506
  - spec/support/app/article_for_pagination.rb
507
+ - spec/support/app/article_no_type.rb
506
508
  - spec/support/app/article_with_custom_serialization.rb
507
509
  - spec/support/app/article_with_dynamic_index_name.rb
508
510
  - spec/support/app/author.rb