gapic-generator 0.8.0 → 0.9.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 +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
|
-
}
|