gapic-generator 0.2.2 → 0.4.0
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/CHANGELOG.md +37 -0
- data/lib/gapic/formatting_utils.rb +4 -2
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/default_generator.rb +11 -10
- data/lib/gapic/presenters/field_presenter.rb +1 -1
- data/lib/gapic/presenters/gem_presenter.rb +8 -2
- data/lib/gapic/presenters/method_presenter.rb +17 -2
- 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 +57 -12
- 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/lib/_package.erb +17 -0
- data/templates/default/lib/_service.erb +32 -0
- data/templates/default/package.erb +5 -5
- 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 +10 -16
- data/templates/default/service/client/_operations.erb +0 -4
- data/templates/default/service/client/_resource.erb +1 -1
- data/templates/default/service/client/method/docs/_request_normal.erb +10 -5
- data/templates/default/service/client/method/docs/_request_streaming.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 +8 -3
- data/templates/default/service/client/_helpers.erb +0 -9
@@ -0,0 +1,8 @@
|
|
1
|
+
<%- assert_locals gem -%>
|
2
|
+
<%= render partial: "shared/header" -%>
|
3
|
+
|
4
|
+
# This gem does not autoload during Bundler.require. To load this gem,
|
5
|
+
# issue explicit require statements for the packages desired, e.g.:
|
6
|
+
<%- gem.packages.each do |package| -%>
|
7
|
+
# require "<%= package.package_require %>"
|
8
|
+
<%- end -%>
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |gem|
|
|
25
25
|
|
26
26
|
gem.add_dependency "gapic-common", "~> 0.2"
|
27
27
|
<%- if gem.iam_dependency? -%>
|
28
|
-
gem.add_dependency "grpc-google-iam-v1", "
|
28
|
+
gem.add_dependency "grpc-google-iam-v1", ">= 0.6.10", "< 2.0"
|
29
29
|
<%- end -%>
|
30
30
|
|
31
31
|
gem.add_development_dependency "google-style", "~> 1.24.0"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# <%= gem.title %>
|
1
|
+
# Ruby Client for the <%= gem.title %> API
|
2
2
|
|
3
3
|
<%= gem.summary %>
|
4
4
|
|
@@ -12,6 +12,20 @@
|
|
12
12
|
$ gem install <%= gem.name %>
|
13
13
|
```
|
14
14
|
|
15
|
+
## Quick Start
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
require "<%= gem.entrypoint_require %>"
|
19
|
+
<%- service = gem.packages.first&.services.first -%>
|
20
|
+
<%- method = service&.methods.first -%>
|
21
|
+
<%- if service && method -%>
|
22
|
+
|
23
|
+
client = <%= service.create_client_call %>
|
24
|
+
request = my_create_request
|
25
|
+
response = client.<%= method.name %> request
|
26
|
+
<%- end -%>
|
27
|
+
```
|
28
|
+
|
15
29
|
## Supported Ruby Versions
|
16
30
|
|
17
31
|
This library is supported on Ruby 2.4+.
|
@@ -9,53 +9,25 @@ AllCops:
|
|
9
9
|
- "test/**/*"
|
10
10
|
|
11
11
|
Metrics/AbcSize:
|
12
|
-
|
13
|
-
<%- gem.packages.each do |package| -%>
|
14
|
-
<%- package.services.each do |service| -%>
|
15
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
16
|
-
<%- end -%>
|
17
|
-
<%- end -%>
|
12
|
+
Enabled: false
|
18
13
|
Metrics/ClassLength:
|
19
|
-
|
20
|
-
<%- gem.packages.each do |package| -%>
|
21
|
-
<%- package.services.each do |service| -%>
|
22
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
23
|
-
<%- end -%>
|
24
|
-
<%- end -%>
|
14
|
+
Enabled: false
|
25
15
|
Metrics/CyclomaticComplexity:
|
26
|
-
|
27
|
-
<%- gem.packages.each do |package| -%>
|
28
|
-
<%- package.services.each do |service| -%>
|
29
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
30
|
-
<%- end -%>
|
31
|
-
<%- end -%>
|
16
|
+
Enabled: false
|
32
17
|
Metrics/LineLength:
|
33
|
-
|
34
|
-
<%- gem.packages.each do |package| -%>
|
35
|
-
<%- package.services.each do |service| -%>
|
36
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
37
|
-
<%- end -%>
|
38
|
-
<%- end -%>
|
18
|
+
Enabled: false
|
39
19
|
Metrics/MethodLength:
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
44
|
-
<%- end -%>
|
45
|
-
<%- end -%>
|
20
|
+
Enabled: false
|
21
|
+
Metrics/ModuleLength:
|
22
|
+
Enabled: false
|
46
23
|
Metrics/PerceivedComplexity:
|
24
|
+
Enabled: false
|
25
|
+
Naming/FileName:
|
47
26
|
Exclude:
|
48
|
-
|
49
|
-
<%- package.services.each do |service| -%>
|
50
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
51
|
-
<%- end -%>
|
52
|
-
<%- end -%>
|
27
|
+
- "lib/<%= gem.name %>.rb"
|
53
28
|
Style/CaseEquality:
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
58
|
-
<%- end -%>
|
59
|
-
<%- end -%>
|
29
|
+
Enabled: false
|
30
|
+
Style/IfUnlessModifier:
|
31
|
+
Enabled: false
|
60
32
|
Style/ModuleFunction:
|
61
33
|
Enabled: false
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%- assert_locals package -%>
|
2
|
+
<% @requires = capture do %>
|
3
|
+
<%- package.services.each do |service| -%>
|
4
|
+
require "<%= service.service_require %>"
|
5
|
+
<%- end -%>
|
6
|
+
require "<%= package.gem.version_require %>"
|
7
|
+
<% end %>
|
8
|
+
<%- unless package.empty? -%>
|
9
|
+
##
|
10
|
+
# To load this package, including all its services, and instantiate a client:
|
11
|
+
#
|
12
|
+
# require "<%= package.package_require %>"
|
13
|
+
# client = <%= package.services.first.create_client_call %>
|
14
|
+
#
|
15
|
+
<%- end -%>
|
16
|
+
module <%= package.module_name %>
|
17
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%- assert_locals service -%>
|
2
|
+
<% @requires = capture do %>
|
3
|
+
require "gapic/common"
|
4
|
+
require "gapic/config"
|
5
|
+
require "gapic/config/method"
|
6
|
+
|
7
|
+
require "<%= service.gem.version_require %>"
|
8
|
+
|
9
|
+
require "<%= service.credentials_require %>"
|
10
|
+
<%- if service.paths? -%>
|
11
|
+
require "<%= service.paths_require %>"
|
12
|
+
<%- end -%>
|
13
|
+
<%- if service.lro? -%>
|
14
|
+
require "<%= service.operations_require %>"
|
15
|
+
<%- end -%>
|
16
|
+
require "<%= service.client_require %>"
|
17
|
+
<% end %>
|
18
|
+
##
|
19
|
+
<%- if service.doc_description -%>
|
20
|
+
<%= indent service.doc_description, "# " %>
|
21
|
+
#
|
22
|
+
<%- end -%>
|
23
|
+
# To load this service and instantiate a client:
|
24
|
+
#
|
25
|
+
# require "<%= service.service_require %>"
|
26
|
+
# client = <%= service.create_client_call %>
|
27
|
+
#
|
28
|
+
module <%= service.module_name %>
|
29
|
+
end
|
30
|
+
<% @footer = capture do %>
|
31
|
+
<%= render partial: "service/helpers", locals: { service: service} -%>
|
32
|
+
<% end %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%- assert_locals package -%>
|
2
|
-
<%= render partial: "
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
<%= render partial: "lib/package",
|
3
|
+
layout: "layouts/ruby",
|
4
|
+
locals: { package: package,
|
5
|
+
namespace: package.parent_namespace }
|
6
|
+
%>
|
@@ -1,8 +1,6 @@
|
|
1
1
|
<%- assert_locals service -%>
|
2
|
-
<%= render partial: "
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
<%- end -%>
|
8
|
-
require "<%= service.credentials_require %>"
|
2
|
+
<%= render partial: "lib/service",
|
3
|
+
layout: "layouts/ruby",
|
4
|
+
locals: { service: service,
|
5
|
+
namespace: service.namespace }
|
6
|
+
%>
|
@@ -1,19 +1,7 @@
|
|
1
1
|
<%- assert_locals service -%>
|
2
2
|
<% @requires = capture do %>
|
3
|
-
require "gapic/common"
|
4
|
-
require "gapic/config"
|
5
|
-
require "gapic/config/method"
|
6
|
-
|
7
3
|
<%= render partial: "service/client/requires", locals: { service: service} -%>
|
8
|
-
require "<%= service.gem.version_require %>"
|
9
4
|
require "<%= service.proto_service_require %>"
|
10
|
-
require "<%= service.credentials_require %>"
|
11
|
-
<%- if service.paths? -%>
|
12
|
-
require "<%= service.paths_require %>"
|
13
|
-
<%- end -%>
|
14
|
-
<%- if service.lro? -%>
|
15
|
-
require "<%= service.operations_require %>"
|
16
|
-
<%- end -%>
|
17
5
|
<% end %>
|
18
6
|
##
|
19
7
|
# Client for the <%= service.name %> service.
|
@@ -117,6 +105,7 @@ class <%= service.client_name %>
|
|
117
105
|
<%- if service.lro? -%>
|
118
106
|
<%= service.lro_client_ivar %> = <%= service.operations_name %>.new do |config|
|
119
107
|
config.credentials = credentials
|
108
|
+
config.endpoint = @config.endpoint
|
120
109
|
end
|
121
110
|
|
122
111
|
<%- end -%>
|
@@ -129,6 +118,15 @@ class <%= service.client_name %>
|
|
129
118
|
)
|
130
119
|
end
|
131
120
|
|
121
|
+
<%- if service.lro? -%>
|
122
|
+
##
|
123
|
+
# Get the associated client for long-running operations.
|
124
|
+
#
|
125
|
+
# @return [<%= service.operations_name_full %>]
|
126
|
+
#
|
127
|
+
attr_reader :<%= service.lro_client_var %>
|
128
|
+
|
129
|
+
<%- end -%>
|
132
130
|
# Service calls
|
133
131
|
<%- service.methods.each do |method| -%>
|
134
132
|
|
@@ -137,7 +135,3 @@ class <%= service.client_name %>
|
|
137
135
|
|
138
136
|
<%= indent_tail render(partial: "service/client/config", locals: { service: service }), 2 %>
|
139
137
|
end
|
140
|
-
|
141
|
-
<% @footer = capture do %>
|
142
|
-
<%= render partial: "service/client/helpers", locals: { service: service} %>
|
143
|
-
<% end %>
|
@@ -1,10 +1,6 @@
|
|
1
1
|
<%- assert_locals service -%>
|
2
2
|
<% @requires = capture do %>
|
3
|
-
require "gapic/common"
|
4
3
|
require "gapic/operation"
|
5
|
-
|
6
|
-
require "<%= service.gem.version_require %>"
|
7
|
-
require "<%= service.client_require %>"
|
8
4
|
require "<%= service.lro_service.proto_service_require %>"
|
9
5
|
<% end %>
|
10
6
|
# Service that implements Longrunning Operations API.
|
@@ -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,15 +1,21 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
2
|
# @overload <%= method.name %>(request, options = nil)
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
|
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.
|
7
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
4
|
# @param options [Gapic::CallOptions, Hash]
|
5
5
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
@@ -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.
|
4
|
+
version: 0.4.0
|
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-
|
13
|
+
date: 2020-04-20 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
|