gapic-generator 0.8.0 → 0.9.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 +10 -0
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/presenters.rb +1 -0
- data/lib/gapic/presenters/gem_presenter.rb +13 -5
- data/lib/gapic/presenters/method_presenter.rb +4 -0
- data/lib/gapic/presenters/service_config_presenter.rb +48 -0
- data/lib/gapic/presenters/service_presenter.rb +18 -0
- data/templates/default/gem/readme.erb +3 -3
- data/templates/default/service/client/_client.erb +1 -1
- data/templates/default/service/client/_credentials.erb +2 -0
- data/templates/default/service/client/_operations.erb +1 -1
- data/templates/default/service/client/_self_configure_defaults.erb +2 -2
- data/templates/default/service/rest/client/_client.erb +1 -1
- metadata +3 -3
- data/templates/default/service/client/_self_configure_retry_policy.erb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab653b4ab114926d58b96c5326de2a8ece5ad19d2780cb8ec5886ee83a3cb053
|
4
|
+
data.tar.gz: 733ccb95f513617b9fc653ac8bbc8f02a37fa8be1a8b81c5cec051299d5f7468
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ceea190fdf3424e89df06130809a21f6cc43b61255e1a9fa143413e4ca197a7f52962dcd060693091317226063ae373cb2c6cfdb55bf516ae06c4d9099d43b4
|
7
|
+
data.tar.gz: 7558dd6358c2a19e2e9d471270acb9ce12a94696b67980193e4d6dcafb168f79342a408b68d89408606ff208fec5f5ae5bbad35110f81e9398d2eb5a124c5f43
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Release History for gapic-generator
|
2
2
|
|
3
|
+
### 0.9.0 / 2021-06-29
|
4
|
+
|
5
|
+
* Support for configuring the service/method used for the quickstart example
|
6
|
+
* Allow generation of libraries with no custom env prefix
|
7
|
+
* Add service override setting to the repo metadata
|
8
|
+
* Wrapper gem dependencies on pre-GA versioned gems now allow both 0.x and 1.x versions
|
9
|
+
* Scoped some String and Hash references to the global scope to avoid name collisions
|
10
|
+
* Reformat some config code to avoid rubocop indentation churn
|
11
|
+
* Bazel: Replace monolith deps with rules_gapic
|
12
|
+
|
3
13
|
### 0.8.0 / 2021-06-16
|
4
14
|
|
5
15
|
* Initial implementation of standalone snippet generation.
|
data/lib/gapic/presenters.rb
CHANGED
@@ -26,6 +26,7 @@ require "gapic/presenters/package_presenter"
|
|
26
26
|
require "gapic/presenters/resource_presenter"
|
27
27
|
require "gapic/presenters/sample_presenter"
|
28
28
|
require "gapic/presenters/service_presenter"
|
29
|
+
require "gapic/presenters/service_config_presenter"
|
29
30
|
require "gapic/presenters/service_rest_presenter"
|
30
31
|
require "gapic/presenters/snippet_presenter"
|
31
32
|
|
@@ -127,11 +127,7 @@ module Gapic
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def env_prefix
|
130
|
-
|
131
|
-
segs = name.split("-").reverse
|
132
|
-
segs.find { |seg| seg !~ /^v\d/ } || segs.first || "UNKNOWN"
|
133
|
-
end
|
134
|
-
prefix.upcase
|
130
|
+
gem_config(:env_prefix)&.upcase
|
135
131
|
end
|
136
132
|
|
137
133
|
def iam_dependency?
|
@@ -231,6 +227,18 @@ module Gapic
|
|
231
227
|
JSON.pretty_generate first_package_drift_manifest
|
232
228
|
end
|
233
229
|
|
230
|
+
##
|
231
|
+
# The service to use for quick start samples. Normally this is simply the
|
232
|
+
# {#first_non_common_service}, but it can be overridden via a gem config.
|
233
|
+
#
|
234
|
+
# @return [Gapic::Presenters::ServicePresenter]
|
235
|
+
#
|
236
|
+
def quick_start_service
|
237
|
+
preferred_service = gem_config :quick_start_service
|
238
|
+
result = services.find { |svc| svc.name == preferred_service } if preferred_service
|
239
|
+
result || first_non_common_service
|
240
|
+
end
|
241
|
+
|
234
242
|
private
|
235
243
|
|
236
244
|
def gem_config key
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2021 Google LLC
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
module Gapic
|
18
|
+
module Presenters
|
19
|
+
##
|
20
|
+
# A presenter for grpc service config.
|
21
|
+
#
|
22
|
+
class ServiceConfigPresenter
|
23
|
+
def initialize grpc_service_config
|
24
|
+
@grpc_service_config = grpc_service_config
|
25
|
+
end
|
26
|
+
|
27
|
+
attr_reader :grpc_service_config
|
28
|
+
|
29
|
+
def retry_policy_fields
|
30
|
+
elems = []
|
31
|
+
retry_policy = grpc_service_config&.retry_policy
|
32
|
+
if retry_policy&.initial_delay_seconds
|
33
|
+
elems << "initial_delay: #{Gapic::FormattingUtils.format_number retry_policy.initial_delay_seconds}"
|
34
|
+
end
|
35
|
+
if retry_policy&.max_delay_seconds
|
36
|
+
elems << "max_delay: #{Gapic::FormattingUtils.format_number retry_policy.max_delay_seconds}"
|
37
|
+
end
|
38
|
+
if retry_policy&.multiplier
|
39
|
+
elems << "multiplier: #{Gapic::FormattingUtils.format_number retry_policy.multiplier}"
|
40
|
+
end
|
41
|
+
if retry_policy&.status_codes
|
42
|
+
elems << "retry_codes: #{retry_policy.status_codes}"
|
43
|
+
end
|
44
|
+
elems.empty? ? "{}" : "{\n #{elems.join ', '}\n}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -361,6 +361,10 @@ module Gapic
|
|
361
361
|
@api.grpc_service_config.service_level_configs[grpc_full_name]
|
362
362
|
end
|
363
363
|
|
364
|
+
def service_config_presenter
|
365
|
+
ServiceConfigPresenter.new grpc_service_config
|
366
|
+
end
|
367
|
+
|
364
368
|
##
|
365
369
|
# The short proto name for this service
|
366
370
|
#
|
@@ -405,6 +409,20 @@ module Gapic
|
|
405
409
|
generate_rest_clients? ? "GRPC client" : "client"
|
406
410
|
end
|
407
411
|
|
412
|
+
##
|
413
|
+
# The method to use for quick start samples. Normally this is simply the
|
414
|
+
# first non-client-streaming method defined, but it can be overridden via
|
415
|
+
# a gem config.
|
416
|
+
#
|
417
|
+
# @return [Gapic::Presenters::MethodPresenter]
|
418
|
+
#
|
419
|
+
def quick_start_method
|
420
|
+
gem_config = @api.configuration[:gem]
|
421
|
+
preferred_method = gem_config[:quick_start_method] if gem_config
|
422
|
+
result = methods.find { |meth| meth.name == preferred_method } if preferred_method
|
423
|
+
result || methods.find { |meth| !meth.client_streaming? }
|
424
|
+
end
|
425
|
+
|
408
426
|
private
|
409
427
|
|
410
428
|
def default_config key
|
@@ -16,12 +16,12 @@ $ gem install <%= gem.name %>
|
|
16
16
|
|
17
17
|
```ruby
|
18
18
|
require "<%= gem.entrypoint_require %>"
|
19
|
-
<%- service = gem.
|
20
|
-
<%- method = service&.
|
19
|
+
<%- service = gem.quick_start_service -%>
|
20
|
+
<%- method = service&.quick_start_method -%>
|
21
21
|
<%- if service && method -%>
|
22
22
|
|
23
23
|
client = <%= service.create_client_call %>
|
24
|
-
request =
|
24
|
+
request = <%= method.request_type %>.new # (request fields as keyword arguments...)
|
25
25
|
response = client.<%= method.name %> request
|
26
26
|
<%- end -%>
|
27
27
|
```
|
@@ -104,7 +104,7 @@ class <%= service.client_name %>
|
|
104
104
|
!@config.endpoint.split(".").first.include?("-")
|
105
105
|
credentials ||= Credentials.default scope: @config.scope,
|
106
106
|
enable_self_signed_jwt: enable_self_signed_jwt
|
107
|
-
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
107
|
+
if credentials.is_a?(::String) || credentials.is_a?(::Hash)
|
108
108
|
credentials = Credentials.new credentials, scope: @config.scope
|
109
109
|
end
|
110
110
|
<%- end -%>
|
@@ -12,10 +12,12 @@ class <%= service.credentials_name %> < ::Google::Auth::Credentials
|
|
12
12
|
<%- end -%>
|
13
13
|
]
|
14
14
|
<%- end -%>
|
15
|
+
<%- if service.gem.env_prefix -%>
|
15
16
|
self.env_vars = [
|
16
17
|
"<%= service.gem.env_prefix %>_CREDENTIALS",
|
17
18
|
"<%= service.gem.env_prefix %>_KEYFILE",
|
18
19
|
"<%= service.gem.env_prefix %>_CREDENTIALS_JSON",
|
19
20
|
"<%= service.gem.env_prefix %>_KEYFILE_JSON"
|
20
21
|
]
|
22
|
+
<%- end -%>
|
21
23
|
end
|
@@ -61,7 +61,7 @@ class <%= service.operations_name %>
|
|
61
61
|
# Create credentials
|
62
62
|
credentials = @config.credentials
|
63
63
|
credentials ||= Credentials.default scope: @config.scope
|
64
|
-
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
64
|
+
if credentials.is_a?(::String) || credentials.is_a?(::Hash)
|
65
65
|
credentials = Credentials.new credentials, scope: @config.scope
|
66
66
|
end
|
67
67
|
@quota_project_id = @config.quota_project
|
@@ -6,7 +6,7 @@
|
|
6
6
|
default_config.timeout = <%= format_number service.grpc_service_config.timeout_seconds %>
|
7
7
|
<%- end -%>
|
8
8
|
<%- if service.grpc_service_config.retry_policy -%>
|
9
|
-
default_config.retry_policy = <%= indent_tail
|
9
|
+
default_config.retry_policy = <%= indent_tail service.service_config_presenter.retry_policy_fields, 2 %>
|
10
10
|
<%- end -%>
|
11
11
|
<%- end -%>
|
12
12
|
<%- method_service.methods.each do |method| -%>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
default_config.rpcs.<%= method.name %>.timeout = <%= format_number method.grpc_service_config.timeout_seconds %>
|
17
17
|
<%- end -%>
|
18
18
|
<%- if method.grpc_service_config.retry_policy -%>
|
19
|
-
default_config.rpcs.<%= method.name %>.retry_policy =<%= indent_tail
|
19
|
+
default_config.rpcs.<%= method.name %>.retry_policy =<%= indent_tail method.service_config_presenter.retry_policy_fields, 2 %>
|
20
20
|
<%- end -%>
|
21
21
|
<%- end -%>
|
22
22
|
<%- end -%>
|
@@ -97,7 +97,7 @@ class <%= service.rest.client_name %>
|
|
97
97
|
credentials = @config.credentials
|
98
98
|
<%- unless service.generic_endpoint? -%>
|
99
99
|
credentials ||= Credentials.default scope: @config.scope
|
100
|
-
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
100
|
+
if credentials.is_a?(::String) || credentials.is_a?(::Hash)
|
101
101
|
credentials = Credentials.new credentials, scope: @config.scope
|
102
102
|
end
|
103
103
|
<%- 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.9.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: 2021-06-
|
13
|
+
date: 2021-06-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|
@@ -220,6 +220,7 @@ files:
|
|
220
220
|
- lib/gapic/presenters/package_presenter.rb
|
221
221
|
- lib/gapic/presenters/resource_presenter.rb
|
222
222
|
- lib/gapic/presenters/sample_presenter.rb
|
223
|
+
- lib/gapic/presenters/service_config_presenter.rb
|
223
224
|
- lib/gapic/presenters/service_presenter.rb
|
224
225
|
- lib/gapic/presenters/service_rest_presenter.rb
|
225
226
|
- lib/gapic/presenters/snippet_presenter.rb
|
@@ -285,7 +286,6 @@ files:
|
|
285
286
|
- templates/default/service/client/_resource.erb
|
286
287
|
- templates/default/service/client/_self_configure.erb
|
287
288
|
- templates/default/service/client/_self_configure_defaults.erb
|
288
|
-
- templates/default/service/client/_self_configure_retry_policy.erb
|
289
289
|
- templates/default/service/client/method/_def.erb
|
290
290
|
- templates/default/service/client/method/def/_options_defaults.erb
|
291
291
|
- templates/default/service/client/method/def/_request.erb
|
@@ -1,15 +0,0 @@
|
|
1
|
-
<%- assert_locals retry_policy -%>
|
2
|
-
{
|
3
|
-
<%- if retry_policy.initial_delay_seconds -%>
|
4
|
-
initial_delay: <%= format_number retry_policy.initial_delay_seconds %>,
|
5
|
-
<%- end -%>
|
6
|
-
<%- if retry_policy.max_delay_seconds -%>
|
7
|
-
max_delay: <%= format_number retry_policy.max_delay_seconds %>,
|
8
|
-
<%- end -%>
|
9
|
-
<%- if retry_policy.multiplier -%>
|
10
|
-
multiplier: <%= format_number retry_policy.multiplier %>,
|
11
|
-
<%- end-%>
|
12
|
-
<%- if retry_policy.status_codes -%>
|
13
|
-
retry_codes: <%= retry_policy.status_codes %>
|
14
|
-
<%- end -%>
|
15
|
-
}
|