elasticsearch-model 7.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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/README.md +15 -27
  4. data/Rakefile +13 -14
  5. data/elasticsearch-model.gemspec +37 -40
  6. data/examples/activerecord_article.rb +1 -1
  7. data/examples/activerecord_associations.rb +2 -2
  8. data/examples/activerecord_custom_analyzer.rb +3 -3
  9. data/examples/activerecord_mapping_completion.rb +1 -1
  10. data/examples/activerecord_mapping_edge_ngram.rb +1 -1
  11. data/examples/couchbase_article.rb +1 -1
  12. data/examples/datamapper_article.rb +1 -1
  13. data/examples/mongoid_article.rb +1 -1
  14. data/examples/ohm_article.rb +1 -1
  15. data/examples/riak_article.rb +1 -1
  16. data/gemfiles/4.0.gemfile +4 -3
  17. data/lib/elasticsearch/model/adapter.rb +1 -1
  18. data/lib/elasticsearch/model/adapters/active_record.rb +2 -2
  19. data/lib/elasticsearch/model/adapters/default.rb +1 -1
  20. data/lib/elasticsearch/model/adapters/mongoid.rb +1 -1
  21. data/lib/elasticsearch/model/adapters/multiple.rb +1 -1
  22. data/lib/elasticsearch/model/callbacks.rb +1 -1
  23. data/lib/elasticsearch/model/client.rb +1 -6
  24. data/lib/elasticsearch/model/ext/active_record.rb +1 -1
  25. data/lib/elasticsearch/model/hash_wrapper.rb +1 -1
  26. data/lib/elasticsearch/model/importing.rb +11 -5
  27. data/lib/elasticsearch/model/indexing.rb +4 -4
  28. data/lib/elasticsearch/model/multimodel.rb +2 -2
  29. data/lib/elasticsearch/model/naming.rb +1 -1
  30. data/lib/elasticsearch/model/proxy.rb +7 -4
  31. data/lib/elasticsearch/model/response/aggregations.rb +1 -1
  32. data/lib/elasticsearch/model/response/base.rb +1 -1
  33. data/lib/elasticsearch/model/response/pagination/kaminari.rb +1 -1
  34. data/lib/elasticsearch/model/response/pagination/will_paginate.rb +1 -1
  35. data/lib/elasticsearch/model/response/pagination.rb +1 -1
  36. data/lib/elasticsearch/model/response/records.rb +1 -1
  37. data/lib/elasticsearch/model/response/result.rb +1 -1
  38. data/lib/elasticsearch/model/response/results.rb +2 -1
  39. data/lib/elasticsearch/model/response/suggestions.rb +1 -1
  40. data/lib/elasticsearch/model/response.rb +1 -1
  41. data/lib/elasticsearch/model/searching.rb +1 -1
  42. data/lib/elasticsearch/model/serializing.rb +1 -1
  43. data/lib/elasticsearch/model/version.rb +2 -2
  44. data/lib/elasticsearch/model.rb +4 -4
  45. data/spec/elasticsearch/model/adapter_spec.rb +1 -1
  46. data/spec/elasticsearch/model/adapters/active_record/associations_spec.rb +1 -1
  47. data/spec/elasticsearch/model/adapters/active_record/basic_spec.rb +1 -1
  48. data/spec/elasticsearch/model/adapters/active_record/dynamic_index_name_spec.rb +1 -1
  49. data/spec/elasticsearch/model/adapters/active_record/import_spec.rb +2 -13
  50. data/spec/elasticsearch/model/adapters/active_record/multi_model_spec.rb +1 -1
  51. data/spec/elasticsearch/model/adapters/active_record/namespaced_model_spec.rb +1 -1
  52. data/spec/elasticsearch/model/adapters/active_record/pagination_spec.rb +1 -1
  53. data/spec/elasticsearch/model/adapters/active_record/parent_child_spec.rb +1 -1
  54. data/spec/elasticsearch/model/adapters/active_record/serialization_spec.rb +1 -1
  55. data/spec/elasticsearch/model/adapters/active_record_spec.rb +1 -1
  56. data/spec/elasticsearch/model/adapters/default_spec.rb +1 -1
  57. data/spec/elasticsearch/model/adapters/mongoid/basic_spec.rb +1 -1
  58. data/spec/elasticsearch/model/adapters/mongoid/multi_model_spec.rb +12 -12
  59. data/spec/elasticsearch/model/adapters/mongoid_spec.rb +1 -1
  60. data/spec/elasticsearch/model/adapters/multiple_spec.rb +1 -1
  61. data/spec/elasticsearch/model/callbacks_spec.rb +1 -1
  62. data/spec/elasticsearch/model/client_spec.rb +4 -4
  63. data/spec/elasticsearch/model/hash_wrapper_spec.rb +1 -1
  64. data/spec/elasticsearch/model/importing_spec.rb +13 -1
  65. data/spec/elasticsearch/model/indexing_spec.rb +17 -42
  66. data/spec/elasticsearch/model/module_spec.rb +3 -2
  67. data/spec/elasticsearch/model/multimodel_spec.rb +1 -1
  68. data/spec/elasticsearch/model/naming_spec.rb +1 -1
  69. data/spec/elasticsearch/model/proxy_spec.rb +10 -2
  70. data/spec/elasticsearch/model/response/aggregations_spec.rb +1 -1
  71. data/spec/elasticsearch/model/response/base_spec.rb +1 -1
  72. data/spec/elasticsearch/model/response/pagination/kaminari_spec.rb +1 -1
  73. data/spec/elasticsearch/model/response/pagination/will_paginate_spec.rb +1 -1
  74. data/spec/elasticsearch/model/response/records_spec.rb +1 -1
  75. data/spec/elasticsearch/model/response/response_spec.rb +1 -1
  76. data/spec/elasticsearch/model/response/result_spec.rb +1 -1
  77. data/spec/elasticsearch/model/response/results_spec.rb +13 -1
  78. data/spec/elasticsearch/model/searching_search_request_spec.rb +1 -1
  79. data/spec/elasticsearch/model/searching_spec.rb +1 -1
  80. data/spec/elasticsearch/model/serializing_spec.rb +1 -1
  81. data/spec/spec_helper.rb +11 -3
  82. data/spec/support/app/answer.rb +2 -2
  83. data/spec/support/app/article.rb +1 -1
  84. data/spec/support/app/article_for_pagination.rb +1 -1
  85. data/spec/support/app/article_no_type.rb +1 -1
  86. data/spec/support/app/article_with_custom_serialization.rb +1 -1
  87. data/spec/support/app/article_with_dynamic_index_name.rb +1 -1
  88. data/spec/support/app/author.rb +1 -1
  89. data/spec/support/app/authorship.rb +1 -1
  90. data/spec/support/app/category.rb +1 -1
  91. data/spec/support/app/comment.rb +1 -1
  92. data/spec/support/app/episode.rb +1 -1
  93. data/spec/support/app/image.rb +1 -1
  94. data/spec/support/app/import_article.rb +1 -1
  95. data/spec/support/app/mongoid_article.rb +1 -1
  96. data/spec/support/app/namespaced_book.rb +1 -1
  97. data/spec/support/app/parent_and_child_searchable.rb +1 -1
  98. data/spec/support/app/post.rb +1 -1
  99. data/spec/support/app/question.rb +1 -1
  100. data/spec/support/app/searchable.rb +1 -1
  101. data/spec/support/app/series.rb +1 -1
  102. data/spec/support/app.rb +2 -2
  103. metadata +40 -54
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -270,7 +270,7 @@ module Elasticsearch
270
270
  def index_exists?(options={})
271
271
  target_index = options[:index] || self.index_name
272
272
 
273
- self.client.indices.exists(index: target_index) rescue false
273
+ self.client.indices.exists(index: target_index, ignore: 404)
274
274
  end
275
275
 
276
276
  # Deletes the index with corresponding name
@@ -290,7 +290,7 @@ module Elasticsearch
290
290
  self.client.indices.delete index: target_index
291
291
  rescue Exception => e
292
292
  if e.class.to_s =~ /NotFound/ && options[:force]
293
- client.transport.logger.debug("[!!!] Index does not exist (#{e.class})") if client.transport.logger
293
+ client.transport.transport.logger.debug("[!!!] Index does not exist (#{e.class})") if client.transport.transport.logger
294
294
  nil
295
295
  else
296
296
  raise e
@@ -317,7 +317,7 @@ module Elasticsearch
317
317
  self.client.indices.refresh index: target_index
318
318
  rescue Exception => e
319
319
  if e.class.to_s =~ /NotFound/ && options[:force]
320
- client.transport.logger.debug("[!!!] Index does not exist (#{e.class})") if client.transport.logger
320
+ client.transport.transport.logger.debug("[!!!] Index does not exist (#{e.class})") if client.transport.transport.logger
321
321
  nil
322
322
  else
323
323
  raise e
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -85,7 +85,7 @@ module Elasticsearch
85
85
  # @return [Array] the list of document types used for retrieving documents
86
86
  #
87
87
  def document_type
88
- models.map { |m| m.document_type }
88
+ models.map { |m| m.document_type }.compact.presence
89
89
  end
90
90
 
91
91
  # Get the client common for all models
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -115,15 +115,18 @@ module Elasticsearch
115
115
  @target = target
116
116
  end
117
117
 
118
- # Delegate methods to `@target`
118
+ def ruby2_keywords(*) # :nodoc:
119
+ end if RUBY_VERSION < "2.7"
120
+
121
+ # Delegate methods to `@target`. As per [the Ruby 3.0 explanation for keyword arguments](https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/), the only way to work on Ruby <2.7, and 2.7, and 3.0+ is to use `ruby2_keywords`.
119
122
  #
120
- def method_missing(method_name, *arguments, &block)
123
+ ruby2_keywords def method_missing(method_name, *arguments, &block)
121
124
  target.respond_to?(method_name) ? target.__send__(method_name, *arguments, &block) : super
122
125
  end
123
126
 
124
127
  # Respond to methods from `@target`
125
128
  #
126
- def respond_to?(method_name, include_private = false)
129
+ def respond_to_missing?(method_name, include_private = false)
127
130
  target.respond_to?(method_name) || super
128
131
  end
129
132
 
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -42,6 +42,7 @@ module Elasticsearch
42
42
  response.response['hits']['hits'].map { |hit| Result.new(hit) }
43
43
  end
44
44
 
45
+ alias records results
45
46
  end
46
47
  end
47
48
  end
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -17,6 +17,6 @@
17
17
 
18
18
  module Elasticsearch
19
19
  module Model
20
- VERSION = "7.0.0"
20
+ VERSION = "7.2.1"
21
21
  end
22
22
  end
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -112,7 +112,7 @@ module Elasticsearch
112
112
  # Delegate common methods to the `__elasticsearch__` ClassMethodsProxy, unless they are defined already
113
113
  class << self
114
114
  METHODS.each do |method|
115
- delegate method, to: :__elasticsearch__ unless self.respond_to?(method)
115
+ delegate method, to: :__elasticsearch__ unless self.public_instance_methods.include?(method)
116
116
  end
117
117
  end
118
118
  end
@@ -127,7 +127,7 @@ module Elasticsearch
127
127
  # @example Get the client
128
128
  #
129
129
  # Elasticsearch::Model.client
130
- # => #<Elasticsearch::Transport::Client:0x007f96a7d0d000 @transport=... >
130
+ # => #<Elasticsearch::Client:0x007f96a7d0d000... >
131
131
  #
132
132
  def client
133
133
  @client ||= Elasticsearch::Client.new
@@ -138,7 +138,7 @@ module Elasticsearch
138
138
  # @example Configure (set) the client for all models
139
139
  #
140
140
  # Elasticsearch::Model.client = Elasticsearch::Client.new host: 'http://localhost:9200', tracer: true
141
- # => #<Elasticsearch::Transport::Client:0x007f96a6dd0d80 @transport=... >
141
+ # => #<Elasticsearch::Client:0x007f96a6dd0d80... >
142
142
  #
143
143
  # @note You have to set the client before you call Elasticsearch methods on the model,
144
144
  # or set it directly on the model; see {Elasticsearch::Model::Client::ClassMethods#client}
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -18,7 +18,6 @@
18
18
  require 'spec_helper'
19
19
 
20
20
  describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
21
-
22
21
  before(:all) do
23
22
  ActiveRecord::Schema.define(:version => 1) do
24
23
  create_table :import_articles do |t|
@@ -43,11 +42,9 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
43
42
  end
44
43
 
45
44
  describe '#import' do
46
-
47
45
  context 'when no search criteria is specified' do
48
-
49
46
  before do
50
- 10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
47
+ 10.times { |i| ImportArticle.create! title: 'Test', views: i.to_s }
51
48
  ImportArticle.import
52
49
  ImportArticle.__elasticsearch__.refresh_index!
53
50
  end
@@ -58,7 +55,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
58
55
  end
59
56
 
60
57
  context 'when batch size is specified' do
61
-
62
58
  before do
63
59
  10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
64
60
  end
@@ -82,7 +78,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
82
78
  end
83
79
 
84
80
  context 'when a scope is specified' do
85
-
86
81
  before do
87
82
  10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
88
83
  ImportArticle.import(scope: 'popular', force: true)
@@ -95,7 +90,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
95
90
  end
96
91
 
97
92
  context 'when a query is specified' do
98
-
99
93
  before do
100
94
  10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
101
95
  ImportArticle.import(query: -> { where('views >= 3') })
@@ -108,7 +102,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
108
102
  end
109
103
 
110
104
  context 'when there are invalid documents' do
111
-
112
105
  let!(:result) do
113
106
  10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
114
107
  new_article
@@ -132,7 +125,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
132
125
  end
133
126
 
134
127
  context 'when a transform proc is specified' do
135
-
136
128
  before do
137
129
  10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
138
130
  ImportArticle.import( transform: ->(a) {{ index: { data: { name: a.title, foo: 'BAR' } }}} )
@@ -151,7 +143,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
151
143
  end
152
144
 
153
145
  context 'when the model has a default scope' do
154
-
155
146
  around(:all) do |example|
156
147
  10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
157
148
  ImportArticle.instance_eval { default_scope { where('views > 3') } }
@@ -170,7 +161,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
170
161
  end
171
162
 
172
163
  context 'when there is a default scope and a query specified' do
173
-
174
164
  around(:all) do |example|
175
165
  10.times { |i| ImportArticle.create! title: 'Test', views: "#{i}" }
176
166
  ImportArticle.instance_eval { default_scope { where('views > 3') } }
@@ -189,7 +179,6 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Importing' do
189
179
  end
190
180
 
191
181
  context 'when the batch is empty' do
192
-
193
182
  before do
194
183
  ImportArticle.delete_all
195
184
  ImportArticle.import
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -24,10 +24,10 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Multimodel', if: test_mong
24
24
 
25
25
  begin
26
26
  ActiveRecord::Schema.define(:version => 1) do
27
- create_table Episode.table_name do |t|
28
- t.string :name
29
- t.datetime :created_at, :default => 'NOW()'
30
- end
27
+ create_table Episode.table_name do |t|
28
+ t.string :name
29
+ t.datetime :created_at, :default => 'NOW()'
30
+ end
31
31
  end
32
32
  rescue
33
33
  end
@@ -36,22 +36,22 @@ describe 'Elasticsearch::Model::Adapter::ActiveRecord Multimodel', if: test_mong
36
36
  before do
37
37
  clear_tables(Episode, Image)
38
38
  Episode.__elasticsearch__.create_index! force: true
39
- Episode.create name: "TheEpisode"
40
- Episode.create name: "A great Episode"
41
- Episode.create name: "The greatest Episode"
39
+ Episode.create name: 'TheEpisode'
40
+ Episode.create name: 'A great Episode'
41
+ Episode.create name: 'The greatest Episode'
42
42
  Episode.__elasticsearch__.refresh_index!
43
43
 
44
44
  Image.__elasticsearch__.create_index! force: true
45
- Image.create! name: "The Image"
46
- Image.create! name: "A great Image"
47
- Image.create! name: "The greatest Image"
45
+ Image.create! name: 'The Image'
46
+ Image.create! name: 'A great Image'
47
+ Image.create! name: 'The greatest Image'
48
48
  Image.__elasticsearch__.refresh_index!
49
49
  Image.__elasticsearch__.client.cluster.health wait_for_status: 'yellow'
50
50
  end
51
51
 
52
52
  after do
53
53
  [Episode, Image].each do |model|
54
- model.__elasticsearch__.client.delete_by_query(index: model.index_name, q: '*')
54
+ model.__elasticsearch__.client.delete_by_query(index: model.index_name, q: '*', body: {})
55
55
  model.delete_all
56
56
  model.__elasticsearch__.refresh_index!
57
57
  end
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -33,14 +33,14 @@ describe Elasticsearch::Model::Client do
33
33
  context 'when a class includes the client module class methods' do
34
34
 
35
35
  it 'defines the client module class methods on the model' do
36
- expect(DummyClientModel.client).to be_a(Elasticsearch::Transport::Client)
36
+ expect(DummyClientModel.client).to be_a(Elasticsearch::Client)
37
37
  end
38
38
  end
39
39
 
40
40
  context 'when a class includes the client module instance methods' do
41
41
 
42
42
  it 'defines the client module class methods on the model' do
43
- expect(DummyClientModel.new.client).to be_a(Elasticsearch::Transport::Client)
43
+ expect(DummyClientModel.new.client).to be_a(Elasticsearch::Client)
44
44
  end
45
45
  end
46
46
 
@@ -77,7 +77,7 @@ describe Elasticsearch::Model::Client do
77
77
  end
78
78
 
79
79
  it 'does not set the client on the class' do
80
- expect(DummyClientModel.client).to be_a(Elasticsearch::Transport::Client)
80
+ expect(DummyClientModel.client).to be_a(Elasticsearch::Client)
81
81
  end
82
82
  end
83
83
  end
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -6,7 +6,7 @@
6
6
  # not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
8
  #
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
  #
11
11
  # Unless required by applicable law or agreed to in writing,
12
12
  # software distributed under the License is distributed on an
@@ -227,5 +227,17 @@ describe Elasticsearch::Model::Importing do
227
227
  end
228
228
  end
229
229
  end
230
+
231
+ context 'when a pipeline is provided as an options' do
232
+
233
+ before do
234
+ expect(DummyImportingModel).to receive(:client).and_return(client)
235
+ expect(client).to receive(:bulk).with(body: nil, index: 'foo', type: 'foo', pipeline: 'my-pipeline').and_return(response)
236
+ end
237
+
238
+ it 'uses the pipeline option' do
239
+ expect(DummyImportingModel.import(pipeline: 'my-pipeline')).to eq(0)
240
+ end
241
+ end
230
242
  end
231
243
  end