gapic-generator 0.2.3 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +38 -0
- data/lib/gapic/formatting_utils.rb +9 -7
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/default_generator.rb +11 -10
- data/lib/gapic/helpers/filepath_helper.rb +1 -0
- data/lib/gapic/helpers/namespace_helper.rb +8 -1
- data/lib/gapic/presenters/field_presenter.rb +9 -9
- data/lib/gapic/presenters/file_presenter.rb +1 -1
- data/lib/gapic/presenters/gem_presenter.rb +4 -0
- data/lib/gapic/presenters/method_presenter.rb +24 -18
- data/lib/gapic/presenters/package_presenter.rb +16 -1
- data/lib/gapic/presenters/resource_presenter.rb +3 -9
- data/lib/gapic/presenters/service_presenter.rb +58 -13
- data/lib/gapic/resource_lookup.rb +23 -45
- data/lib/gapic/ruby_info.rb +93 -0
- data/lib/gapic/schema/api.rb +102 -1
- data/lib/gapic/schema/loader.rb +9 -2
- data/lib/gapic/schema/wrappers.rb +109 -22
- data/templates/default/gem/entrypoint.erb +8 -0
- data/templates/default/gem/gemspec.erb +1 -1
- data/templates/default/gem/readme.erb +15 -1
- data/templates/default/gem/rubocop.erb +13 -41
- data/templates/default/layouts/_ruby.erb +5 -4
- data/templates/default/lib/_package.erb +17 -0
- data/templates/default/lib/_service.erb +32 -0
- data/templates/default/package.erb +5 -5
- data/templates/default/proto_docs/_message.erb +2 -2
- data/templates/default/service.erb +5 -7
- data/templates/default/service/_helpers.erb +3 -0
- data/templates/default/service/client.erb +1 -1
- data/templates/default/service/client/_client.erb +13 -19
- data/templates/default/service/client/_config.erb +26 -26
- data/templates/default/service/client/_credentials.erb +1 -1
- data/templates/default/service/client/_operations.erb +1 -5
- data/templates/default/service/client/_resource.erb +1 -1
- data/templates/default/service/client/method/def/_options_defaults.erb +2 -2
- data/templates/default/service/client/method/def/_request_normal.erb +2 -2
- data/templates/default/service/client/method/def/_request_streaming.erb +3 -3
- data/templates/default/service/client/method/def/_response_normal.erb +1 -1
- data/templates/default/service/client/method/def/_response_paged.erb +2 -2
- data/templates/default/service/client/method/docs/_error.erb +1 -1
- data/templates/default/service/client/method/docs/_request_normal.erb +11 -6
- data/templates/default/service/client/method/docs/_request_streaming.erb +2 -2
- data/templates/default/service/client/method/docs/_response.erb +1 -1
- data/templates/default/service/client/resource/_def.erb +1 -1
- data/templates/default/service/client/resource/_multi.erb +2 -2
- data/templates/default/service/client/resource/_single.erb +1 -1
- data/templates/default/service/credentials.erb +1 -1
- data/templates/default/service/operations.erb +1 -1
- data/templates/default/service/paths.erb +1 -1
- data/templates/default/service/test/client.erb +16 -2
- data/templates/default/service/test/client_operations.erb +2 -2
- data/templates/default/service/test/method/_configure.erb +19 -0
- metadata +9 -4
- data/templates/default/service/client/_helpers.erb +0 -9
@@ -1,6 +1,6 @@
|
|
1
1
|
<%- assert_locals resource -%>
|
2
2
|
<%- if resource.patterns.count == 1 -%>
|
3
3
|
<%= render partial: "service/client/resource/single", locals: { resource: resource } %>
|
4
|
-
<%-
|
4
|
+
<%- elsif !resource.patterns.empty? -%>
|
5
5
|
<%= render partial: "service/client/resource/multi", locals: { resource: resource } %>
|
6
6
|
<%- end -%>
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
# Converts hash and nil to an options object
|
3
|
-
options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
3
|
+
options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
4
4
|
|
5
5
|
# Customize the options with defaults
|
6
6
|
metadata = @config.rpcs.<%= method.name %>.metadata.to_h
|
7
7
|
|
8
8
|
# Set x-goog-api-client and x-goog-user-project headers
|
9
|
-
metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
|
9
|
+
metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
10
10
|
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
11
11
|
gapic_version: ::<%= method.service.gem.version_name_full %>
|
12
12
|
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
@@ -1,4 +1,4 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
|
-
raise ArgumentError, "request must be provided" if request.nil?
|
2
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
3
3
|
|
4
|
-
request = Gapic::Protobuf.coerce request, to: <%= method.request_type %>
|
4
|
+
request = ::Gapic::Protobuf.coerce request, to: <%= method.request_type %>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
|
-
unless request.is_a? Enumerable
|
3
|
-
raise ArgumentError, "request must be an Enumerable" unless request.respond_to? :to_enum
|
2
|
+
unless request.is_a? ::Enumerable
|
3
|
+
raise ::ArgumentError, "request must be an Enumerable" unless request.respond_to? :to_enum
|
4
4
|
request = request.to_enum
|
5
5
|
end
|
6
6
|
|
7
7
|
request = request.lazy.map do |req|
|
8
|
-
Gapic::Protobuf.coerce req, to: <%= method.request_type %>
|
8
|
+
::Gapic::Protobuf.coerce req, to: <%= method.request_type %>
|
9
9
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
@<%= method.service.stub_name %>.call_rpc :<%= method.name %>, request, options: options do |response, operation|
|
3
3
|
<%- if method.lro? -%>
|
4
|
-
response = Gapic::Operation.new response, <%= method.service.lro_client_ivar %>, options: options
|
4
|
+
response = ::Gapic::Operation.new response, <%= method.service.lro_client_ivar %>, options: options
|
5
5
|
<%- end -%>
|
6
6
|
yield response, operation if block_given?
|
7
7
|
return response
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
@<%= method.service.stub_name %>.call_rpc :<%= method.name %>, request, options: options do |response, operation|
|
3
3
|
<%- if method.lro? -%>
|
4
|
-
wrap_lro_operation = ->(op_response) { Gapic::Operation.new op_response, <%= method.service.lro_client_ivar %> }
|
4
|
+
wrap_lro_operation = ->(op_response) { ::Gapic::Operation.new op_response, <%= method.service.lro_client_ivar %> }
|
5
5
|
<%- end -%>
|
6
|
-
response = Gapic::PagedEnumerable.new @<%= method.service.stub_name %>, :<%= method.name %>, request, response, operation, options<%- if method.lro? -%>, format_resource: wrap_lro_operation<%- end -%>
|
6
|
+
response = ::Gapic::PagedEnumerable.new @<%= method.service.stub_name %>, :<%= method.name %>, request, response, operation, options<%- if method.lro? -%>, format_resource: wrap_lro_operation<%- end -%>
|
7
7
|
yield response, operation if block_given?
|
8
8
|
return response
|
9
9
|
end
|
@@ -1,2 +1,2 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
|
-
# @raise [GRPC::BadStatus] if the RPC is aborted.
|
2
|
+
# @raise [::GRPC::BadStatus] if the RPC is aborted.
|
@@ -1,15 +1,21 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
# @overload <%= method.name %>(request, options = nil)
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
#
|
3
|
+
# Pass arguments to `<%= method.name %>` via a request object, either of type
|
4
|
+
# {<%= method.request_type %>} or an equivalent Hash.
|
5
|
+
#
|
6
|
+
# @param request [<%= method.request_type %>, ::Hash]
|
7
|
+
# A request object representing the call parameters. Required. To specify no
|
8
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
9
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
8
10
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
9
11
|
<%-if method.arguments.any?-%>
|
10
12
|
#
|
11
13
|
<%- arg_list = method.arguments.map { |arg| "#{arg.name}: nil"}.join ", " -%>
|
12
14
|
# @overload <%= method.name %>(<%= arg_list %>)
|
15
|
+
# Pass arguments to `<%= method.name %>` via keyword arguments. Note that at
|
16
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
17
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
18
|
+
#
|
13
19
|
<%- method.arguments.each do |arg| -%>
|
14
20
|
# @param <%= arg.name %> [<%= arg.doc_types %>]
|
15
21
|
<%- if arg.doc_description -%>
|
@@ -17,4 +23,3 @@
|
|
17
23
|
<%- end -%>
|
18
24
|
<%- end -%>
|
19
25
|
<%- end -%>
|
20
|
-
#
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
|
-
# @param request [Gapic::StreamInput, Enumerable<<%= method.request_type
|
2
|
+
# @param request [::Gapic::StreamInput, ::Enumerable<<%= method.request_type %>, ::Hash>]
|
3
3
|
# An enumerable of {<%= method.request_type %>} instances.
|
4
|
-
# @param options [Gapic::CallOptions, Hash]
|
4
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
5
5
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
# @yield [response, operation] Access the result along with the RPC operation
|
3
3
|
# @yieldparam response [<%= method.doc_response_type %>]
|
4
|
-
# @yieldparam operation [GRPC::ActiveCall::Operation]
|
4
|
+
# @yieldparam operation [::GRPC::ActiveCall::Operation]
|
5
5
|
#
|
6
6
|
# @return [<%= method.doc_response_type %>]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%- assert_locals pattern -%>
|
2
2
|
<%- pattern.arguments[0...-1].each do |arg| -%>
|
3
|
-
raise ArgumentError, "<%= arg %> cannot contain /" if <%= arg %>.to_s.include? "/"
|
3
|
+
raise ::ArgumentError, "<%= arg %> cannot contain /" if <%= arg %>.to_s.include? "/"
|
4
4
|
<%- end -%>
|
5
5
|
|
6
6
|
"<%= pattern.path_string %>"
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<%= indent render(partial: "service/client/resource/doc", locals: { pattern: pattern }), "# " %>
|
9
9
|
#
|
10
10
|
<%- end -%>
|
11
|
-
# @return [String]
|
11
|
+
# @return [::String]
|
12
12
|
def <%= resource.path_helper %> **args
|
13
13
|
resources = {
|
14
14
|
<%- last_pattern_index = resource.patterns.count - 1 -%>
|
@@ -23,6 +23,6 @@ def <%= resource.path_helper %> **args
|
|
23
23
|
}
|
24
24
|
|
25
25
|
resource = resources[args.keys.sort.join(":")]
|
26
|
-
raise ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
|
26
|
+
raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
|
27
27
|
resource.call(**args)
|
28
28
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
#
|
5
5
|
<%= indent render(partial: "service/client/resource/doc", locals: { pattern: resource.patterns.first }), "# " %>
|
6
6
|
#
|
7
|
-
# @return [String]
|
7
|
+
# @return [::String]
|
8
8
|
<%- args = resource.patterns.first.arguments.map { |arg| "#{arg}:" }.join ", " -%>
|
9
9
|
def <%= resource.path_helper %> <%= args %>
|
10
10
|
<%= indent render(partial: "service/client/resource/def", locals: { pattern: resource.patterns.first }), 2 %>
|
@@ -17,8 +17,22 @@ class <%= service.client_name_full %>Test < Minitest::Test
|
|
17
17
|
<% service.methods.each do |method| %>
|
18
18
|
<%= indent render(partial: "service/test/method/#{method.kind}",
|
19
19
|
locals: { method: method }), 2 %>
|
20
|
-
<% if method != service.methods.last %>
|
21
20
|
|
22
21
|
<% end %>
|
23
|
-
|
22
|
+
<%= indent render(partial: "service/test/method/configure", locals: { service: service }), 2 %>
|
23
|
+
<%- if service.lro? -%>
|
24
|
+
|
25
|
+
def test_<%= service.lro_client_var %>
|
26
|
+
grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure
|
27
|
+
|
28
|
+
client = nil
|
29
|
+
Gapic::ServiceStub.stub :new, nil do
|
30
|
+
client = <%= service.client_name_full =%>.new do |config|
|
31
|
+
config.credentials = grpc_channel
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
assert_kind_of <%= service.operations_name_full %>, client.<%= service.lro_client_var %>
|
36
|
+
end
|
37
|
+
<%- end -%>
|
24
38
|
end
|
@@ -17,8 +17,8 @@ class <%= service.operations_name_full %>Test < Minitest::Test
|
|
17
17
|
<% service.lro_service.methods.each do |method| %>
|
18
18
|
<%= indent render(partial: "service/test/method/#{method.kind}",
|
19
19
|
locals: { client_name_full: service.operations_name_full, method: method }), 2 %>
|
20
|
-
<% if method != service.lro_service.methods.last %>
|
21
20
|
|
22
21
|
<% end %>
|
23
|
-
|
22
|
+
<%= indent render(partial: "service/test/method/configure",
|
23
|
+
locals: { service: service, client_name_full: service.operations_name_full }), 2 %>
|
24
24
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%- assert_locals service -%>
|
2
|
+
<%- full_client_name = defined?(client_name_full) ? client_name_full : service.client_name_full -%>
|
3
|
+
def test_configure
|
4
|
+
grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure
|
5
|
+
|
6
|
+
client = block_config = config = nil
|
7
|
+
Gapic::ServiceStub.stub :new, nil do
|
8
|
+
client = <%= full_client_name =%>.new do |config|
|
9
|
+
config.credentials = grpc_channel
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
config = client.configure do |c|
|
14
|
+
block_config = c
|
15
|
+
end
|
16
|
+
|
17
|
+
assert_same block_config, config
|
18
|
+
assert_kind_of <%= full_client_name %>::Configuration, config
|
19
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gapic-generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ernest Landrito
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-04-
|
13
|
+
date: 2020-04-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|
@@ -233,6 +233,7 @@ files:
|
|
233
233
|
- lib/gapic/presenters/sample_presenter.rb
|
234
234
|
- lib/gapic/presenters/service_presenter.rb
|
235
235
|
- lib/gapic/resource_lookup.rb
|
236
|
+
- lib/gapic/ruby_info.rb
|
236
237
|
- lib/gapic/runner.rb
|
237
238
|
- lib/gapic/schema.rb
|
238
239
|
- lib/gapic/schema/api.rb
|
@@ -251,6 +252,7 @@ files:
|
|
251
252
|
- lib/google/rpc/status.pb.rb
|
252
253
|
- templates/default/gem/_version.erb
|
253
254
|
- templates/default/gem/changelog.erb
|
255
|
+
- templates/default/gem/entrypoint.erb
|
254
256
|
- templates/default/gem/gemfile.erb
|
255
257
|
- templates/default/gem/gemspec.erb
|
256
258
|
- templates/default/gem/gitignore.erb
|
@@ -264,6 +266,8 @@ files:
|
|
264
266
|
- templates/default/helpers/filepath_helper.rb
|
265
267
|
- templates/default/helpers/namespace_helper.rb
|
266
268
|
- templates/default/layouts/_ruby.erb
|
269
|
+
- templates/default/lib/_package.erb
|
270
|
+
- templates/default/lib/_service.erb
|
267
271
|
- templates/default/package.erb
|
268
272
|
- templates/default/proto_docs/_enum.erb
|
269
273
|
- templates/default/proto_docs/_message.erb
|
@@ -271,11 +275,11 @@ files:
|
|
271
275
|
- templates/default/proto_docs/proto_file.erb
|
272
276
|
- templates/default/proto_docs/readme.erb
|
273
277
|
- templates/default/service.erb
|
278
|
+
- templates/default/service/_helpers.erb
|
274
279
|
- templates/default/service/client.erb
|
275
280
|
- templates/default/service/client/_client.erb
|
276
281
|
- templates/default/service/client/_config.erb
|
277
282
|
- templates/default/service/client/_credentials.erb
|
278
|
-
- templates/default/service/client/_helpers.erb
|
279
283
|
- templates/default/service/client/_operations.erb
|
280
284
|
- templates/default/service/client/_paths.erb
|
281
285
|
- templates/default/service/client/_requires.erb
|
@@ -320,6 +324,7 @@ files:
|
|
320
324
|
- templates/default/service/test/method/_assert_response.erb
|
321
325
|
- templates/default/service/test/method/_bidi.erb
|
322
326
|
- templates/default/service/test/method/_client.erb
|
327
|
+
- templates/default/service/test/method/_configure.erb
|
323
328
|
- templates/default/service/test/method/_normal.erb
|
324
329
|
- templates/default/service/test/method/_server.erb
|
325
330
|
- templates/default/service/test/method/_setup.erb
|
@@ -346,7 +351,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
346
351
|
- !ruby/object:Gem::Version
|
347
352
|
version: '0'
|
348
353
|
requirements: []
|
349
|
-
rubygems_version: 3.
|
354
|
+
rubygems_version: 3.0.3
|
350
355
|
signing_key:
|
351
356
|
specification_version: 4
|
352
357
|
summary: An API Client Generator for Ruby in Ruby!
|