elasticsearch-model 6.0.0 → 6.1.0

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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -0
  3. data/README.md +14 -7
  4. data/Rakefile +27 -36
  5. data/elasticsearch-model.gemspec +1 -1
  6. data/examples/activerecord_mapping_completion.rb +2 -15
  7. data/gemfiles/3.0.gemfile +6 -1
  8. data/gemfiles/4.0.gemfile +7 -1
  9. data/gemfiles/5.0.gemfile +6 -0
  10. data/lib/elasticsearch/model.rb +15 -8
  11. data/lib/elasticsearch/model/adapters/active_record.rb +7 -26
  12. data/lib/elasticsearch/model/indexing.rb +5 -3
  13. data/lib/elasticsearch/model/naming.rb +6 -1
  14. data/lib/elasticsearch/model/response.rb +2 -2
  15. data/lib/elasticsearch/model/response/pagination.rb +2 -192
  16. data/lib/elasticsearch/model/response/pagination/kaminari.rb +109 -0
  17. data/lib/elasticsearch/model/response/pagination/will_paginate.rb +95 -0
  18. data/lib/elasticsearch/model/response/result.rb +1 -1
  19. data/lib/elasticsearch/model/version.rb +1 -1
  20. data/spec/elasticsearch/model/adapter_spec.rb +119 -0
  21. data/spec/elasticsearch/model/adapters/active_record/associations_spec.rb +334 -0
  22. data/spec/elasticsearch/model/adapters/active_record/basic_spec.rb +340 -0
  23. data/spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb +18 -0
  24. data/spec/elasticsearch/model/adapters/active_record/import_spec.rb +187 -0
  25. data/spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb +110 -0
  26. data/spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb +38 -0
  27. data/spec/elasticsearch/model/adapters/active_record/pagination_spec.rb +315 -0
  28. data/spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb +75 -0
  29. data/spec/elasticsearch/model/adapters/active_record/serialization_spec.rb +61 -0
  30. data/spec/elasticsearch/model/adapters/active_record_spec.rb +207 -0
  31. data/spec/elasticsearch/model/adapters/default_spec.rb +41 -0
  32. data/spec/elasticsearch/model/adapters/mongoid/basic_spec.rb +267 -0
  33. data/spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb +66 -0
  34. data/spec/elasticsearch/model/adapters/mongoid_spec.rb +235 -0
  35. data/spec/elasticsearch/model/adapters/multiple_spec.rb +125 -0
  36. data/spec/elasticsearch/model/callbacks_spec.rb +33 -0
  37. data/spec/elasticsearch/model/client_spec.rb +66 -0
  38. data/spec/elasticsearch/model/hash_wrapper_spec.rb +12 -0
  39. data/spec/elasticsearch/model/importing_spec.rb +214 -0
  40. data/spec/elasticsearch/model/indexing_spec.rb +918 -0
  41. data/spec/elasticsearch/model/module_spec.rb +101 -0
  42. data/spec/elasticsearch/model/multimodel_spec.rb +55 -0
  43. data/spec/elasticsearch/model/naming_inheritance_spec.rb +184 -0
  44. data/spec/elasticsearch/model/naming_spec.rb +186 -0
  45. data/spec/elasticsearch/model/proxy_spec.rb +107 -0
  46. data/spec/elasticsearch/model/response/aggregations_spec.rb +66 -0
  47. data/spec/elasticsearch/model/response/base_spec.rb +90 -0
  48. data/spec/elasticsearch/model/response/pagination/kaminari_spec.rb +410 -0
  49. data/spec/elasticsearch/model/response/pagination/will_paginate_spec.rb +262 -0
  50. data/spec/elasticsearch/model/response/records_spec.rb +118 -0
  51. data/spec/elasticsearch/model/response/response_spec.rb +131 -0
  52. data/spec/elasticsearch/model/response/result_spec.rb +122 -0
  53. data/spec/elasticsearch/model/response/results_spec.rb +56 -0
  54. data/spec/elasticsearch/model/searching_search_request_spec.rb +112 -0
  55. data/spec/elasticsearch/model/searching_spec.rb +49 -0
  56. data/spec/elasticsearch/model/serializing_spec.rb +22 -0
  57. data/spec/spec_helper.rb +161 -0
  58. data/spec/support/app.rb +21 -0
  59. data/spec/support/app/answer.rb +33 -0
  60. data/spec/support/app/article.rb +22 -0
  61. data/spec/support/app/article_for_pagination.rb +12 -0
  62. data/spec/support/app/article_with_custom_serialization.rb +13 -0
  63. data/spec/support/app/article_with_dynamic_index_name.rb +15 -0
  64. data/spec/support/app/author.rb +9 -0
  65. data/spec/support/app/authorship.rb +4 -0
  66. data/spec/support/app/category.rb +3 -0
  67. data/spec/support/app/comment.rb +3 -0
  68. data/spec/support/app/episode.rb +11 -0
  69. data/spec/support/app/image.rb +19 -0
  70. data/spec/support/app/import_article.rb +12 -0
  71. data/spec/support/app/mongoid_article.rb +21 -0
  72. data/spec/support/app/namespaced_book.rb +10 -0
  73. data/spec/support/app/parent_and_child_searchable.rb +24 -0
  74. data/spec/support/app/post.rb +14 -0
  75. data/spec/support/app/question.rb +27 -0
  76. data/spec/support/app/searchable.rb +48 -0
  77. data/spec/support/app/series.rb +11 -0
  78. data/spec/support/model.json +1 -0
  79. data/{test → spec}/support/model.yml +0 -0
  80. metadata +129 -86
  81. data/test/integration/active_record_associations_parent_child_test.rb +0 -188
  82. data/test/integration/active_record_associations_test.rb +0 -339
  83. data/test/integration/active_record_basic_test.rb +0 -255
  84. data/test/integration/active_record_custom_serialization_test.rb +0 -67
  85. data/test/integration/active_record_import_test.rb +0 -168
  86. data/test/integration/active_record_namespaced_model_test.rb +0 -56
  87. data/test/integration/active_record_pagination_test.rb +0 -149
  88. data/test/integration/dynamic_index_name_test.rb +0 -52
  89. data/test/integration/mongoid_basic_test.rb +0 -240
  90. data/test/integration/multiple_models_test.rb +0 -176
  91. data/test/support/model.json +0 -1
  92. data/test/test_helper.rb +0 -92
  93. data/test/unit/adapter_active_record_test.rb +0 -157
  94. data/test/unit/adapter_default_test.rb +0 -41
  95. data/test/unit/adapter_mongoid_test.rb +0 -161
  96. data/test/unit/adapter_multiple_test.rb +0 -106
  97. data/test/unit/adapter_test.rb +0 -69
  98. data/test/unit/callbacks_test.rb +0 -31
  99. data/test/unit/client_test.rb +0 -27
  100. data/test/unit/hash_wrapper_test.rb +0 -13
  101. data/test/unit/importing_test.rb +0 -224
  102. data/test/unit/indexing_test.rb +0 -720
  103. data/test/unit/module_test.rb +0 -68
  104. data/test/unit/multimodel_test.rb +0 -38
  105. data/test/unit/naming_inheritance_test.rb +0 -94
  106. data/test/unit/naming_test.rb +0 -103
  107. data/test/unit/proxy_test.rb +0 -98
  108. data/test/unit/response_aggregations_test.rb +0 -46
  109. data/test/unit/response_base_test.rb +0 -40
  110. data/test/unit/response_pagination_kaminari_test.rb +0 -433
  111. data/test/unit/response_pagination_will_paginate_test.rb +0 -398
  112. data/test/unit/response_records_test.rb +0 -91
  113. data/test/unit/response_result_test.rb +0 -90
  114. data/test/unit/response_results_test.rb +0 -34
  115. data/test/unit/response_test.rb +0 -104
  116. data/test/unit/searching_search_request_test.rb +0 -78
  117. data/test/unit/searching_test.rb +0 -41
  118. data/test/unit/serializing_test.rb +0 -17
@@ -0,0 +1,21 @@
1
+ require 'active_record'
2
+
3
+ require 'support/app/question'
4
+ require 'support/app/answer'
5
+ require 'support/app/parent_and_child_searchable'
6
+ require 'support/app/article_with_custom_serialization'
7
+ require 'support/app/import_article'
8
+ require 'support/app/namespaced_book'
9
+ require 'support/app/article_for_pagination'
10
+ require 'support/app/article_with_dynamic_index_name'
11
+ require 'support/app/episode'
12
+ require 'support/app/image'
13
+ require 'support/app/series'
14
+ require 'support/app/mongoid_article'
15
+ require 'support/app/article'
16
+ require 'support/app/searchable'
17
+ require 'support/app/category'
18
+ require 'support/app/author'
19
+ require 'support/app/authorship'
20
+ require 'support/app/comment'
21
+ require 'support/app/post'
@@ -0,0 +1,33 @@
1
+ class Answer < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+
4
+ belongs_to :question
5
+
6
+ JOIN_TYPE = 'answer'.freeze
7
+
8
+ index_name 'questions_and_answers'.freeze
9
+ document_type 'doc'.freeze
10
+
11
+ before_create :randomize_id
12
+
13
+ def randomize_id
14
+ begin
15
+ self.id = SecureRandom.random_number(1_000_000)
16
+ end while Answer.where(id: self.id).exists?
17
+ end
18
+
19
+ mapping do
20
+ indexes :text
21
+ indexes :author
22
+ end
23
+
24
+ def as_indexed_json(options={})
25
+ # This line is necessary for differences between ActiveModel::Serializers::JSON#as_json versions
26
+ json = as_json(options)[JOIN_TYPE] || as_json(options)
27
+ json.merge(join_field: { name: JOIN_TYPE, parent: question_id })
28
+ end
29
+
30
+ after_commit lambda { __elasticsearch__.index_document(routing: (question_id || 1)) }, on: :create
31
+ after_commit lambda { __elasticsearch__.update_document(routing: (question_id || 1)) }, on: :update
32
+ after_commit lambda {__elasticsearch__.delete_document(routing: (question_id || 1)) }, on: :destroy
33
+ end
@@ -0,0 +1,22 @@
1
+ class ::Article < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+ include Elasticsearch::Model::Callbacks
4
+
5
+ document_type 'article'
6
+
7
+ settings index: {number_of_shards: 1, number_of_replicas: 0} do
8
+ mapping do
9
+ indexes :title, type: 'text', analyzer: 'snowball'
10
+ indexes :body, type: 'text'
11
+ indexes :clicks, type: 'integer'
12
+ indexes :created_at, type: 'date'
13
+ end
14
+ end
15
+
16
+ def as_indexed_json(options = {})
17
+ attributes
18
+ .symbolize_keys
19
+ .slice(:title, :body, :clicks, :created_at)
20
+ .merge(suggest_title: title)
21
+ end
22
+ end
@@ -0,0 +1,12 @@
1
+ class ::ArticleForPagination < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+
4
+ scope :published, -> { where(published: true) }
5
+
6
+ settings index: { number_of_shards: 1, number_of_replicas: 0 } do
7
+ mapping do
8
+ indexes :title, type: 'text', analyzer: 'snowball'
9
+ indexes :created_at, type: 'date'
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ class ::ArticleWithCustomSerialization < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+ include Elasticsearch::Model::Callbacks
4
+
5
+ mapping do
6
+ indexes :title
7
+ end
8
+
9
+ def as_indexed_json(options={})
10
+ # as_json(options.merge root: false).slice('title')
11
+ { title: self.title }
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ class ::ArticleWithDynamicIndexName < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+ include Elasticsearch::Model::Callbacks
4
+
5
+ def self.counter=(value)
6
+ @counter = 0
7
+ end
8
+
9
+ def self.counter
10
+ (@counter ||= 0) && @counter += 1
11
+ end
12
+
13
+ mapping { indexes :title }
14
+ index_name { "articles-#{counter}" }
15
+ end
@@ -0,0 +1,9 @@
1
+ class Author < ActiveRecord::Base
2
+ has_many :authorships
3
+
4
+ after_update { self.authorships.each(&:touch) }
5
+
6
+ def full_name
7
+ [first_name, last_name].compact.join(' ')
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ class Authorship < ActiveRecord::Base
2
+ belongs_to :author
3
+ belongs_to :post, touch: true
4
+ end
@@ -0,0 +1,3 @@
1
+ class Category < ActiveRecord::Base
2
+ has_and_belongs_to_many :posts
3
+ end
@@ -0,0 +1,3 @@
1
+ class Comment < ActiveRecord::Base
2
+ belongs_to :post, touch: true
3
+ end
@@ -0,0 +1,11 @@
1
+ class Episode < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+ include Elasticsearch::Model::Callbacks
4
+
5
+ settings index: {number_of_shards: 1, number_of_replicas: 0} do
6
+ mapping do
7
+ indexes :name, type: 'text', analyzer: 'snowball'
8
+ indexes :created_at, type: 'date'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ class Image
2
+ include Mongoid::Document
3
+ include Elasticsearch::Model
4
+ include Elasticsearch::Model::Callbacks
5
+
6
+ field :name, type: String
7
+ attr_accessible :name if respond_to? :attr_accessible
8
+
9
+ settings index: {number_of_shards: 1, number_of_replicas: 0} do
10
+ mapping do
11
+ indexes :name, type: 'text', analyzer: 'snowball'
12
+ indexes :created_at, type: 'date'
13
+ end
14
+ end
15
+
16
+ def as_indexed_json(options={})
17
+ as_json(except: [:_id])
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ class ImportArticle < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+
4
+ scope :popular, -> { where('views >= 5') }
5
+
6
+ mapping do
7
+ indexes :title, type: 'text'
8
+ indexes :views, type: 'integer'
9
+ indexes :numeric, type: 'integer'
10
+ indexes :created_at, type: 'date'
11
+ end
12
+ end
@@ -0,0 +1,21 @@
1
+ class ::MongoidArticle
2
+ include Mongoid::Document
3
+ include Elasticsearch::Model
4
+ include Elasticsearch::Model::Callbacks
5
+
6
+ field :id, type: String
7
+ field :title, type: String
8
+ field :views, type: Integer
9
+ attr_accessible :title if respond_to? :attr_accessible
10
+
11
+ settings index: { number_of_shards: 1, number_of_replicas: 0 } do
12
+ mapping do
13
+ indexes :title, type: 'text', analyzer: 'snowball'
14
+ indexes :created_at, type: 'date'
15
+ end
16
+ end
17
+
18
+ def as_indexed_json(options={})
19
+ as_json(except: [:id, :_id])
20
+ end
21
+ end
@@ -0,0 +1,10 @@
1
+ module MyNamespace
2
+ class Book < ActiveRecord::Base
3
+ include Elasticsearch::Model
4
+ include Elasticsearch::Model::Callbacks
5
+
6
+ document_type 'book'
7
+
8
+ mapping { indexes :title }
9
+ end
10
+ end
@@ -0,0 +1,24 @@
1
+ module ParentChildSearchable
2
+ INDEX_NAME = 'questions_and_answers'.freeze
3
+ JOIN = 'join'.freeze
4
+
5
+ def create_index!(options={})
6
+ client = Question.__elasticsearch__.client
7
+ client.indices.delete index: INDEX_NAME rescue nil if options[:force]
8
+
9
+ settings = Question.settings.to_hash.merge Answer.settings.to_hash
10
+ mapping_properties = { join_field: { type: JOIN,
11
+ relations: { Question::JOIN_TYPE => Answer::JOIN_TYPE } } }
12
+
13
+ merged_properties = mapping_properties.merge(Question.mappings.to_hash[:doc][:properties]).merge(
14
+ Answer.mappings.to_hash[:doc][:properties])
15
+ mappings = { doc: { properties: merged_properties }}
16
+
17
+ client.indices.create index: INDEX_NAME,
18
+ body: {
19
+ settings: settings.to_hash,
20
+ mappings: mappings }
21
+ end
22
+
23
+ extend self
24
+ end
@@ -0,0 +1,14 @@
1
+ class Post < ActiveRecord::Base
2
+ include Searchable
3
+
4
+ has_and_belongs_to_many :categories, after_add: [ lambda { |a,c| a.__elasticsearch__.index_document } ],
5
+ after_remove: [ lambda { |a,c| a.__elasticsearch__.index_document } ]
6
+ has_many :authorships
7
+ has_many :authors, through: :authorships,
8
+ after_add: [ lambda { |a,c| a.__elasticsearch__.index_document } ],
9
+ after_remove: [ lambda { |a,c| a.__elasticsearch__.index_document } ]
10
+ has_many :comments, after_add: [ lambda { |a,c| a.__elasticsearch__.index_document } ],
11
+ after_remove: [ lambda { |a,c| a.__elasticsearch__.index_document } ]
12
+
13
+ after_touch() { __elasticsearch__.index_document }
14
+ end
@@ -0,0 +1,27 @@
1
+ class Question < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+
4
+ has_many :answers, dependent: :destroy
5
+
6
+ JOIN_TYPE = 'question'.freeze
7
+ JOIN_METADATA = { join_field: JOIN_TYPE}.freeze
8
+
9
+ index_name 'questions_and_answers'.freeze
10
+ document_type 'doc'.freeze
11
+
12
+ mapping do
13
+ indexes :title
14
+ indexes :text
15
+ indexes :author
16
+ end
17
+
18
+ def as_indexed_json(options={})
19
+ # This line is necessary for differences between ActiveModel::Serializers::JSON#as_json versions
20
+ json = as_json(options)[JOIN_TYPE] || as_json(options)
21
+ json.merge(JOIN_METADATA)
22
+ end
23
+
24
+ after_commit lambda { __elasticsearch__.index_document }, on: :create
25
+ after_commit lambda { __elasticsearch__.update_document }, on: :update
26
+ after_commit lambda { __elasticsearch__.delete_document }, on: :destroy
27
+ end
@@ -0,0 +1,48 @@
1
+ module Searchable
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ include Elasticsearch::Model
6
+ include Elasticsearch::Model::Callbacks
7
+
8
+ # Set up the mapping
9
+ #
10
+ settings index: { number_of_shards: 1, number_of_replicas: 0 } do
11
+ mapping do
12
+ indexes :title, analyzer: 'snowball'
13
+ indexes :created_at, type: 'date'
14
+
15
+ indexes :authors do
16
+ indexes :first_name
17
+ indexes :last_name
18
+ indexes :full_name, type: 'text' do
19
+ indexes :raw, type: 'keyword'
20
+ end
21
+ end
22
+
23
+ indexes :categories, type: 'keyword'
24
+
25
+ indexes :comments, type: 'nested' do
26
+ indexes :text
27
+ indexes :author
28
+ end
29
+ end
30
+ end
31
+
32
+ # Customize the JSON serialization for Elasticsearch
33
+ #
34
+ def as_indexed_json(options={})
35
+ {
36
+ title: title,
37
+ text: text,
38
+ categories: categories.map(&:title),
39
+ authors: authors.as_json(methods: [:full_name], only: [:full_name, :first_name, :last_name]),
40
+ comments: comments.as_json(only: [:text, :author])
41
+ }
42
+ end
43
+
44
+ # Update document in the index after touch
45
+ #
46
+ after_touch() { __elasticsearch__.index_document }
47
+ end
48
+ end
@@ -0,0 +1,11 @@
1
+ class Series < ActiveRecord::Base
2
+ include Elasticsearch::Model
3
+ include Elasticsearch::Model::Callbacks
4
+
5
+ settings index: {number_of_shards: 1, number_of_replicas: 0} do
6
+ mapping do
7
+ indexes :name, type: 'text', analyzer: 'snowball'
8
+ indexes :created_at, type: 'date'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1 @@
1
+ { "laz": "qux" }
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karel Minarik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-06 00:00:00.000000000 Z
11
+ date: 2019-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: elasticsearch
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '1.3'
61
+ version: '0'
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: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -366,6 +366,8 @@ files:
366
366
  - lib/elasticsearch/model/response/aggregations.rb
367
367
  - lib/elasticsearch/model/response/base.rb
368
368
  - lib/elasticsearch/model/response/pagination.rb
369
+ - lib/elasticsearch/model/response/pagination/kaminari.rb
370
+ - lib/elasticsearch/model/response/pagination/will_paginate.rb
369
371
  - lib/elasticsearch/model/response/records.rb
370
372
  - lib/elasticsearch/model/response/result.rb
371
373
  - lib/elasticsearch/model/response/results.rb
@@ -373,45 +375,66 @@ files:
373
375
  - lib/elasticsearch/model/searching.rb
374
376
  - lib/elasticsearch/model/serializing.rb
375
377
  - lib/elasticsearch/model/version.rb
376
- - test/integration/active_record_associations_parent_child_test.rb
377
- - test/integration/active_record_associations_test.rb
378
- - test/integration/active_record_basic_test.rb
379
- - test/integration/active_record_custom_serialization_test.rb
380
- - test/integration/active_record_import_test.rb
381
- - test/integration/active_record_namespaced_model_test.rb
382
- - test/integration/active_record_pagination_test.rb
383
- - test/integration/dynamic_index_name_test.rb
384
- - test/integration/mongoid_basic_test.rb
385
- - test/integration/multiple_models_test.rb
386
- - test/support/model.json
387
- - test/support/model.yml
388
- - test/test_helper.rb
389
- - test/unit/adapter_active_record_test.rb
390
- - test/unit/adapter_default_test.rb
391
- - test/unit/adapter_mongoid_test.rb
392
- - test/unit/adapter_multiple_test.rb
393
- - test/unit/adapter_test.rb
394
- - test/unit/callbacks_test.rb
395
- - test/unit/client_test.rb
396
- - test/unit/hash_wrapper_test.rb
397
- - test/unit/importing_test.rb
398
- - test/unit/indexing_test.rb
399
- - test/unit/module_test.rb
400
- - test/unit/multimodel_test.rb
401
- - test/unit/naming_inheritance_test.rb
402
- - test/unit/naming_test.rb
403
- - test/unit/proxy_test.rb
404
- - test/unit/response_aggregations_test.rb
405
- - test/unit/response_base_test.rb
406
- - test/unit/response_pagination_kaminari_test.rb
407
- - test/unit/response_pagination_will_paginate_test.rb
408
- - test/unit/response_records_test.rb
409
- - test/unit/response_result_test.rb
410
- - test/unit/response_results_test.rb
411
- - test/unit/response_test.rb
412
- - test/unit/searching_search_request_test.rb
413
- - test/unit/searching_test.rb
414
- - test/unit/serializing_test.rb
378
+ - spec/elasticsearch/model/adapter_spec.rb
379
+ - spec/elasticsearch/model/adapters/active_record/associations_spec.rb
380
+ - spec/elasticsearch/model/adapters/active_record/basic_spec.rb
381
+ - spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb
382
+ - spec/elasticsearch/model/adapters/active_record/import_spec.rb
383
+ - spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb
384
+ - spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb
385
+ - spec/elasticsearch/model/adapters/active_record/pagination_spec.rb
386
+ - spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb
387
+ - spec/elasticsearch/model/adapters/active_record/serialization_spec.rb
388
+ - spec/elasticsearch/model/adapters/active_record_spec.rb
389
+ - spec/elasticsearch/model/adapters/default_spec.rb
390
+ - spec/elasticsearch/model/adapters/mongoid/basic_spec.rb
391
+ - spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb
392
+ - spec/elasticsearch/model/adapters/mongoid_spec.rb
393
+ - spec/elasticsearch/model/adapters/multiple_spec.rb
394
+ - spec/elasticsearch/model/callbacks_spec.rb
395
+ - spec/elasticsearch/model/client_spec.rb
396
+ - spec/elasticsearch/model/hash_wrapper_spec.rb
397
+ - spec/elasticsearch/model/importing_spec.rb
398
+ - spec/elasticsearch/model/indexing_spec.rb
399
+ - spec/elasticsearch/model/module_spec.rb
400
+ - spec/elasticsearch/model/multimodel_spec.rb
401
+ - spec/elasticsearch/model/naming_inheritance_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_with_custom_serialization.rb
421
+ - spec/support/app/article_with_dynamic_index_name.rb
422
+ - spec/support/app/author.rb
423
+ - spec/support/app/authorship.rb
424
+ - spec/support/app/category.rb
425
+ - spec/support/app/comment.rb
426
+ - spec/support/app/episode.rb
427
+ - spec/support/app/image.rb
428
+ - spec/support/app/import_article.rb
429
+ - spec/support/app/mongoid_article.rb
430
+ - spec/support/app/namespaced_book.rb
431
+ - spec/support/app/parent_and_child_searchable.rb
432
+ - spec/support/app/post.rb
433
+ - spec/support/app/question.rb
434
+ - spec/support/app/searchable.rb
435
+ - spec/support/app/series.rb
436
+ - spec/support/model.json
437
+ - spec/support/model.yml
415
438
  homepage: https://github.com/elasticsearch/elasticsearch-rails/
416
439
  licenses:
417
440
  - Apache 2
@@ -432,48 +455,68 @@ required_rubygems_version: !ruby/object:Gem::Requirement
432
455
  - !ruby/object:Gem::Version
433
456
  version: '0'
434
457
  requirements: []
435
- rubyforge_project:
436
- rubygems_version: 2.7.7
458
+ rubygems_version: 3.0.4
437
459
  signing_key:
438
460
  specification_version: 4
439
461
  summary: ActiveModel/Record integrations for Elasticsearch.
440
462
  test_files:
441
- - test/integration/active_record_associations_parent_child_test.rb
442
- - test/integration/active_record_associations_test.rb
443
- - test/integration/active_record_basic_test.rb
444
- - test/integration/active_record_custom_serialization_test.rb
445
- - test/integration/active_record_import_test.rb
446
- - test/integration/active_record_namespaced_model_test.rb
447
- - test/integration/active_record_pagination_test.rb
448
- - test/integration/dynamic_index_name_test.rb
449
- - test/integration/mongoid_basic_test.rb
450
- - test/integration/multiple_models_test.rb
451
- - test/support/model.json
452
- - test/support/model.yml
453
- - test/test_helper.rb
454
- - test/unit/adapter_active_record_test.rb
455
- - test/unit/adapter_default_test.rb
456
- - test/unit/adapter_mongoid_test.rb
457
- - test/unit/adapter_multiple_test.rb
458
- - test/unit/adapter_test.rb
459
- - test/unit/callbacks_test.rb
460
- - test/unit/client_test.rb
461
- - test/unit/hash_wrapper_test.rb
462
- - test/unit/importing_test.rb
463
- - test/unit/indexing_test.rb
464
- - test/unit/module_test.rb
465
- - test/unit/multimodel_test.rb
466
- - test/unit/naming_inheritance_test.rb
467
- - test/unit/naming_test.rb
468
- - test/unit/proxy_test.rb
469
- - test/unit/response_aggregations_test.rb
470
- - test/unit/response_base_test.rb
471
- - test/unit/response_pagination_kaminari_test.rb
472
- - test/unit/response_pagination_will_paginate_test.rb
473
- - test/unit/response_records_test.rb
474
- - test/unit/response_result_test.rb
475
- - test/unit/response_results_test.rb
476
- - test/unit/response_test.rb
477
- - test/unit/searching_search_request_test.rb
478
- - test/unit/searching_test.rb
479
- - test/unit/serializing_test.rb
463
+ - spec/elasticsearch/model/adapter_spec.rb
464
+ - spec/elasticsearch/model/adapters/active_record/associations_spec.rb
465
+ - spec/elasticsearch/model/adapters/active_record/basic_spec.rb
466
+ - spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb
467
+ - spec/elasticsearch/model/adapters/active_record/import_spec.rb
468
+ - spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb
469
+ - spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb
470
+ - spec/elasticsearch/model/adapters/active_record/pagination_spec.rb
471
+ - spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb
472
+ - spec/elasticsearch/model/adapters/active_record/serialization_spec.rb
473
+ - spec/elasticsearch/model/adapters/active_record_spec.rb
474
+ - spec/elasticsearch/model/adapters/default_spec.rb
475
+ - spec/elasticsearch/model/adapters/mongoid/basic_spec.rb
476
+ - spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb
477
+ - spec/elasticsearch/model/adapters/mongoid_spec.rb
478
+ - spec/elasticsearch/model/adapters/multiple_spec.rb
479
+ - spec/elasticsearch/model/callbacks_spec.rb
480
+ - spec/elasticsearch/model/client_spec.rb
481
+ - spec/elasticsearch/model/hash_wrapper_spec.rb
482
+ - spec/elasticsearch/model/importing_spec.rb
483
+ - spec/elasticsearch/model/indexing_spec.rb
484
+ - spec/elasticsearch/model/module_spec.rb
485
+ - spec/elasticsearch/model/multimodel_spec.rb
486
+ - spec/elasticsearch/model/naming_inheritance_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_with_custom_serialization.rb
506
+ - spec/support/app/article_with_dynamic_index_name.rb
507
+ - spec/support/app/author.rb
508
+ - spec/support/app/authorship.rb
509
+ - spec/support/app/category.rb
510
+ - spec/support/app/comment.rb
511
+ - spec/support/app/episode.rb
512
+ - spec/support/app/image.rb
513
+ - spec/support/app/import_article.rb
514
+ - spec/support/app/mongoid_article.rb
515
+ - spec/support/app/namespaced_book.rb
516
+ - spec/support/app/parent_and_child_searchable.rb
517
+ - spec/support/app/post.rb
518
+ - spec/support/app/question.rb
519
+ - spec/support/app/searchable.rb
520
+ - spec/support/app/series.rb
521
+ - spec/support/model.json
522
+ - spec/support/model.yml