elasticsearch-api 7.5.0 → 7.6.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +8 -5
- data/Rakefile +1 -1
- data/elasticsearch-api.gemspec +34 -55
- data/lib/elasticsearch/api.rb +2 -1
- data/lib/elasticsearch/api/actions/bulk.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/health.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/indices.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/nodes.rb +1 -1
- data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +1 -1
- data/lib/elasticsearch/api/actions/delete_by_query.rb +2 -0
- data/lib/elasticsearch/api/actions/get_script_context.rb +26 -0
- data/lib/elasticsearch/api/actions/get_script_languages.rb +26 -0
- data/lib/elasticsearch/api/actions/indices/flush_synced.rb +1 -1
- data/lib/elasticsearch/api/actions/indices/put_mapping.rb +2 -4
- data/lib/elasticsearch/api/actions/indices/put_template.rb +1 -5
- data/lib/elasticsearch/api/actions/msearch_template.rb +3 -1
- data/lib/elasticsearch/api/actions/rank_eval.rb +5 -1
- data/lib/elasticsearch/api/actions/search_template.rb +3 -1
- data/lib/elasticsearch/api/version.rb +1 -1
- data/spec/README.md +61 -0
- data/spec/elasticsearch/api/rest_api_yaml_spec.rb +1 -18
- data/spec/rest_yaml_tests_helper.rb +4 -3
- data/spec/spec_helper.rb +5 -1
- data/utils/README.md +41 -0
- data/utils/thor/generate_source.rb +26 -21
- data/utils/thor/generator/endpoint_specifics.rb +7 -1
- data/utils/thor/generator/files_helper.rb +6 -6
- data/utils/thor/templates/method.erb +2 -2
- metadata +49 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af3380ec96ce20178b990da023be0a4a6bfe8b75958d3ce27313854583b944bf
|
4
|
+
data.tar.gz: 62d8fe93f4c2adffc6cb0b8e6eaaed09192fdadba06329073ba3e12a0ebb6875
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc0de7b154bcf04f158dfd0f498a3f6e36ff14c84045e82321305a769671de618e3a69b074d674c4eaa1aadc66f3f86268662bda8a28f3e58803a91fa9a1b64c
|
7
|
+
data.tar.gz: 92ce16042eec52783770d0601e966c367f013f73fa3559b5ee2e114eeab4b99b988b852ffdcbfadd7a35300d88172a96a51019c1e3cc2302e20a1417a5215382
|
data/Gemfile
CHANGED
@@ -8,19 +8,22 @@ source 'https://rubygems.org'
|
|
8
8
|
gemspec
|
9
9
|
|
10
10
|
if File.exist? File.expand_path("../../elasticsearch/elasticsearch.gemspec", __FILE__)
|
11
|
-
gem 'elasticsearch', :
|
11
|
+
gem 'elasticsearch', path: File.expand_path("../../elasticsearch", __FILE__), require: false
|
12
12
|
end
|
13
13
|
|
14
14
|
if File.exist? File.expand_path("../../elasticsearch-transport", __FILE__)
|
15
|
-
gem 'elasticsearch-transport', :
|
15
|
+
gem 'elasticsearch-transport', path: File.expand_path("../../elasticsearch-transport", __FILE__), require: true
|
16
16
|
end
|
17
17
|
|
18
18
|
if File.exist? File.expand_path("../../elasticsearch-extensions", __FILE__)
|
19
|
-
gem 'elasticsearch-extensions', :
|
19
|
+
gem 'elasticsearch-extensions', path: File.expand_path("../../elasticsearch-extensions", __FILE__), require: false
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
22
|
group :development do
|
24
23
|
gem 'rspec'
|
25
|
-
|
24
|
+
if defined?(JRUBY_VERSION)
|
25
|
+
gem 'pry-nav'
|
26
|
+
else
|
27
|
+
gem 'pry-byebug'
|
28
|
+
end
|
26
29
|
end
|
data/Rakefile
CHANGED
@@ -69,7 +69,7 @@ namespace :test do
|
|
69
69
|
es_version_info = client.info['version']
|
70
70
|
build_hash = es_version_info['build_hash']
|
71
71
|
cluster_running = true
|
72
|
-
rescue Faraday::
|
72
|
+
rescue Faraday::ConnectionFailed
|
73
73
|
STDERR.puts "[!] Test cluster not running?"
|
74
74
|
cluster_running = false
|
75
75
|
end
|
data/elasticsearch-api.gemspec
CHANGED
@@ -8,72 +8,51 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
8
8
|
require 'elasticsearch/api/version'
|
9
9
|
|
10
10
|
Gem::Specification.new do |s|
|
11
|
-
s.name =
|
11
|
+
s.name = 'elasticsearch-api'
|
12
12
|
s.version = Elasticsearch::API::VERSION
|
13
|
-
s.authors = [
|
14
|
-
s.email = [
|
15
|
-
s.summary =
|
16
|
-
s.homepage =
|
17
|
-
s.license =
|
13
|
+
s.authors = ['Karel Minarik']
|
14
|
+
s.email = ['karel.minarik@elasticsearch.org']
|
15
|
+
s.summary = 'Ruby API for Elasticsearch.'
|
16
|
+
s.homepage = 'https://github.com/elasticsearch/elasticsearch-ruby/tree/master/elasticsearch-api'
|
17
|
+
s.license = 'Apache-2.0'
|
18
18
|
|
19
19
|
s.files = `git ls-files`.split($/)
|
20
20
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
21
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
22
|
-
s.require_paths = [
|
22
|
+
s.require_paths = ['lib']
|
23
23
|
|
24
|
-
s.extra_rdoc_files = [
|
25
|
-
s.rdoc_options = [
|
24
|
+
s.extra_rdoc_files = [ 'README.md', 'LICENSE' ]
|
25
|
+
s.rdoc_options = [ '--charset=UTF-8' ]
|
26
26
|
|
27
|
-
s.required_ruby_version = '>=
|
27
|
+
s.required_ruby_version = '>= 2.4'
|
28
28
|
|
29
|
-
s.add_dependency
|
29
|
+
s.add_dependency 'multi_json'
|
30
30
|
|
31
|
-
s.add_development_dependency
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
s.add_development_dependency
|
40
|
-
s.add_development_dependency
|
41
|
-
|
42
|
-
|
43
|
-
s.add_development_dependency "minitest"
|
44
|
-
s.add_development_dependency "minitest-reporters"
|
45
|
-
s.add_development_dependency "elasticsearch-extensions"
|
46
|
-
end
|
47
|
-
|
48
|
-
s.add_development_dependency "ansi"
|
49
|
-
s.add_development_dependency "shoulda-context"
|
50
|
-
s.add_development_dependency "mocha"
|
51
|
-
s.add_development_dependency "yard"
|
52
|
-
s.add_development_dependency "pry"
|
31
|
+
s.add_development_dependency 'ansi'
|
32
|
+
s.add_development_dependency 'bundler'
|
33
|
+
s.add_development_dependency 'elasticsearch'
|
34
|
+
s.add_development_dependency 'elasticsearch-extensions'
|
35
|
+
s.add_development_dependency 'elasticsearch-transport'
|
36
|
+
s.add_development_dependency 'minitest'
|
37
|
+
s.add_development_dependency 'minitest-reporters'
|
38
|
+
s.add_development_dependency 'mocha'
|
39
|
+
s.add_development_dependency 'pry'
|
40
|
+
s.add_development_dependency 'rake', '~> 11.1'
|
41
|
+
s.add_development_dependency 'shoulda-context'
|
42
|
+
s.add_development_dependency 'yard'
|
53
43
|
|
54
44
|
# Gems for testing integrations
|
55
|
-
s.add_development_dependency
|
56
|
-
s.add_development_dependency
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
s.add_development_dependency "jbuilder"
|
67
|
-
s.add_development_dependency "escape_utils" unless defined? JRUBY_VERSION
|
68
|
-
s.add_development_dependency "simplecov", '~> 0.17', '< 0.18'
|
69
|
-
s.add_development_dependency "simplecov-rcov"
|
70
|
-
s.add_development_dependency "cane"
|
71
|
-
s.add_development_dependency "require-prof" unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
72
|
-
end
|
73
|
-
|
74
|
-
if defined?(RUBY_VERSION) && RUBY_VERSION > '2.2'
|
75
|
-
s.add_development_dependency "test-unit", '~> 2'
|
76
|
-
end
|
45
|
+
s.add_development_dependency 'jsonify'
|
46
|
+
s.add_development_dependency 'hashie'
|
47
|
+
|
48
|
+
s.add_development_dependency 'cane'
|
49
|
+
s.add_development_dependency 'escape_utils' unless defined? JRUBY_VERSION
|
50
|
+
s.add_development_dependency 'jbuilder'
|
51
|
+
s.add_development_dependency 'require-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
52
|
+
s.add_development_dependency 'simplecov', '~> 0.17', '< 0.18'
|
53
|
+
s.add_development_dependency 'simplecov-rcov'
|
54
|
+
s.add_development_dependency 'test-unit', '~> 2'
|
55
|
+
s.add_development_dependency 'ruby-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
77
56
|
|
78
57
|
s.description = <<-DESC.gsub(/^ /, '')
|
79
58
|
Ruby API for Elasticsearch. See the `elasticsearch` gem for full integration.
|
data/lib/elasticsearch/api.rb
CHANGED
@@ -32,7 +32,8 @@ module Elasticsearch
|
|
32
32
|
:format, # Search, Cat, ...
|
33
33
|
:pretty, # Pretty-print the response
|
34
34
|
:human, # Return numeric values in human readable format
|
35
|
-
:filter_path
|
35
|
+
:filter_path, # Filter the JSON response
|
36
|
+
:opaque_id # Use X-Opaque-Id
|
36
37
|
]
|
37
38
|
|
38
39
|
HTTP_GET = 'GET'.freeze
|
@@ -26,7 +26,7 @@ module Elasticsearch
|
|
26
26
|
|
27
27
|
method = Elasticsearch::API::HTTP_GET
|
28
28
|
path = "_cat/health"
|
29
|
-
params =
|
29
|
+
params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
|
30
30
|
params[:h] = Utils.__listify(params[:h]) if params[:h]
|
31
31
|
|
32
32
|
body = nil
|
@@ -11,7 +11,7 @@ module Elasticsearch
|
|
11
11
|
# @option arguments [List] :index A comma-separated list of index names to limit the returned information
|
12
12
|
# @option arguments [String] :format a short version of the Accept header, e.g. json, yaml
|
13
13
|
# @option arguments [String] :bytes The unit in which to display byte values
|
14
|
-
# (options: b,k,m,g)
|
14
|
+
# (options: b,k,kb,m,mb,g,gb,t,tb,p,pb)
|
15
15
|
|
16
16
|
# @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
|
17
17
|
# @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
|
@@ -13,7 +13,7 @@ module Elasticsearch
|
|
13
13
|
|
14
14
|
# @option arguments [String] :format a short version of the Accept header, e.g. json, yaml
|
15
15
|
# @option arguments [Boolean] :full_id Return the full node ID instead of the shortened version (default: false)
|
16
|
-
# @option arguments [Boolean] :local
|
16
|
+
# @option arguments [Boolean] :local Calculate the selected nodes using the local cluster state rather than the state from master node (default: false) *Deprecated*
|
17
17
|
# @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
|
18
18
|
# @option arguments [List] :h Comma-separated list of column names to display
|
19
19
|
# @option arguments [Boolean] :help Return help information
|
@@ -27,7 +27,7 @@ module Elasticsearch
|
|
27
27
|
|
28
28
|
method = Elasticsearch::API::HTTP_GET
|
29
29
|
path = "_cat/pending_tasks"
|
30
|
-
params =
|
30
|
+
params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
|
31
31
|
params[:h] = Utils.__listify(params[:h]) if params[:h]
|
32
32
|
|
33
33
|
body = nil
|
@@ -9,6 +9,7 @@ module Elasticsearch
|
|
9
9
|
#
|
10
10
|
# @option arguments [List] :index A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices (*Required*)
|
11
11
|
# @option arguments [List] :type A comma-separated list of document types to search; leave empty to perform the operation on all types
|
12
|
+
# @option arguments [String] :analyzer The analyzer to use for the query string
|
12
13
|
# @option arguments [Boolean] :analyze_wildcard Specify whether wildcard and prefix queries should be analyzed (default: false)
|
13
14
|
# @option arguments [String] :default_operator The default operator for query string query (AND or OR)
|
14
15
|
# (options: AND,OR)
|
@@ -85,6 +86,7 @@ module Elasticsearch
|
|
85
86
|
#
|
86
87
|
# @since 6.2.0
|
87
88
|
ParamsRegistry.register(:delete_by_query, [
|
89
|
+
:analyzer,
|
88
90
|
:analyze_wildcard,
|
89
91
|
:default_operator,
|
90
92
|
:df,
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Licensed to Elasticsearch B.V under one or more agreements.
|
2
|
+
# Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
|
3
|
+
# See the LICENSE file in the project root for more information
|
4
|
+
|
5
|
+
module Elasticsearch
|
6
|
+
module API
|
7
|
+
module Actions
|
8
|
+
# Returns all script contexts.
|
9
|
+
#
|
10
|
+
|
11
|
+
#
|
12
|
+
# @see [TODO]
|
13
|
+
#
|
14
|
+
def get_script_context(arguments = {})
|
15
|
+
arguments = arguments.clone
|
16
|
+
|
17
|
+
method = Elasticsearch::API::HTTP_GET
|
18
|
+
path = "_script_context"
|
19
|
+
params = {}
|
20
|
+
|
21
|
+
body = nil
|
22
|
+
perform_request(method, path, params, body).body
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Licensed to Elasticsearch B.V under one or more agreements.
|
2
|
+
# Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
|
3
|
+
# See the LICENSE file in the project root for more information
|
4
|
+
|
5
|
+
module Elasticsearch
|
6
|
+
module API
|
7
|
+
module Actions
|
8
|
+
# Returns available script types, languages and contexts
|
9
|
+
#
|
10
|
+
|
11
|
+
#
|
12
|
+
# @see [TODO]
|
13
|
+
#
|
14
|
+
def get_script_languages(arguments = {})
|
15
|
+
arguments = arguments.clone
|
16
|
+
|
17
|
+
method = Elasticsearch::API::HTTP_GET
|
18
|
+
path = "_script_language"
|
19
|
+
params = {}
|
20
|
+
|
21
|
+
body = nil
|
22
|
+
perform_request(method, path, params, body).body
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -6,7 +6,7 @@ module Elasticsearch
|
|
6
6
|
module API
|
7
7
|
module Indices
|
8
8
|
module Actions
|
9
|
-
# Performs a synced flush operation on one or more indices.
|
9
|
+
# Performs a synced flush operation on one or more indices. Synced flush is deprecated and will be removed in 8.0. Use flush instead
|
10
10
|
#
|
11
11
|
# @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string for all indices
|
12
12
|
# @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
|
@@ -39,12 +39,10 @@ module Elasticsearch
|
|
39
39
|
method = Elasticsearch::API::HTTP_PUT
|
40
40
|
path = if _index && _type
|
41
41
|
"#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_mappings"
|
42
|
+
elsif _index
|
43
|
+
"#{Utils.__listify(_index)}/_mapping"
|
42
44
|
elsif _type
|
43
45
|
"_mappings/#{Utils.__listify(_type)}"
|
44
|
-
elsif _index
|
45
|
-
"#{Utils.__listify(_index)}/_mappings"
|
46
|
-
else
|
47
|
-
"_mapping/#{Utils.__listify(_type)}"
|
48
46
|
end
|
49
47
|
params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
|
50
48
|
|
@@ -12,9 +12,7 @@ module Elasticsearch
|
|
12
12
|
# @option arguments [Boolean] :include_type_name Whether a type should be returned in the body of the mappings.
|
13
13
|
# @option arguments [Number] :order The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)
|
14
14
|
# @option arguments [Boolean] :create Whether the index template should only be added if new or can also replace an existing one
|
15
|
-
# @option arguments [Time] :timeout Explicit operation timeout
|
16
15
|
# @option arguments [Time] :master_timeout Specify timeout for connection to master
|
17
|
-
# @option arguments [Boolean] :flat_settings Return settings in flat format (default: false)
|
18
16
|
|
19
17
|
# @option arguments [Hash] :body The template definition (*Required*)
|
20
18
|
#
|
@@ -43,9 +41,7 @@ module Elasticsearch
|
|
43
41
|
:include_type_name,
|
44
42
|
:order,
|
45
43
|
:create,
|
46
|
-
:
|
47
|
-
:master_timeout,
|
48
|
-
:flat_settings
|
44
|
+
:master_timeout
|
49
45
|
].freeze)
|
50
46
|
end
|
51
47
|
end
|
@@ -15,6 +15,7 @@ module Elasticsearch
|
|
15
15
|
# @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
|
16
16
|
# @option arguments [Number] :max_concurrent_searches Controls the maximum number of concurrent searches the multi search api will execute
|
17
17
|
# @option arguments [Boolean] :rest_total_hits_as_int Indicates whether hits.total should be rendered as an integer or an object in the rest search response
|
18
|
+
# @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
|
18
19
|
|
19
20
|
# @option arguments [Hash] :body The request definitions (metadata-search request definition pairs), separated by newlines (*Required*)
|
20
21
|
#
|
@@ -65,7 +66,8 @@ module Elasticsearch
|
|
65
66
|
:search_type,
|
66
67
|
:typed_keys,
|
67
68
|
:max_concurrent_searches,
|
68
|
-
:rest_total_hits_as_int
|
69
|
+
:rest_total_hits_as_int,
|
70
|
+
:ccs_minimize_roundtrips
|
69
71
|
].freeze)
|
70
72
|
end
|
71
73
|
end
|
@@ -13,6 +13,9 @@ module Elasticsearch
|
|
13
13
|
# @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both.
|
14
14
|
# (options: open,closed,none,all)
|
15
15
|
|
16
|
+
# @option arguments [String] :search_type Search operation type
|
17
|
+
# (options: query_then_fetch,dfs_query_then_fetch)
|
18
|
+
|
16
19
|
# @option arguments [Hash] :body The ranking evaluation search definition, including search requests, document ratings and ranking metric definition. (*Required*)
|
17
20
|
#
|
18
21
|
# @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-rank-eval.html
|
@@ -42,7 +45,8 @@ module Elasticsearch
|
|
42
45
|
ParamsRegistry.register(:rank_eval, [
|
43
46
|
:ignore_unavailable,
|
44
47
|
:allow_no_indices,
|
45
|
-
:expand_wildcards
|
48
|
+
:expand_wildcards,
|
49
|
+
:search_type
|
46
50
|
].freeze)
|
47
51
|
end
|
48
52
|
end
|
@@ -25,6 +25,7 @@ module Elasticsearch
|
|
25
25
|
# @option arguments [Boolean] :profile Specify whether to profile the query execution
|
26
26
|
# @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
|
27
27
|
# @option arguments [Boolean] :rest_total_hits_as_int Indicates whether hits.total should be rendered as an integer or an object in the rest search response
|
28
|
+
# @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
|
28
29
|
|
29
30
|
# @option arguments [Hash] :body The search definition template and its params (*Required*)
|
30
31
|
#
|
@@ -73,7 +74,8 @@ module Elasticsearch
|
|
73
74
|
:explain,
|
74
75
|
:profile,
|
75
76
|
:typed_keys,
|
76
|
-
:rest_total_hits_as_int
|
77
|
+
:rest_total_hits_as_int,
|
78
|
+
:ccs_minimize_roundtrips
|
77
79
|
].freeze)
|
78
80
|
end
|
79
81
|
end
|
data/spec/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# Rest API YAML Spec Runner
|
2
|
+
|
3
|
+
The file that traverses the yaml files and loads a **TestFile** object per each of them:
|
4
|
+
`elasticsearch-api/spec/elasticsearch/api/rest_api_yaml_spec.rb`
|
5
|
+
|
6
|
+
You can use the SINGLE_TEST env variable to run just one test, or add code like this on the first line of the tests.each block:
|
7
|
+
```ruby
|
8
|
+
next unless file =~ /indices.put_mapping\/all_path_options_with_types.yml/
|
9
|
+
```
|
10
|
+
|
11
|
+
#### TestFile object
|
12
|
+
Class representing a single test file. Contains setup, teardown and tests.
|
13
|
+
`../api-spec-testing/test_file.rb`
|
14
|
+
|
15
|
+
#### Test object
|
16
|
+
Every single test in the test file is represented in the Test object.
|
17
|
+
`../api-spec-testing/test_file/test.rb`
|
18
|
+
|
19
|
+
#### TaskGroup objects
|
20
|
+
|
21
|
+
Tests are ordered in task groups, an array of TaskGroup objects.
|
22
|
+
`../api-spec-testing/test_file/task_group.rb`
|
23
|
+
|
24
|
+
Task Groups are a representation of a block of actions consisting of 'do' actions and their verifications. e.g.:
|
25
|
+
```yaml
|
26
|
+
- do:
|
27
|
+
index:
|
28
|
+
index: test-index
|
29
|
+
id: 1
|
30
|
+
body: { foo: bar }
|
31
|
+
|
32
|
+
- match: { _index: test-index }
|
33
|
+
- match: { _id: "1"}
|
34
|
+
- match: { _version: 1}
|
35
|
+
```
|
36
|
+
|
37
|
+
**Before** each test, the spec runner runs `clear_data` on the test_file. This clears indices, index templates, snapshots and repositories. For xpack it also clears roles, users, privileges, datafeeds, ml_jobs and more.
|
38
|
+
|
39
|
+
**After** each test, it runs the test file teardown and `clear_data` again.
|
40
|
+
|
41
|
+
For each TaskGroup, it sees what's in the task group definition and runs an expectation test.
|
42
|
+
|
43
|
+
# Rest YAML tests Helper
|
44
|
+
|
45
|
+
`elasticsearch-api/spec/rest_yaml_tests_helper.rb`
|
46
|
+
|
47
|
+
- `ADMIN_CLIENT` is defined here.
|
48
|
+
- `SINGLE_TEST` is defined here.
|
49
|
+
- Skipped tests are listed here
|
50
|
+
|
51
|
+
# Spec Helper
|
52
|
+
|
53
|
+
- `DEFAULT_CLIENT` is defined here
|
54
|
+
|
55
|
+
# RSpec Matchers
|
56
|
+
|
57
|
+
The tests use custom [RSpec Matchers](https://www.rubydoc.info/gems/rspec-expectations/RSpec/Matchers) defined in `api-spec-testing/rspec_matchers.rb`.
|
58
|
+
|
59
|
+
# Enable Logging
|
60
|
+
|
61
|
+
To enable logging, set the environment `QUIET` to false before running the tests. In CI, this is located in the [Dockerfile](https://github.com/elastic/elasticsearch-ruby/blob/master/.ci/Dockerfile). The environment variable is evaluated in the Rest YAML tests Helper file.
|
@@ -6,29 +6,23 @@ require 'spec_helper'
|
|
6
6
|
require 'rest_yaml_tests_helper'
|
7
7
|
|
8
8
|
describe 'Rest API YAML tests' do
|
9
|
-
|
9
|
+
# Traverse YAML files and create TestFile object:
|
10
10
|
REST_API_YAML_FILES.each do |file|
|
11
|
-
|
12
11
|
test_file = Elasticsearch::RestAPIYAMLTests::TestFile.new(file, REST_API_YAML_SKIP_FEATURES)
|
13
12
|
|
14
13
|
context "#{file.gsub("#{YAML_FILES_DIRECTORY}/", '')}" do
|
15
|
-
|
16
14
|
test_file.tests.each do |test|
|
17
15
|
|
18
16
|
context "#{test.description}" do
|
19
|
-
|
20
17
|
if test.skip_test?(ADMIN_CLIENT)
|
21
18
|
skip 'Test contains feature(s) not yet supported or version is not satisfied'
|
22
|
-
|
23
19
|
else
|
24
|
-
|
25
20
|
let(:client) do
|
26
21
|
DEFAULT_CLIENT
|
27
22
|
end
|
28
23
|
|
29
24
|
# Runs once before each test in a test file
|
30
25
|
before(:all) do
|
31
|
-
# Runs once before each test in a test file
|
32
26
|
Elasticsearch::RestAPIYAMLTests::TestFile.clear_data(ADMIN_CLIENT)
|
33
27
|
test_file.setup(ADMIN_CLIENT)
|
34
28
|
end
|
@@ -39,21 +33,18 @@ describe 'Rest API YAML tests' do
|
|
39
33
|
end
|
40
34
|
|
41
35
|
test.task_groups.each do |task_group|
|
42
|
-
|
43
36
|
before do
|
44
37
|
task_group.run(client)
|
45
38
|
end
|
46
39
|
|
47
40
|
# 'catch' is in the task group definition
|
48
41
|
if task_group.catch_exception?
|
49
|
-
|
50
42
|
it 'sends the request and throws the expected error' do
|
51
43
|
expect(task_group.exception).to match_error(task_group.expected_exception_message)
|
52
44
|
end
|
53
45
|
|
54
46
|
# 'match' on error description is in the task group definition
|
55
47
|
if task_group.has_match_clauses?
|
56
|
-
|
57
48
|
task_group.match_clauses.each do |match|
|
58
49
|
it 'contains the expected error in the request response' do
|
59
50
|
expect(task_group.exception.message).to match(Regexp.new(Regexp.escape(match['match'].values.first.to_s)))
|
@@ -64,7 +55,6 @@ describe 'Rest API YAML tests' do
|
|
64
55
|
|
65
56
|
# 'match' is in the task group definition
|
66
57
|
if task_group.has_match_clauses?
|
67
|
-
|
68
58
|
task_group.match_clauses.each do |match|
|
69
59
|
it "has the expected value (#{match['match'].values.join(',')}) in the response field (#{match['match'].keys.join(',')})" do
|
70
60
|
expect(task_group.response).to match_response(match['match'], test)
|
@@ -74,7 +64,6 @@ describe 'Rest API YAML tests' do
|
|
74
64
|
|
75
65
|
# 'length' is in the task group definition
|
76
66
|
if task_group.has_length_match_clauses?
|
77
|
-
|
78
67
|
task_group.length_match_clauses.each do |match|
|
79
68
|
it "the '#{match['length'].keys.join(',')}' field have the expected length" do
|
80
69
|
expect(task_group.response).to match_response_field_length(match['length'], test)
|
@@ -84,7 +73,6 @@ describe 'Rest API YAML tests' do
|
|
84
73
|
|
85
74
|
# 'is_true' is in the task group definition
|
86
75
|
if task_group.has_true_clauses?
|
87
|
-
|
88
76
|
task_group.true_clauses.each do |match|
|
89
77
|
it "sends the request and the '#{match['is_true']}' field is set to true" do
|
90
78
|
expect(task_group.response).to match_true_field(match['is_true'], test)
|
@@ -94,7 +82,6 @@ describe 'Rest API YAML tests' do
|
|
94
82
|
|
95
83
|
# 'is_false' is in the task group definition
|
96
84
|
if task_group.has_false_clauses?
|
97
|
-
|
98
85
|
task_group.false_clauses.each do |match|
|
99
86
|
it "sends the request and the '#{match['is_false']}' field is set to true" do
|
100
87
|
expect(task_group.response).to match_false_field(match['is_false'], test)
|
@@ -104,7 +91,6 @@ describe 'Rest API YAML tests' do
|
|
104
91
|
|
105
92
|
# 'gte' is in the task group definition
|
106
93
|
if task_group.has_gte_clauses?
|
107
|
-
|
108
94
|
task_group.gte_clauses.each do |match|
|
109
95
|
it "sends the request and the '#{match['gte']}' field is greater than or equal to the expected value" do
|
110
96
|
expect(task_group.response).to match_gte_field(match['gte'], test)
|
@@ -114,7 +100,6 @@ describe 'Rest API YAML tests' do
|
|
114
100
|
|
115
101
|
# 'gt' is in the task group definition
|
116
102
|
if task_group.has_gt_clauses?
|
117
|
-
|
118
103
|
task_group.gt_clauses.each do |match|
|
119
104
|
it "sends the request and the '#{match['gt']}' field is greater than the expected value" do
|
120
105
|
expect(task_group.response).to match_gt_field(match['gt'], test)
|
@@ -124,7 +109,6 @@ describe 'Rest API YAML tests' do
|
|
124
109
|
|
125
110
|
# 'lte' is in the task group definition
|
126
111
|
if task_group.has_lte_clauses?
|
127
|
-
|
128
112
|
task_group.lte_clauses.each do |match|
|
129
113
|
it "sends the request and the '#{match['lte']}' field is less than or equal to the expected value" do
|
130
114
|
expect(task_group.response).to match_lte_field(match['lte'], test)
|
@@ -134,7 +118,6 @@ describe 'Rest API YAML tests' do
|
|
134
118
|
|
135
119
|
# 'lt' is in the task group definition
|
136
120
|
if task_group.has_lt_clauses?
|
137
|
-
|
138
121
|
task_group.lt_clauses.each do |match|
|
139
122
|
it "sends the request and the '#{match['lt']}' field is less than the expected value" do
|
140
123
|
expect(task_group.response).to match_lt_field(match['lt'], test)
|
@@ -11,10 +11,11 @@ PROJECT_PATH = File.join(File.dirname(__FILE__), '..', '..')
|
|
11
11
|
|
12
12
|
if hosts = ELASTICSEARCH_URL
|
13
13
|
split_hosts = hosts.split(',').map do |host|
|
14
|
-
/(http\:\/\/)
|
14
|
+
/(http\:\/\/)?\S+/.match(host)
|
15
15
|
end
|
16
|
-
|
17
|
-
TEST_HOST
|
16
|
+
uri = URI.parse(split_hosts.first[0])
|
17
|
+
TEST_HOST = uri.host
|
18
|
+
TEST_PORT = uri.port
|
18
19
|
else
|
19
20
|
TEST_HOST, TEST_PORT = 'localhost', '9200'
|
20
21
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,11 @@
|
|
2
2
|
# Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
|
3
3
|
# See the LICENSE file in the project root for more information
|
4
4
|
|
5
|
-
|
5
|
+
if defined?(JRUBY_VERSION)
|
6
|
+
require 'pry-nav'
|
7
|
+
else
|
8
|
+
require 'pry-byebug'
|
9
|
+
end
|
6
10
|
require 'yaml'
|
7
11
|
require 'jbuilder'
|
8
12
|
require 'jsonify'
|
data/utils/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Utils
|
2
|
+
|
3
|
+
## The Generator
|
4
|
+
|
5
|
+
This directory hosts The Generator, a tool that generates the classes for each API endpoint from the [Elasticsearch REST API JSON Specification](https://github.com/elastic/elasticsearch/tree/master/rest-api-spec).
|
6
|
+
|
7
|
+
### Generate
|
8
|
+
|
9
|
+
To generate the code, you need to run (from this folder):
|
10
|
+
```bash
|
11
|
+
$ thor api:code:generate
|
12
|
+
```
|
13
|
+
|
14
|
+
- The oss Ruby code will be generated in `elasticsearch-api/lib/elasticsearch/api/actions`.
|
15
|
+
- The xpack Ruby code will be generated in `elasticsearch-xpack/lib/elasticsearch/xpack/api/actions`.
|
16
|
+
- The generator runs Rubocop to autolint and clean up the generated files.
|
17
|
+
|
18
|
+
Alternatively, you can pass in `oss` or `xpack` as parameters to generate only one of the 2 sets of endpoints:
|
19
|
+
|
20
|
+
```bash
|
21
|
+
$ thor api:code:generate --api=xpack
|
22
|
+
$ thor api:code:generate --api=oss
|
23
|
+
```
|
24
|
+
|
25
|
+
### Development
|
26
|
+
|
27
|
+
The main entry point is `generate_source.rb`, which contains a class that implements a Thor task: `generate`:
|
28
|
+
|
29
|
+
```
|
30
|
+
$ thor api:code:generate
|
31
|
+
```
|
32
|
+
|
33
|
+
It uses [Thor::Actions](https://github.com/erikhuda/thor/wiki/Actions)' `template` method and `templates/method.erb` to generate the final code. The `generator` directory contains some helpers used to generate the code. The ERB template is split into partials and you can find all ERB files in the `templates` directory.
|
34
|
+
|
35
|
+
There's also a lister task:
|
36
|
+
|
37
|
+
```
|
38
|
+
$ thor api:list
|
39
|
+
```
|
40
|
+
|
41
|
+
It's implemented in `lister.rb` and it lists all the REST API endpoints from the JSON specification.
|
@@ -34,18 +34,28 @@ module Elasticsearch
|
|
34
34
|
__root = Pathname(File.expand_path('../../..', __FILE__))
|
35
35
|
|
36
36
|
desc 'generate', 'Generate source code and tests from the REST API JSON specification'
|
37
|
-
method_option :verbose, type: :boolean, default: false,
|
38
|
-
method_option :tests, type: :boolean, default: false,
|
39
|
-
method_option :
|
40
|
-
|
37
|
+
method_option :verbose, type: :boolean, default: false, desc: 'Output more information'
|
38
|
+
method_option :tests, type: :boolean, default: false, desc: 'Generate test files'
|
39
|
+
method_option :api, type: :array, default: %w[oss xpack], desc: 'APIs to generate (oss, x-pack)'
|
41
40
|
def generate
|
42
41
|
self.class.source_root File.expand_path(__dir__)
|
43
|
-
@xpack = options[:xpack
|
42
|
+
@xpack = options[:api].include? 'xpack'
|
43
|
+
@oss = options[:api].include? 'oss'
|
44
|
+
|
45
|
+
__generate_source(:xpack) if @xpack
|
46
|
+
__generate_source(:oss) if @oss
|
47
|
+
# -- Tree output
|
48
|
+
print_tree if options[:verbose]
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
44
52
|
|
45
|
-
|
46
|
-
@
|
53
|
+
def __generate_source(api)
|
54
|
+
@current_api = api
|
55
|
+
@input = FilesHelper.input_dir(api)
|
56
|
+
@output = FilesHelper.output_dir(api)
|
47
57
|
|
48
|
-
FilesHelper.files(
|
58
|
+
FilesHelper.files(api).each do |filepath|
|
49
59
|
@path = Pathname(@input.join(filepath))
|
50
60
|
@json = MultiJson.load(File.read(@path))
|
51
61
|
@spec = @json.values.first
|
@@ -83,17 +93,12 @@ module Elasticsearch
|
|
83
93
|
puts
|
84
94
|
end
|
85
95
|
|
86
|
-
run_rubocop
|
87
|
-
|
88
|
-
# -- Tree output
|
89
|
-
print_tree if options[:verbose]
|
96
|
+
run_rubocop(api)
|
90
97
|
end
|
91
98
|
|
92
|
-
private
|
93
|
-
|
94
99
|
def __full_namespace
|
95
100
|
names = @endpoint_name.split('.')
|
96
|
-
if @xpack
|
101
|
+
if @current_api == :xpack
|
97
102
|
names = (names.first == 'xpack' ? names : ['xpack', names].flatten)
|
98
103
|
# Return an array with 'ml' renamed to 'machine_learning' and 'ilm' to
|
99
104
|
# 'index_lifecycle_management'
|
@@ -149,12 +154,12 @@ module Elasticsearch
|
|
149
154
|
return termvectors_path if @method_name == 'termvectors'
|
150
155
|
|
151
156
|
result = ''
|
152
|
-
anchor_string =
|
157
|
+
anchor_string = []
|
153
158
|
@paths.sort { |a, b| b.length <=> a.length }.each_with_index do |path, i|
|
154
159
|
var_string = __extract_path_variables(path).map { |var| "_#{var}" }.join(' && ')
|
155
|
-
next if anchor_string
|
160
|
+
next if anchor_string.include? var_string
|
156
161
|
|
157
|
-
anchor_string
|
162
|
+
anchor_string << var_string
|
158
163
|
result += if i.zero?
|
159
164
|
"if #{var_string}\n"
|
160
165
|
elsif (i == @paths.size - 1) || var_string.empty?
|
@@ -238,11 +243,11 @@ module Elasticsearch
|
|
238
243
|
end
|
239
244
|
|
240
245
|
def __utils
|
241
|
-
@xpack ? 'Elasticsearch::API::Utils' : 'Utils'
|
246
|
+
(@current_api == :xpack) ? 'Elasticsearch::API::Utils' : 'Utils'
|
242
247
|
end
|
243
248
|
|
244
|
-
def run_rubocop
|
245
|
-
system("rubocop --format autogenconf -x #{FilesHelper::output_dir(
|
249
|
+
def run_rubocop(api)
|
250
|
+
system("rubocop --format autogenconf -x #{FilesHelper::output_dir(api)}")
|
246
251
|
end
|
247
252
|
end
|
248
253
|
end
|
@@ -64,6 +64,12 @@ module Elasticsearch
|
|
64
64
|
COMPLEX_IGNORE_404.include? endpoint
|
65
65
|
end
|
66
66
|
|
67
|
+
def module_name_helper(name)
|
68
|
+
return name.upcase if %w[sql ssl].include? name
|
69
|
+
|
70
|
+
name.split("_").map(&:capitalize).join
|
71
|
+
end
|
72
|
+
|
67
73
|
def termvectors_path
|
68
74
|
<<~SRC
|
69
75
|
if _index && _type && _id
|
@@ -146,7 +152,7 @@ module Elasticsearch
|
|
146
152
|
def bulk_body_helper
|
147
153
|
<<~SRC
|
148
154
|
if body.is_a? Array
|
149
|
-
payload = Utils.__bulkify(body)
|
155
|
+
payload = Elasticsearch::API::Utils.__bulkify(body)
|
150
156
|
else
|
151
157
|
payload = body
|
152
158
|
end
|
@@ -10,8 +10,8 @@ module Elasticsearch
|
|
10
10
|
XPACK_OUTPUT_DIR = '../../elasticsearch-xpack/lib/elasticsearch/xpack/api/actions'.freeze
|
11
11
|
|
12
12
|
# Path to directory with JSON API specs
|
13
|
-
def self.input_dir(
|
14
|
-
input_dir = if xpack
|
13
|
+
def self.input_dir(api)
|
14
|
+
input_dir = if api == :xpack
|
15
15
|
File.expand_path(XPACK_SRC_PATH, __FILE__)
|
16
16
|
else
|
17
17
|
File.expand_path(OSS_SRC_PATH, __FILE__)
|
@@ -20,13 +20,13 @@ module Elasticsearch
|
|
20
20
|
end
|
21
21
|
|
22
22
|
# Path to directory to copy generated files
|
23
|
-
def self.output_dir(
|
24
|
-
xpack ? Pathname(XPACK_OUTPUT_DIR) : Pathname(OSS_OUTPUT_DIR)
|
23
|
+
def self.output_dir(api)
|
24
|
+
api == :xpack ? Pathname(XPACK_OUTPUT_DIR) : Pathname(OSS_OUTPUT_DIR)
|
25
25
|
end
|
26
26
|
|
27
27
|
# Only get JSON files and remove hidden files
|
28
|
-
def self.files(
|
29
|
-
Dir.entries(input_dir(
|
28
|
+
def self.files(api)
|
29
|
+
Dir.entries(input_dir(api).to_s).reject do |f|
|
30
30
|
f.start_with?('.') ||
|
31
31
|
f.start_with?('_') ||
|
32
32
|
File.extname(f) != '.json'
|
@@ -3,12 +3,12 @@
|
|
3
3
|
# See the LICENSE file in the project root for more information
|
4
4
|
|
5
5
|
module Elasticsearch
|
6
|
-
<%- if @xpack -%>
|
6
|
+
<%- if @current_api == :xpack -%>
|
7
7
|
<%= ' '*(@namespace_depth) %>module XPack
|
8
8
|
<%- end %>
|
9
9
|
<%= ' '*(@namespace_depth) %>module API
|
10
10
|
<%- @module_namespace.each_with_index do |name, i| -%>
|
11
|
-
<%= ' '*i %>module <%= name
|
11
|
+
<%= ' '*i %>module <%= module_name_helper(name) %>
|
12
12
|
<%- end -%>
|
13
13
|
<%= ' '*(@namespace_depth+2) %>module Actions
|
14
14
|
<%= ERB.new(File.new("./thor/templates/_documentation_top.erb").read, trim_mode: '-').result(binding) -%>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elasticsearch-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.6.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karel Minarik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: ansi
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,19 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: elasticsearch
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name: elasticsearch-
|
70
|
+
name: elasticsearch-extensions
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: elasticsearch-transport
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name: minitest
|
98
|
+
name: minitest
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: minitest-reporters
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: mocha
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: pry
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - ">="
|
@@ -151,7 +151,21 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: rake
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '11.1'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '11.1'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: shoulda-context
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - ">="
|
@@ -179,7 +193,7 @@ dependencies:
|
|
179
193
|
- !ruby/object:Gem::Version
|
180
194
|
version: '0'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
196
|
+
name: jsonify
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
184
198
|
requirements:
|
185
199
|
- - ">="
|
@@ -193,7 +207,7 @@ dependencies:
|
|
193
207
|
- !ruby/object:Gem::Version
|
194
208
|
version: '0'
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
210
|
+
name: hashie
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
198
212
|
requirements:
|
199
213
|
- - ">="
|
@@ -207,7 +221,7 @@ dependencies:
|
|
207
221
|
- !ruby/object:Gem::Version
|
208
222
|
version: '0'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
224
|
+
name: cane
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
212
226
|
requirements:
|
213
227
|
- - ">="
|
@@ -221,7 +235,7 @@ dependencies:
|
|
221
235
|
- !ruby/object:Gem::Version
|
222
236
|
version: '0'
|
223
237
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
238
|
+
name: escape_utils
|
225
239
|
requirement: !ruby/object:Gem::Requirement
|
226
240
|
requirements:
|
227
241
|
- - ">="
|
@@ -249,7 +263,7 @@ dependencies:
|
|
249
263
|
- !ruby/object:Gem::Version
|
250
264
|
version: '0'
|
251
265
|
- !ruby/object:Gem::Dependency
|
252
|
-
name:
|
266
|
+
name: require-prof
|
253
267
|
requirement: !ruby/object:Gem::Requirement
|
254
268
|
requirements:
|
255
269
|
- - ">="
|
@@ -297,21 +311,21 @@ dependencies:
|
|
297
311
|
- !ruby/object:Gem::Version
|
298
312
|
version: '0'
|
299
313
|
- !ruby/object:Gem::Dependency
|
300
|
-
name:
|
314
|
+
name: test-unit
|
301
315
|
requirement: !ruby/object:Gem::Requirement
|
302
316
|
requirements:
|
303
|
-
- - "
|
317
|
+
- - "~>"
|
304
318
|
- !ruby/object:Gem::Version
|
305
|
-
version: '
|
319
|
+
version: '2'
|
306
320
|
type: :development
|
307
321
|
prerelease: false
|
308
322
|
version_requirements: !ruby/object:Gem::Requirement
|
309
323
|
requirements:
|
310
|
-
- - "
|
324
|
+
- - "~>"
|
311
325
|
- !ruby/object:Gem::Version
|
312
|
-
version: '
|
326
|
+
version: '2'
|
313
327
|
- !ruby/object:Gem::Dependency
|
314
|
-
name:
|
328
|
+
name: ruby-prof
|
315
329
|
requirement: !ruby/object:Gem::Requirement
|
316
330
|
requirements:
|
317
331
|
- - ">="
|
@@ -324,20 +338,6 @@ dependencies:
|
|
324
338
|
- - ">="
|
325
339
|
- !ruby/object:Gem::Version
|
326
340
|
version: '0'
|
327
|
-
- !ruby/object:Gem::Dependency
|
328
|
-
name: test-unit
|
329
|
-
requirement: !ruby/object:Gem::Requirement
|
330
|
-
requirements:
|
331
|
-
- - "~>"
|
332
|
-
- !ruby/object:Gem::Version
|
333
|
-
version: '2'
|
334
|
-
type: :development
|
335
|
-
prerelease: false
|
336
|
-
version_requirements: !ruby/object:Gem::Requirement
|
337
|
-
requirements:
|
338
|
-
- - "~>"
|
339
|
-
- !ruby/object:Gem::Version
|
340
|
-
version: '2'
|
341
341
|
description: 'Ruby API for Elasticsearch. See the `elasticsearch` gem for full integration.
|
342
342
|
|
343
343
|
'
|
@@ -405,6 +405,8 @@ files:
|
|
405
405
|
- lib/elasticsearch/api/actions/field_caps.rb
|
406
406
|
- lib/elasticsearch/api/actions/get.rb
|
407
407
|
- lib/elasticsearch/api/actions/get_script.rb
|
408
|
+
- lib/elasticsearch/api/actions/get_script_context.rb
|
409
|
+
- lib/elasticsearch/api/actions/get_script_languages.rb
|
408
410
|
- lib/elasticsearch/api/actions/get_source.rb
|
409
411
|
- lib/elasticsearch/api/actions/index.rb
|
410
412
|
- lib/elasticsearch/api/actions/indices/analyze.rb
|
@@ -509,6 +511,7 @@ files:
|
|
509
511
|
- lib/elasticsearch/api/namespace/tasks.rb
|
510
512
|
- lib/elasticsearch/api/utils.rb
|
511
513
|
- lib/elasticsearch/api/version.rb
|
514
|
+
- spec/README.md
|
512
515
|
- spec/elasticsearch/api/actions/abort_benchmark_spec.rb
|
513
516
|
- spec/elasticsearch/api/actions/benchmark_spec.rb
|
514
517
|
- spec/elasticsearch/api/actions/bulk_spec.rb
|
@@ -641,6 +644,7 @@ files:
|
|
641
644
|
- test/integration/yaml_test_runner.rb
|
642
645
|
- test/test_helper.rb
|
643
646
|
- utils/Gemfile
|
647
|
+
- utils/README.md
|
644
648
|
- utils/Thorfile
|
645
649
|
- utils/thor/generate_source.rb
|
646
650
|
- utils/thor/generator/endpoint_specifics.rb
|
@@ -666,18 +670,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
666
670
|
requirements:
|
667
671
|
- - ">="
|
668
672
|
- !ruby/object:Gem::Version
|
669
|
-
version: '
|
673
|
+
version: '2.4'
|
670
674
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
671
675
|
requirements:
|
672
|
-
- - "
|
676
|
+
- - ">"
|
673
677
|
- !ruby/object:Gem::Version
|
674
|
-
version:
|
678
|
+
version: 1.3.1
|
675
679
|
requirements: []
|
676
|
-
rubygems_version: 3.
|
680
|
+
rubygems_version: 3.1.2
|
677
681
|
signing_key:
|
678
682
|
specification_version: 4
|
679
683
|
summary: Ruby API for Elasticsearch.
|
680
684
|
test_files:
|
685
|
+
- spec/README.md
|
681
686
|
- spec/elasticsearch/api/actions/abort_benchmark_spec.rb
|
682
687
|
- spec/elasticsearch/api/actions/benchmark_spec.rb
|
683
688
|
- spec/elasticsearch/api/actions/bulk_spec.rb
|