gapic-generator 0.2.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|