elasticsearch-transport 7.5.0 → 7.13.3
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.
- checksums.yaml +4 -4
- data/Gemfile +28 -11
- data/README.md +158 -58
- data/Rakefile +16 -3
- data/elasticsearch-transport.gemspec +57 -63
- data/lib/elasticsearch/transport/client.rb +150 -56
- data/lib/elasticsearch/transport/meta_header.rb +135 -0
- data/lib/elasticsearch/transport/redacted.rb +16 -3
- data/lib/elasticsearch/transport/transport/base.rb +32 -12
- data/lib/elasticsearch/transport/transport/connections/collection.rb +18 -8
- data/lib/elasticsearch/transport/transport/connections/connection.rb +23 -8
- data/lib/elasticsearch/transport/transport/connections/selector.rb +16 -3
- data/lib/elasticsearch/transport/transport/errors.rb +16 -3
- data/lib/elasticsearch/transport/transport/http/curb.rb +16 -3
- data/lib/elasticsearch/transport/transport/http/faraday.rb +27 -6
- data/lib/elasticsearch/transport/transport/http/manticore.rb +16 -3
- data/lib/elasticsearch/transport/transport/loggable.rb +16 -3
- data/lib/elasticsearch/transport/transport/response.rb +16 -4
- data/lib/elasticsearch/transport/transport/serializer/multi_json.rb +16 -3
- data/lib/elasticsearch/transport/transport/sniffer.rb +35 -15
- data/lib/elasticsearch/transport/version.rb +17 -4
- data/lib/elasticsearch/transport.rb +16 -3
- data/lib/elasticsearch-transport.rb +16 -3
- data/spec/elasticsearch/connections/collection_spec.rb +28 -3
- data/spec/elasticsearch/connections/selector_spec.rb +16 -3
- data/spec/elasticsearch/transport/base_spec.rb +60 -38
- data/spec/elasticsearch/transport/client_spec.rb +628 -132
- data/spec/elasticsearch/transport/meta_header_spec.rb +265 -0
- data/spec/elasticsearch/transport/sniffer_spec.rb +16 -16
- data/spec/spec_helper.rb +19 -1
- data/test/integration/transport_test.rb +30 -4
- data/test/profile/client_benchmark_test.rb +16 -3
- data/test/test_helper.rb +16 -3
- data/test/unit/connection_test.rb +23 -5
- data/test/unit/response_test.rb +17 -4
- data/test/unit/serializer_test.rb +16 -3
- data/test/unit/transport_base_test.rb +17 -4
- data/test/unit/transport_curb_test.rb +16 -3
- data/test/unit/transport_faraday_test.rb +18 -5
- data/test/unit/transport_manticore_test.rb +29 -16
- metadata +70 -69
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a045f07e51e54095cdd4d050a786070b35eadc7356b5167c99da881738cf5607
|
4
|
+
data.tar.gz: 854f2d899cdbbb184ce945a6b6dfa0a1f7f463bcf3d818c4e7f66a28ca81a504
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89c3b0674a119afb4aa397bacf6282bd301862ca4a5aa107b0789c93493644f678414587dd695e3210fdbe8afaed6bf9db8a10ee1a3597767211afb2fb4d4da4
|
7
|
+
data.tar.gz: 6706d0c3441f9eed32b7e930e2cd808774bb8de1083109a6681a1433929dc407f324e97bdbaf1bf3dce9c452fc527abc3cbd7ccd071cfbff46977a93af31ba5d
|
data/Gemfile
CHANGED
@@ -1,25 +1,42 @@
|
|
1
|
-
# Licensed to Elasticsearch B.V under one or more
|
2
|
-
#
|
3
|
-
#
|
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.
|
4
17
|
|
5
18
|
source 'https://rubygems.org'
|
6
19
|
|
7
20
|
# Specify your gem's dependencies in elasticsearch-transport.gemspec
|
8
21
|
gemspec
|
9
22
|
|
10
|
-
if File.exist? File.expand_path(
|
11
|
-
gem 'elasticsearch-api', :
|
23
|
+
if File.exist? File.expand_path('../../elasticsearch-api/elasticsearch-api.gemspec', __FILE__)
|
24
|
+
gem 'elasticsearch-api', path: File.expand_path('../../elasticsearch-api', __FILE__), require: false
|
12
25
|
end
|
13
26
|
|
14
|
-
if File.exist? File.expand_path(
|
15
|
-
gem 'elasticsearch-extensions', :
|
27
|
+
if File.exist? File.expand_path('../../elasticsearch-extensions/elasticsearch-extensions.gemspec', __FILE__)
|
28
|
+
gem 'elasticsearch-extensions', path: File.expand_path('../../elasticsearch-extensions', __FILE__), require: false
|
16
29
|
end
|
17
30
|
|
18
|
-
if File.exist? File.expand_path(
|
19
|
-
gem 'elasticsearch', :
|
31
|
+
if File.exist? File.expand_path('../../elasticsearch/elasticsearch.gemspec', __FILE__)
|
32
|
+
gem 'elasticsearch', path: File.expand_path('../../elasticsearch', __FILE__), require: false
|
20
33
|
end
|
21
34
|
|
22
|
-
group :development do
|
35
|
+
group :development, :test do
|
23
36
|
gem 'rspec'
|
24
|
-
|
37
|
+
if defined?(JRUBY_VERSION)
|
38
|
+
gem 'pry-nav'
|
39
|
+
else
|
40
|
+
gem 'pry-byebug'
|
41
|
+
end
|
25
42
|
end
|
data/README.md
CHANGED
@@ -28,12 +28,16 @@ Features overview:
|
|
28
28
|
* Node reloading (based on cluster state) on errors or on demand
|
29
29
|
|
30
30
|
For optimal performance, use a HTTP library which supports persistent ("keep-alive") connections,
|
31
|
-
such as [Typhoeus](https://github.com/typhoeus/typhoeus).
|
32
|
-
Just require the library (`require '
|
33
|
-
|
34
|
-
|
35
|
-
[
|
36
|
-
[
|
31
|
+
such as [patron](https://github.com/toland/patron) or [Typhoeus](https://github.com/typhoeus/typhoeus).
|
32
|
+
Just require the library (`require 'patron'`) in your code, and it will be automatically used.
|
33
|
+
|
34
|
+
Currently these libraries will be automatically detected and used:
|
35
|
+
- [Patron](https://github.com/toland/patron)
|
36
|
+
- [Typhoeus](https://github.com/typhoeus/typhoeus)
|
37
|
+
- [HTTPClient](https://rubygems.org/gems/httpclient)
|
38
|
+
- [Net::HTTP::Persistent](https://rubygems.org/gems/net-http-persistent)
|
39
|
+
|
40
|
+
**Note on [Typhoeus](https://github.com/typhoeus/typhoeus)**: You need to use v1.4.0 or up since older versions are not compatible with Faraday 1.0.
|
37
41
|
|
38
42
|
For detailed information, see example configurations [below](#transport-implementations).
|
39
43
|
|
@@ -69,6 +73,23 @@ Full documentation is available at <http://rubydoc.info/gems/elasticsearch-trans
|
|
69
73
|
|
70
74
|
## Configuration
|
71
75
|
|
76
|
+
* [Setting Hosts](#setting-hosts)
|
77
|
+
* [Default port](#default-port)
|
78
|
+
* [Connect using an Elastic Cloud ID](#connect-using-an-elastic-cloud-id)
|
79
|
+
* [Authentication](#authentication)
|
80
|
+
* [Logging](#logging)
|
81
|
+
* [Custom HTTP Headers](#custom-http-headers)
|
82
|
+
* [Identifying running tasks with X-Opaque-Id](#identifying-running-tasks-with-x-opaque-id)
|
83
|
+
* [Setting Timeouts](#setting-timeouts)
|
84
|
+
* [Randomizing Hosts](#randomizing-hosts)
|
85
|
+
* [Retrying on Failures](#retrying-on-failures)
|
86
|
+
* [Reloading Hosts](#reloading-hosts)
|
87
|
+
* [Connection Selector](#connection-selector)
|
88
|
+
* [Transport Implementations](#transport-implementations)
|
89
|
+
* [Serializer implementations](#serializer-implementations)
|
90
|
+
* [Exception Handling](#exception-handling)
|
91
|
+
* [Development and Community](#development-and-community)
|
92
|
+
|
72
93
|
The client supports many configurations options for setting up and managing connections,
|
73
94
|
configuring logging, customizing the transport library, etc.
|
74
95
|
|
@@ -115,7 +136,7 @@ Please see below for an exception to this when connecting using an Elastic Cloud
|
|
115
136
|
|
116
137
|
If you are using [Elastic Cloud](https://www.elastic.co/cloud), you can provide your cloud id to the client.
|
117
138
|
You must supply your username and password separately, and optionally a port. If no port is supplied,
|
118
|
-
port
|
139
|
+
port 443 will be used.
|
119
140
|
|
120
141
|
Note: Do not enable sniffing when using Elastic Cloud. The nodes are behind a load balancer so
|
121
142
|
Elastic Cloud will take care of everything for you.
|
@@ -144,35 +165,114 @@ use the `transport_options` option:
|
|
144
165
|
Elasticsearch::Client.new url: 'https://username:password@example.com:9200',
|
145
166
|
transport_options: { ssl: { ca_file: '/path/to/cacert.pem' } }
|
146
167
|
|
168
|
+
You can also use [**API Key authentication**](https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html):
|
169
|
+
|
170
|
+
``` ruby
|
171
|
+
Elasticsearch::Client.new(
|
172
|
+
host: host,
|
173
|
+
transport_options: transport_options,
|
174
|
+
api_key: credentials
|
175
|
+
)
|
176
|
+
```
|
177
|
+
|
178
|
+
Where credentials is either the base64 encoding of `id` and `api_key` joined by a colon or a hash with the `id` and `api_key`:
|
179
|
+
|
180
|
+
``` ruby
|
181
|
+
Elasticsearch::Client.new(
|
182
|
+
host: host,
|
183
|
+
transport_options: transport_options,
|
184
|
+
api_key: {id: 'my_id', api_key: 'my_api_key'}
|
185
|
+
)
|
186
|
+
```
|
187
|
+
|
147
188
|
### Logging
|
148
189
|
|
149
|
-
To log requests and responses to standard output with the default logger (an instance of Ruby's {::Logger} class),
|
150
|
-
|
190
|
+
To log requests and responses to standard output with the default logger (an instance of Ruby's {::Logger} class), set the `log` argument to true:
|
191
|
+
|
192
|
+
```ruby
|
193
|
+
Elasticsearch::Client.new(log: true)
|
194
|
+
```
|
195
|
+
|
196
|
+
You can also use [ecs-logging](https://github.com/elastic/ecs-logging-ruby). `ecs-logging` is a set of libraries that allows you to transform your application logs to structured logs that comply with the [Elastic Common Schema (ECS)](https://www.elastic.co/guide/en/ecs/current/ecs-reference.html):
|
197
|
+
|
198
|
+
```ruby
|
199
|
+
logger = EcsLogging::Logger.new($stdout)
|
200
|
+
Elasticsearch::Client.new(logger: logger)
|
201
|
+
```
|
151
202
|
|
152
|
-
Elasticsearch::Client.new log: true
|
153
203
|
|
154
204
|
To trace requests and responses in the _Curl_ format, set the `trace` argument:
|
155
205
|
|
156
|
-
|
206
|
+
```ruby
|
207
|
+
Elasticsearch::Client.new(trace: true)
|
208
|
+
```
|
157
209
|
|
158
210
|
You can customize the default logger or tracer:
|
159
211
|
|
212
|
+
```ruby
|
160
213
|
client.transport.logger.formatter = proc { |s, d, p, m| "#{s}: #{m}\n" }
|
161
214
|
client.transport.logger.level = Logger::INFO
|
215
|
+
```
|
162
216
|
|
163
217
|
Or, you can use a custom `::Logger` instance:
|
164
218
|
|
165
|
-
|
219
|
+
```ruby
|
220
|
+
Elasticsearch::Client.new(logger: Logger.new(STDERR))
|
221
|
+
```
|
166
222
|
|
167
223
|
You can pass the client any conforming logger implementation:
|
168
224
|
|
169
|
-
|
225
|
+
```ruby
|
226
|
+
require 'logging' # https://github.com/TwP/logging/
|
227
|
+
|
228
|
+
log = Logging.logger['elasticsearch']
|
229
|
+
log.add_appenders Logging.appenders.stdout
|
230
|
+
log.level = :info
|
231
|
+
|
232
|
+
client = Elasticsearch::Client.new(logger: log)
|
233
|
+
```
|
234
|
+
|
235
|
+
### Custom HTTP Headers
|
236
|
+
|
237
|
+
You can set a custom HTTP header on the client's initializer:
|
238
|
+
|
239
|
+
```ruby
|
240
|
+
client = Elasticsearch::Client.new(
|
241
|
+
transport_options: {
|
242
|
+
headers:
|
243
|
+
{user_agent: "My App"}
|
244
|
+
}
|
245
|
+
)
|
246
|
+
```
|
247
|
+
|
248
|
+
You can also pass in `headers` as a parameter to any of the API Endpoints to set custom headers for the request:
|
249
|
+
|
250
|
+
```ruby
|
251
|
+
client.search(index: 'myindex', q: 'title:test', headers: {user_agent: "My App"})
|
252
|
+
```
|
253
|
+
|
254
|
+
### Identifying running tasks with X-Opaque-Id
|
170
255
|
|
171
|
-
|
172
|
-
log.add_appenders Logging.appenders.stdout
|
173
|
-
log.level = :info
|
256
|
+
The X-Opaque-Id header allows to track certain calls, or associate certain tasks with the client that started them ([more on the Elasticsearch docs](https://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html#_identifying_running_tasks)). To use this feature, you need to set an id for `opaque_id` on the client on each request. Example:
|
174
257
|
|
175
|
-
|
258
|
+
```ruby
|
259
|
+
client = Elasticsearch::Client.new
|
260
|
+
client.search(index: 'myindex', q: 'title:test', opaque_id: '123456')
|
261
|
+
```
|
262
|
+
The search request will include the following HTTP Header:
|
263
|
+
```
|
264
|
+
X-Opaque-Id: 123456
|
265
|
+
```
|
266
|
+
|
267
|
+
You can also set a prefix for X-Opaque-Id when initializing the client. This will be prepended to the id you set before each request if you're using X-Opaque-Id. Example:
|
268
|
+
```ruby
|
269
|
+
client = Elasticsearch::Client.new(opaque_id_prefix: 'eu-west1')
|
270
|
+
client.search(index: 'myindex', q: 'title:test', opaque_id: '123456')
|
271
|
+
```
|
272
|
+
The request will include the following HTTP Header:
|
273
|
+
```
|
274
|
+
X-Opaque-Id: eu-west1_123456
|
275
|
+
```
|
176
276
|
|
177
277
|
### Setting Timeouts
|
178
278
|
|
@@ -199,11 +299,16 @@ on a different host:
|
|
199
299
|
|
200
300
|
Elasticsearch::Client.new hosts: ['localhost:9200', 'localhost:9201'], retry_on_failure: true
|
201
301
|
|
202
|
-
You can specify how many times
|
203
|
-
(the default is 3 times):
|
302
|
+
By default, the client will retry the request 3 times. You can specify how many times to retry before it raises an exception by passing a number to `retry_on_failure`:
|
204
303
|
|
205
304
|
Elasticsearch::Client.new hosts: ['localhost:9200', 'localhost:9201'], retry_on_failure: 5
|
206
305
|
|
306
|
+
These two parameters can also be used together:
|
307
|
+
|
308
|
+
```ruby
|
309
|
+
Elasticsearch::Client.new hosts: ['localhost:9200', 'localhost:9201'], retry_on_status: [502, 503], retry_on_failure: 10
|
310
|
+
```
|
311
|
+
|
207
312
|
### Reloading Hosts
|
208
313
|
|
209
314
|
Elasticsearch by default dynamically discovers new nodes in the cluster. You can leverage this
|
@@ -268,25 +373,29 @@ preferring HTTP clients with support for persistent connections.
|
|
268
373
|
|
269
374
|
To use the [_Patron_](https://github.com/toland/patron) HTTP, for example, just require it:
|
270
375
|
|
271
|
-
|
376
|
+
```ruby
|
377
|
+
require 'patron'
|
378
|
+
```
|
272
379
|
|
273
380
|
Then, create a new client, and the _Patron_ gem will be used as the "driver":
|
274
381
|
|
275
|
-
|
382
|
+
```ruby
|
383
|
+
client = Elasticsearch::Client.new
|
276
384
|
|
277
|
-
|
278
|
-
|
385
|
+
client.transport.connections.first.connection.builder.adapter
|
386
|
+
# => Faraday::Adapter::Patron
|
279
387
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
388
|
+
10.times do
|
389
|
+
client.nodes.stats(metric: 'http')['nodes'].values.each do |n|
|
390
|
+
puts "#{n['name']} : #{n['http']['total_opened']}"
|
391
|
+
end
|
392
|
+
end
|
285
393
|
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
394
|
+
# => Stiletoo : 24
|
395
|
+
# => Stiletoo : 24
|
396
|
+
# => Stiletoo : 24
|
397
|
+
# => ...
|
398
|
+
```
|
290
399
|
|
291
400
|
To use a specific adapter for _Faraday_, pass it as the `adapter` argument:
|
292
401
|
|
@@ -308,44 +417,35 @@ constructor, use the `transport_options` key:
|
|
308
417
|
|
309
418
|
To configure the _Faraday_ instance directly, use a block:
|
310
419
|
|
311
|
-
require '
|
312
|
-
require 'typhoeus/adapters/faraday'
|
420
|
+
require 'patron'
|
313
421
|
|
314
422
|
client = Elasticsearch::Client.new(host: 'localhost', port: '9200') do |f|
|
315
423
|
f.response :logger
|
316
|
-
f.adapter :
|
424
|
+
f.adapter :patron
|
317
425
|
end
|
318
426
|
|
319
|
-
You can use any standard Faraday middleware and plugins in the configuration block,
|
320
|
-
for example sign the requests for the [AWS Elasticsearch service](https://aws.amazon.com/elasticsearch-service/):
|
321
|
-
|
322
|
-
require 'faraday_middleware/aws_signers_v4'
|
323
|
-
|
324
|
-
client = Elasticsearch::Client.new url: 'https://search-my-cluster-abc123....es.amazonaws.com' do |f|
|
325
|
-
f.request :aws_signers_v4,
|
326
|
-
credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY'], ENV['AWS_SECRET_ACCESS_KEY']),
|
327
|
-
service_name: 'es',
|
328
|
-
region: 'us-east-1'
|
329
|
-
end
|
427
|
+
You can use any standard Faraday middleware and plugins in the configuration block, for example sign the requests for the [AWS Elasticsearch service](https://aws.amazon.com/elasticsearch-service/). See [the AWS documentation](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-request-signing.html#es-request-signing-ruby) for an example.
|
330
428
|
|
331
429
|
You can also initialize the transport class yourself, and pass it to the client constructor
|
332
430
|
as the `transport` argument:
|
333
431
|
|
334
|
-
|
335
|
-
|
432
|
+
```ruby
|
433
|
+
require 'patron'
|
336
434
|
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
435
|
+
transport_configuration = lambda do |f|
|
436
|
+
f.response :logger
|
437
|
+
f.adapter :patron
|
438
|
+
end
|
341
439
|
|
342
|
-
|
343
|
-
|
344
|
-
|
440
|
+
transport = Elasticsearch::Transport::Transport::HTTP::Faraday.new \
|
441
|
+
hosts: [ { host: 'localhost', port: '9200' } ],
|
442
|
+
&transport_configuration
|
443
|
+
|
444
|
+
# Pass the transport to the client
|
445
|
+
#
|
446
|
+
client = Elasticsearch::Client.new transport: transport
|
447
|
+
```
|
345
448
|
|
346
|
-
# Pass the transport to the client
|
347
|
-
#
|
348
|
-
client = Elasticsearch::Client.new transport: transport
|
349
449
|
|
350
450
|
Instead of passing the transport to the constructor, you can inject it at run time:
|
351
451
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,19 @@
|
|
1
|
-
# Licensed to Elasticsearch B.V under one or more
|
2
|
-
#
|
3
|
-
#
|
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.
|
4
17
|
|
5
18
|
require "bundler/gem_tasks"
|
6
19
|
|
@@ -1,6 +1,19 @@
|
|
1
|
-
# Licensed to Elasticsearch B.V under one or more
|
2
|
-
#
|
3
|
-
#
|
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.
|
4
17
|
|
5
18
|
# coding: utf-8
|
6
19
|
lib = File.expand_path('../lib', __FILE__)
|
@@ -8,74 +21,55 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
8
21
|
require 'elasticsearch/transport/version'
|
9
22
|
|
10
23
|
Gem::Specification.new do |s|
|
11
|
-
s.name =
|
24
|
+
s.name = 'elasticsearch-transport'
|
12
25
|
s.version = Elasticsearch::Transport::VERSION
|
13
|
-
s.authors = [
|
14
|
-
s.email = [
|
15
|
-
s.summary =
|
16
|
-
s.homepage =
|
17
|
-
s.license =
|
18
|
-
|
26
|
+
s.authors = ['Karel Minarik']
|
27
|
+
s.email = ['karel.minarik@elasticsearch.org']
|
28
|
+
s.summary = 'Ruby client for Elasticsearch.'
|
29
|
+
s.homepage = 'https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/7.x/index.html'
|
30
|
+
s.license = 'Apache-2.0'
|
31
|
+
s.metadata = {
|
32
|
+
'homepage_uri' => 'https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/7.x/index.html',
|
33
|
+
'changelog_uri' => 'https://github.com/elastic/elasticsearch-ruby/blob/7.x/CHANGELOG.md',
|
34
|
+
'source_code_uri' => 'https://github.com/elastic/elasticsearch-ruby/tree/7.x/elasticsearch-transport',
|
35
|
+
'bug_tracker_uri' => 'https://github.com/elastic/elasticsearch-ruby/issues'
|
36
|
+
}
|
19
37
|
s.files = `git ls-files`.split($/)
|
20
38
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
39
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
22
|
-
s.require_paths = [
|
23
|
-
|
24
|
-
s.extra_rdoc_files = [ "README.md", "LICENSE" ]
|
25
|
-
s.rdoc_options = [ "--charset=UTF-8" ]
|
26
|
-
|
27
|
-
s.required_ruby_version = '>= 1.9'
|
28
|
-
|
29
|
-
s.add_dependency "multi_json"
|
30
|
-
s.add_dependency "faraday", '>= 0.14', "< 1"
|
31
|
-
|
32
|
-
if defined?(RUBY_VERSION) && RUBY_VERSION < '1.9'
|
33
|
-
s.add_dependency "system_timer"
|
34
|
-
end
|
35
|
-
|
36
|
-
s.add_development_dependency "bundler"
|
37
|
-
|
38
|
-
if defined?(RUBY_VERSION) && RUBY_VERSION > '1.9'
|
39
|
-
s.add_development_dependency "rake", "~> 11.1"
|
40
|
-
else
|
41
|
-
s.add_development_dependency "rake", "< 11.0"
|
42
|
-
end
|
43
|
-
|
44
|
-
s.add_development_dependency "ansi"
|
45
|
-
s.add_development_dependency "shoulda-context"
|
46
|
-
s.add_development_dependency "mocha"
|
47
|
-
s.add_development_dependency "yard"
|
48
|
-
s.add_development_dependency "pry"
|
40
|
+
s.require_paths = ['lib']
|
49
41
|
|
50
|
-
|
51
|
-
s.
|
52
|
-
s.add_development_dependency "patron" unless defined? JRUBY_VERSION
|
53
|
-
s.add_development_dependency "typhoeus", '~> 0.6'
|
54
|
-
s.add_development_dependency "net-http-persistent"
|
55
|
-
s.add_development_dependency "httpclient"
|
56
|
-
s.add_development_dependency "manticore", '~> 0.6' if defined? JRUBY_VERSION
|
57
|
-
s.add_development_dependency "hashie"
|
42
|
+
s.extra_rdoc_files = [ 'README.md', 'LICENSE' ]
|
43
|
+
s.rdoc_options = [ '--charset=UTF-8' ]
|
58
44
|
|
59
|
-
|
60
|
-
if defined?(RUBY_VERSION) && RUBY_VERSION < '1.9'
|
61
|
-
s.add_development_dependency "test-unit", '~> 2'
|
62
|
-
s.add_development_dependency "json", '~> 1.8'
|
63
|
-
end
|
45
|
+
s.required_ruby_version = '>= 2.4'
|
64
46
|
|
65
|
-
|
66
|
-
|
67
|
-
s.add_development_dependency "minitest-reporters"
|
68
|
-
s.add_development_dependency "elasticsearch-extensions"
|
69
|
-
s.add_development_dependency "ruby-prof" unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
70
|
-
s.add_development_dependency "require-prof" unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
71
|
-
s.add_development_dependency "simplecov", '~> 0.17', '< 0.18'
|
72
|
-
s.add_development_dependency "simplecov-rcov"
|
73
|
-
s.add_development_dependency "cane"
|
74
|
-
end
|
47
|
+
s.add_dependency 'multi_json'
|
48
|
+
s.add_dependency 'faraday', '~> 1'
|
75
49
|
|
76
|
-
|
77
|
-
|
78
|
-
|
50
|
+
s.add_development_dependency 'cane'
|
51
|
+
s.add_development_dependency 'curb' unless defined? JRUBY_VERSION
|
52
|
+
s.add_development_dependency 'elasticsearch-extensions'
|
53
|
+
s.add_development_dependency 'minitest'
|
54
|
+
s.add_development_dependency 'minitest-reporters'
|
55
|
+
s.add_development_dependency 'rake', '~> 13'
|
56
|
+
s.add_development_dependency 'require-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
57
|
+
s.add_development_dependency 'ruby-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
58
|
+
s.add_development_dependency 'simplecov', '~> 0.17', '< 0.18'
|
59
|
+
s.add_development_dependency 'simplecov-rcov'
|
60
|
+
s.add_development_dependency 'ansi'
|
61
|
+
s.add_development_dependency 'hashie'
|
62
|
+
s.add_development_dependency 'httpclient'
|
63
|
+
s.add_development_dependency 'manticore', '~> 0.6' if defined? JRUBY_VERSION
|
64
|
+
s.add_development_dependency 'mocha'
|
65
|
+
s.add_development_dependency 'net-http-persistent'
|
66
|
+
s.add_development_dependency 'patron' unless defined? JRUBY_VERSION
|
67
|
+
s.add_development_dependency 'pry'
|
68
|
+
s.add_development_dependency 'shoulda-context'
|
69
|
+
s.add_development_dependency 'test-unit', '~> 2'
|
70
|
+
s.add_development_dependency 'typhoeus', '~> 1.4'
|
71
|
+
s.add_development_dependency 'yard'
|
72
|
+
s.add_development_dependency 'bundler'
|
79
73
|
|
80
74
|
s.description = <<-DESC.gsub(/^ /, '')
|
81
75
|
Ruby client for Elasticsearch. See the `elasticsearch` gem for full integration.
|