elasticsearch-transport 7.1.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 +13 -9
- data/{LICENSE.txt → LICENSE} +0 -0
- data/README.md +175 -76
- data/Rakefile +1 -1
- data/elasticsearch-transport.gemspec +42 -60
- data/lib/elasticsearch/transport/client.rb +154 -57
- data/lib/elasticsearch/transport/meta_header.rb +135 -0
- data/lib/elasticsearch/transport/redacted.rb +1 -1
- data/lib/elasticsearch/transport/transport/base.rb +93 -18
- data/lib/elasticsearch/transport/transport/connections/collection.rb +3 -6
- data/lib/elasticsearch/transport/transport/connections/connection.rb +8 -6
- data/lib/elasticsearch/transport/transport/connections/selector.rb +18 -6
- data/lib/elasticsearch/transport/transport/errors.rb +1 -1
- data/lib/elasticsearch/transport/transport/http/curb.rb +26 -9
- data/lib/elasticsearch/transport/transport/http/faraday.rb +27 -5
- data/lib/elasticsearch/transport/transport/http/manticore.rb +25 -10
- data/lib/elasticsearch/transport/transport/loggable.rb +1 -1
- data/lib/elasticsearch/transport/transport/response.rb +1 -2
- data/lib/elasticsearch/transport/transport/serializer/multi_json.rb +1 -1
- data/lib/elasticsearch/transport/transport/sniffer.rb +20 -12
- data/lib/elasticsearch/transport/version.rb +2 -2
- data/lib/elasticsearch/transport.rb +1 -1
- data/lib/elasticsearch-transport.rb +1 -1
- data/spec/elasticsearch/connections/collection_spec.rb +266 -0
- data/spec/elasticsearch/connections/selector_spec.rb +174 -0
- data/spec/elasticsearch/transport/base_spec.rb +197 -13
- data/spec/elasticsearch/transport/client_spec.rb +945 -118
- data/spec/elasticsearch/transport/meta_header_spec.rb +265 -0
- data/spec/elasticsearch/transport/sniffer_spec.rb +1 -14
- data/spec/spec_helper.rb +25 -1
- data/test/integration/transport_test.rb +15 -2
- data/test/profile/client_benchmark_test.rb +1 -1
- data/test/test_helper.rb +1 -1
- data/test/unit/connection_test.rb +8 -3
- data/test/unit/response_test.rb +2 -2
- data/test/unit/serializer_test.rb +1 -1
- data/test/unit/transport_base_test.rb +2 -2
- data/test/unit/transport_curb_test.rb +2 -2
- data/test/unit/transport_faraday_test.rb +3 -3
- data/test/unit/transport_manticore_test.rb +30 -14
- metadata +87 -60
- data/test/unit/connection_collection_test.rb +0 -147
- data/test/unit/connection_selector_test.rb +0 -81
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
@@ -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
|
-
#
|
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
|
@@ -20,19 +20,23 @@ source 'https://rubygems.org'
|
|
20
20
|
# Specify your gem's dependencies in elasticsearch-transport.gemspec
|
21
21
|
gemspec
|
22
22
|
|
23
|
-
if File.exist? File.expand_path(
|
24
|
-
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
|
25
25
|
end
|
26
26
|
|
27
|
-
if File.exist? File.expand_path(
|
28
|
-
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
|
29
29
|
end
|
30
30
|
|
31
|
-
if File.exist? File.expand_path(
|
32
|
-
gem 'elasticsearch', :
|
31
|
+
if File.exist? File.expand_path('../../elasticsearch/elasticsearch.gemspec', __FILE__)
|
32
|
+
gem 'elasticsearch', path: File.expand_path('../../elasticsearch', __FILE__), require: false
|
33
33
|
end
|
34
34
|
|
35
|
-
group :development do
|
35
|
+
group :development, :test do
|
36
36
|
gem 'rspec'
|
37
|
-
|
37
|
+
if defined?(JRUBY_VERSION)
|
38
|
+
gem 'pry-nav'
|
39
|
+
else
|
40
|
+
gem 'pry-byebug'
|
41
|
+
end
|
38
42
|
end
|
data/{LICENSE.txt → LICENSE}
RENAMED
File without changes
|
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
|
|
@@ -106,6 +127,22 @@ Another way to configure the URL(s) is to export the `ELASTICSEARCH_URL` variabl
|
|
106
127
|
The client will automatically round-robin across the hosts
|
107
128
|
(unless you select or implement a different [connection selector](#connection-selector)).
|
108
129
|
|
130
|
+
### Default port
|
131
|
+
|
132
|
+
The default port is `9200`. Please specify a port for your host(s) if they differ from this default.
|
133
|
+
Please see below for an exception to this when connecting using an Elastic Cloud ID.
|
134
|
+
|
135
|
+
### Connect using an Elastic Cloud ID
|
136
|
+
|
137
|
+
If you are using [Elastic Cloud](https://www.elastic.co/cloud), you can provide your cloud id to the client.
|
138
|
+
You must supply your username and password separately, and optionally a port. If no port is supplied,
|
139
|
+
port 443 will be used.
|
140
|
+
|
141
|
+
Note: Do not enable sniffing when using Elastic Cloud. The nodes are behind a load balancer so
|
142
|
+
Elastic Cloud will take care of everything for you.
|
143
|
+
|
144
|
+
Elasticsearch::Client.new(cloud_id: 'name:bG9jYWxob3N0JGFiY2QkZWZnaA==', user: 'elastic', password: 'changeme')
|
145
|
+
|
109
146
|
### Authentication
|
110
147
|
|
111
148
|
You can pass the authentication credentials, scheme and port in the host configuration hash:
|
@@ -128,35 +165,114 @@ use the `transport_options` option:
|
|
128
165
|
Elasticsearch::Client.new url: 'https://username:password@example.com:9200',
|
129
166
|
transport_options: { ssl: { ca_file: '/path/to/cacert.pem' } }
|
130
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
|
+
|
131
188
|
### Logging
|
132
189
|
|
133
|
-
To log requests and responses to standard output with the default logger (an instance of Ruby's {::Logger} class),
|
134
|
-
|
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
|
+
```
|
135
202
|
|
136
|
-
Elasticsearch::Client.new log: true
|
137
203
|
|
138
204
|
To trace requests and responses in the _Curl_ format, set the `trace` argument:
|
139
205
|
|
140
|
-
|
206
|
+
```ruby
|
207
|
+
Elasticsearch::Client.new(trace: true)
|
208
|
+
```
|
141
209
|
|
142
210
|
You can customize the default logger or tracer:
|
143
211
|
|
212
|
+
```ruby
|
144
213
|
client.transport.logger.formatter = proc { |s, d, p, m| "#{s}: #{m}\n" }
|
145
214
|
client.transport.logger.level = Logger::INFO
|
215
|
+
```
|
146
216
|
|
147
|
-
Or, you can use a custom
|
217
|
+
Or, you can use a custom `::Logger` instance:
|
148
218
|
|
149
|
-
|
219
|
+
```ruby
|
220
|
+
Elasticsearch::Client.new(logger: Logger.new(STDERR))
|
221
|
+
```
|
150
222
|
|
151
223
|
You can pass the client any conforming logger implementation:
|
152
224
|
|
153
|
-
|
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:
|
154
249
|
|
155
|
-
|
156
|
-
|
157
|
-
|
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
|
255
|
+
|
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:
|
257
|
+
|
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
|
+
```
|
158
266
|
|
159
|
-
|
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
|
+
```
|
160
276
|
|
161
277
|
### Setting Timeouts
|
162
278
|
|
@@ -183,11 +299,16 @@ on a different host:
|
|
183
299
|
|
184
300
|
Elasticsearch::Client.new hosts: ['localhost:9200', 'localhost:9201'], retry_on_failure: true
|
185
301
|
|
186
|
-
You can specify how many times
|
187
|
-
(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`:
|
188
303
|
|
189
304
|
Elasticsearch::Client.new hosts: ['localhost:9200', 'localhost:9201'], retry_on_failure: 5
|
190
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
|
+
|
191
312
|
### Reloading Hosts
|
192
313
|
|
193
314
|
Elasticsearch by default dynamically discovers new nodes in the cluster. You can leverage this
|
@@ -252,25 +373,29 @@ preferring HTTP clients with support for persistent connections.
|
|
252
373
|
|
253
374
|
To use the [_Patron_](https://github.com/toland/patron) HTTP, for example, just require it:
|
254
375
|
|
255
|
-
|
376
|
+
```ruby
|
377
|
+
require 'patron'
|
378
|
+
```
|
256
379
|
|
257
380
|
Then, create a new client, and the _Patron_ gem will be used as the "driver":
|
258
381
|
|
259
|
-
|
382
|
+
```ruby
|
383
|
+
client = Elasticsearch::Client.new
|
260
384
|
|
261
|
-
|
262
|
-
|
385
|
+
client.transport.connections.first.connection.builder.adapter
|
386
|
+
# => Faraday::Adapter::Patron
|
263
387
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
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
|
269
393
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
394
|
+
# => Stiletoo : 24
|
395
|
+
# => Stiletoo : 24
|
396
|
+
# => Stiletoo : 24
|
397
|
+
# => ...
|
398
|
+
```
|
274
399
|
|
275
400
|
To use a specific adapter for _Faraday_, pass it as the `adapter` argument:
|
276
401
|
|
@@ -292,44 +417,35 @@ constructor, use the `transport_options` key:
|
|
292
417
|
|
293
418
|
To configure the _Faraday_ instance directly, use a block:
|
294
419
|
|
295
|
-
require '
|
296
|
-
require 'typhoeus/adapters/faraday'
|
420
|
+
require 'patron'
|
297
421
|
|
298
422
|
client = Elasticsearch::Client.new(host: 'localhost', port: '9200') do |f|
|
299
423
|
f.response :logger
|
300
|
-
f.adapter :
|
424
|
+
f.adapter :patron
|
301
425
|
end
|
302
426
|
|
303
|
-
You can use any standard Faraday middleware and plugins in the configuration block,
|
304
|
-
for example sign the requests for the [AWS Elasticsearch service](https://aws.amazon.com/elasticsearch-service/):
|
305
|
-
|
306
|
-
require 'faraday_middleware/aws_signers_v4'
|
307
|
-
|
308
|
-
client = Elasticsearch::Client.new url: 'https://search-my-cluster-abc123....es.amazonaws.com' do |f|
|
309
|
-
f.request :aws_signers_v4,
|
310
|
-
credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY'], ENV['AWS_SECRET_ACCESS_KEY']),
|
311
|
-
service_name: 'es',
|
312
|
-
region: 'us-east-1'
|
313
|
-
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.
|
314
428
|
|
315
429
|
You can also initialize the transport class yourself, and pass it to the client constructor
|
316
430
|
as the `transport` argument:
|
317
431
|
|
318
|
-
|
319
|
-
|
432
|
+
```ruby
|
433
|
+
require 'patron'
|
320
434
|
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
435
|
+
transport_configuration = lambda do |f|
|
436
|
+
f.response :logger
|
437
|
+
f.adapter :patron
|
438
|
+
end
|
325
439
|
|
326
|
-
|
327
|
-
|
328
|
-
|
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
|
+
```
|
329
448
|
|
330
|
-
# Pass the transport to the client
|
331
|
-
#
|
332
|
-
client = Elasticsearch::Client.new transport: transport
|
333
449
|
|
334
450
|
Instead of passing the transport to the constructor, you can inject it at run time:
|
335
451
|
|
@@ -458,21 +574,4 @@ can use Ruby 2.x syntax and features.
|
|
458
574
|
|
459
575
|
## License
|
460
576
|
|
461
|
-
This software is licensed under the Apache 2 license
|
462
|
-
|
463
|
-
Licensed to Elasticsearch B.V. under one or more contributor
|
464
|
-
license agreements. See the NOTICE file distributed with
|
465
|
-
this work for additional information regarding copyright
|
466
|
-
ownership. Elasticsearch B.V. licenses this file to you under
|
467
|
-
the Apache License, Version 2.0 (the "License"); you may
|
468
|
-
not use this file except in compliance with the License.
|
469
|
-
You may obtain a copy of the License at
|
470
|
-
|
471
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
472
|
-
|
473
|
-
Unless required by applicable law or agreed to in writing,
|
474
|
-
software distributed under the License is distributed on an
|
475
|
-
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
476
|
-
KIND, either express or implied. See the License for the
|
477
|
-
specific language governing permissions and limitations
|
478
|
-
under the License.
|
577
|
+
This software is licensed under the [Apache 2 license](./LICENSE).
|
data/Rakefile
CHANGED
@@ -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
|
-
#
|
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
|
-
#
|
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
|
@@ -21,73 +21,55 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
21
21
|
require 'elasticsearch/transport/version'
|
22
22
|
|
23
23
|
Gem::Specification.new do |s|
|
24
|
-
s.name =
|
24
|
+
s.name = 'elasticsearch-transport'
|
25
25
|
s.version = Elasticsearch::Transport::VERSION
|
26
|
-
s.authors = [
|
27
|
-
s.email = [
|
28
|
-
s.summary =
|
29
|
-
s.homepage =
|
30
|
-
s.license =
|
31
|
-
|
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
|
+
}
|
32
37
|
s.files = `git ls-files`.split($/)
|
33
38
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
34
39
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
35
|
-
s.require_paths = [
|
36
|
-
|
37
|
-
s.extra_rdoc_files = [ "README.md", "LICENSE.txt" ]
|
38
|
-
s.rdoc_options = [ "--charset=UTF-8" ]
|
39
|
-
|
40
|
-
s.required_ruby_version = '>= 1.9'
|
41
|
-
|
42
|
-
s.add_dependency "multi_json"
|
43
|
-
s.add_dependency "faraday"
|
44
|
-
|
45
|
-
if defined?(RUBY_VERSION) && RUBY_VERSION < '1.9'
|
46
|
-
s.add_dependency "system_timer"
|
47
|
-
end
|
48
|
-
|
49
|
-
s.add_development_dependency "bundler"
|
50
|
-
|
51
|
-
if defined?(RUBY_VERSION) && RUBY_VERSION > '1.9'
|
52
|
-
s.add_development_dependency "rake", "~> 11.1"
|
53
|
-
else
|
54
|
-
s.add_development_dependency "rake", "< 11.0"
|
55
|
-
end
|
56
|
-
|
57
|
-
s.add_development_dependency "ansi"
|
58
|
-
s.add_development_dependency "shoulda-context"
|
59
|
-
s.add_development_dependency "mocha"
|
60
|
-
s.add_development_dependency "yard"
|
61
|
-
s.add_development_dependency "pry"
|
40
|
+
s.require_paths = ['lib']
|
62
41
|
|
63
|
-
|
64
|
-
s.
|
65
|
-
s.add_development_dependency "patron" unless defined? JRUBY_VERSION
|
66
|
-
s.add_development_dependency "typhoeus", '~> 0.6'
|
67
|
-
s.add_development_dependency "net-http-persistent"
|
68
|
-
s.add_development_dependency "manticore", '~> 0.6' if defined? JRUBY_VERSION
|
69
|
-
s.add_development_dependency "hashie"
|
42
|
+
s.extra_rdoc_files = [ 'README.md', 'LICENSE' ]
|
43
|
+
s.rdoc_options = [ '--charset=UTF-8' ]
|
70
44
|
|
71
|
-
|
72
|
-
if defined?(RUBY_VERSION) && RUBY_VERSION < '1.9'
|
73
|
-
s.add_development_dependency "test-unit", '~> 2'
|
74
|
-
s.add_development_dependency "json", '~> 1.8'
|
75
|
-
end
|
45
|
+
s.required_ruby_version = '>= 2.4'
|
76
46
|
|
77
|
-
|
78
|
-
|
79
|
-
s.add_development_dependency "minitest-reporters"
|
80
|
-
s.add_development_dependency "elasticsearch-extensions"
|
81
|
-
s.add_development_dependency "ruby-prof" unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
82
|
-
s.add_development_dependency "require-prof" unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
83
|
-
s.add_development_dependency "simplecov"
|
84
|
-
s.add_development_dependency "simplecov-rcov"
|
85
|
-
s.add_development_dependency "cane"
|
86
|
-
end
|
47
|
+
s.add_dependency 'multi_json'
|
48
|
+
s.add_dependency 'faraday', '~> 1'
|
87
49
|
|
88
|
-
|
89
|
-
|
90
|
-
|
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'
|
91
73
|
|
92
74
|
s.description = <<-DESC.gsub(/^ /, '')
|
93
75
|
Ruby client for Elasticsearch. See the `elasticsearch` gem for full integration.
|