gapic-generator 0.6.10 → 0.6.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/bin/protoc-gen-ruby_gapic +1 -1
- data/lib/gapic/formatting_utils.rb +2 -1
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/default_generator.rb +13 -12
- data/lib/gapic/presenters/gem_presenter.rb +23 -0
- data/lib/gapic/presenters/package_presenter.rb +18 -0
- data/lib/gapic/presenters/service_presenter.rb +30 -0
- data/templates/default/gem/gapic_metadata_json.erb +2 -0
- data/templates/default/service/client/_client.erb +7 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b0b5fd921abe9618575956f3eaed4ea23ffbf578c29570934c29a76decdf6cd
|
4
|
+
data.tar.gz: cda02cc92c2249e60b7f1692c2b514ac672b49ff46fc52d543ba4d0e133f4308
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c3c62bb7d3f29cff6ea57b9b959214ee81f79449d649ae87f95171aad06450f000fda15784d33231418d47729eecc4b4130a4bf16cad95b1d76bac48994fa89
|
7
|
+
data.tar.gz: c2500d8e7458361e6450cb661c5380075af7a24a3c5063cdc1e237bfeb7fc1c4083dcb5a6a7f7b8cef3b9242e5bc99089ba2d7a651ddd68cbf720ab91bb81478
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
# Release History for gapic-generator
|
2
2
|
|
3
|
+
### 0.6.15 / 2021-02-22
|
4
|
+
|
5
|
+
* Really fixed encoding arguments in executable entrypoints
|
6
|
+
|
7
|
+
### 0.6.14 / 2021-02-22
|
8
|
+
|
9
|
+
* Fixed encoding arguments in executable entrypoints
|
10
|
+
|
11
|
+
### 0.6.13 / 2021-02-22
|
12
|
+
|
13
|
+
* Remove InputOnly and OutputOnly proto tags from docs to avoid confusing YARD.
|
14
|
+
* Generate drift manifest.
|
15
|
+
* Executable entrypoints set the default external locale to utf-8.
|
16
|
+
|
17
|
+
### 0.6.12 / 2021-02-01
|
18
|
+
|
19
|
+
* No changes.
|
20
|
+
|
21
|
+
### 0.6.11 / 2021-02-01
|
22
|
+
|
23
|
+
* Generated clients determine whether to use self-signed JWT credentials.
|
24
|
+
|
3
25
|
### 0.6.10 / 2021-01-13
|
4
26
|
|
5
27
|
* A set of human-readable command-line parameters can now be specified for the gapic-generator, e.g. `gem-name`. These parameters strictly duplicate the existing behaviour of old command-line parameters, e.g. `:gem.:name`.
|
data/bin/protoc-gen-ruby_gapic
CHANGED
@@ -24,6 +24,7 @@ module Gapic
|
|
24
24
|
@brace_detector = /\A(?<pre>[^`]*(`[^`]*`[^`]*)*[^`\\])?\{(?<inside>[^\s][^}]*)\}(?<post>.*)\z/m
|
25
25
|
@xref_detector = /\A(?<pre>[^`]*(`[^`]*`[^`]*)*)?\[(?<text>[\w\. `-]+)\]\[(?<addr>[\w\.]+)\](?<post>.*)\z/m
|
26
26
|
@list_element_detector = /\A\s*(\*|\+|-|[0-9a-zA-Z]+\.)\s/
|
27
|
+
@omit_lines = ["@InputOnly\n", "@OutputOnly\n"]
|
27
28
|
|
28
29
|
class << self
|
29
30
|
##
|
@@ -49,7 +50,7 @@ module Gapic
|
|
49
50
|
# preformatted.
|
50
51
|
in_block = nil
|
51
52
|
base_indent = 0
|
52
|
-
lines.map do |line|
|
53
|
+
(lines - @omit_lines).map do |line|
|
53
54
|
indent = line_indent line
|
54
55
|
if indent.nil?
|
55
56
|
in_block = nil
|
@@ -65,18 +65,19 @@ module Gapic
|
|
65
65
|
end
|
66
66
|
|
67
67
|
# Gem level files
|
68
|
-
files << g("gem/gitignore.erb",
|
69
|
-
files << g("gem/version.erb",
|
70
|
-
files << g("gem/test_helper.erb",
|
71
|
-
files << g("gem/gemspec.erb",
|
72
|
-
files << g("gem/gemfile.erb",
|
73
|
-
files << g("gem/rakefile.erb",
|
74
|
-
files << g("gem/readme.erb",
|
75
|
-
files << g("gem/changelog.erb",
|
76
|
-
files << g("gem/rubocop.erb",
|
77
|
-
files << g("gem/yardopts.erb",
|
78
|
-
files << g("gem/license.erb",
|
79
|
-
files << g("gem/entrypoint.erb",
|
68
|
+
files << g("gem/gitignore.erb", ".gitignore", gem: gem)
|
69
|
+
files << g("gem/version.erb", "lib/#{gem.version_file_path}", gem: gem)
|
70
|
+
files << g("gem/test_helper.erb", "test/helper.rb", gem: gem)
|
71
|
+
files << g("gem/gemspec.erb", "#{gem.name}.gemspec", gem: gem)
|
72
|
+
files << g("gem/gemfile.erb", "Gemfile", gem: gem)
|
73
|
+
files << g("gem/rakefile.erb", "Rakefile", gem: gem)
|
74
|
+
files << g("gem/readme.erb", "README.md", gem: gem)
|
75
|
+
files << g("gem/changelog.erb", "CHANGELOG.md", gem: gem)
|
76
|
+
files << g("gem/rubocop.erb", ".rubocop.yml", gem: gem)
|
77
|
+
files << g("gem/yardopts.erb", ".yardopts", gem: gem)
|
78
|
+
files << g("gem/license.erb", "LICENSE.md", gem: gem)
|
79
|
+
files << g("gem/entrypoint.erb", "lib/#{gem.name}.rb", gem: gem)
|
80
|
+
files << g("gem/gapic_metadata_json.erb", "gapic_metadata.json", gem: gem)
|
80
81
|
|
81
82
|
gem.proto_files.each do |proto_file|
|
82
83
|
files << g("proto_docs/proto_file.erb", "proto_docs/#{proto_file.docs_file_path}", file: proto_file)
|
@@ -17,6 +17,8 @@
|
|
17
17
|
require "gapic/helpers/filepath_helper"
|
18
18
|
require "gapic/helpers/namespace_helper"
|
19
19
|
|
20
|
+
require "json"
|
21
|
+
|
20
22
|
module Gapic
|
21
23
|
module Presenters
|
22
24
|
##
|
@@ -191,6 +193,27 @@ module Gapic
|
|
191
193
|
.sort_by { |name, _requirements| name }
|
192
194
|
end
|
193
195
|
|
196
|
+
##
|
197
|
+
# Returns a hash with a drift_manifest of
|
198
|
+
# a first package in this gem
|
199
|
+
# (while the behaviour in case of multiple packages is clarified).
|
200
|
+
# See https://github.com/googleapis/googleapis/blob/master/gapic/metadata/gapic_metadata.proto
|
201
|
+
#
|
202
|
+
# @return [Hash]
|
203
|
+
def first_package_drift_manifest
|
204
|
+
return {} unless packages?
|
205
|
+
packages[0].drift_manifest
|
206
|
+
end
|
207
|
+
|
208
|
+
##
|
209
|
+
# Returns a drift manifest of the first package in
|
210
|
+
# a pretty JSON string form
|
211
|
+
#
|
212
|
+
# @return [String]
|
213
|
+
def first_package_drift_json
|
214
|
+
JSON.pretty_generate first_package_drift_manifest
|
215
|
+
end
|
216
|
+
|
194
217
|
private
|
195
218
|
|
196
219
|
def gem_config key
|
@@ -99,6 +99,24 @@ module Gapic
|
|
99
99
|
def helpers_require
|
100
100
|
package_require + "/_helpers"
|
101
101
|
end
|
102
|
+
|
103
|
+
##
|
104
|
+
# Returns a hash with a drift_manifest of this package
|
105
|
+
# describing correspondence between the proto description
|
106
|
+
# of the package with the generated code for the package.
|
107
|
+
# See https://github.com/googleapis/googleapis/blob/master/gapic/metadata/gapic_metadata.proto
|
108
|
+
#
|
109
|
+
# @return [Hash]
|
110
|
+
def drift_manifest
|
111
|
+
{
|
112
|
+
schema: "1.0",
|
113
|
+
comment: "This file maps proto services/RPCs to the corresponding library clients/methods",
|
114
|
+
language: "ruby",
|
115
|
+
protoPackage: name,
|
116
|
+
libraryPackage: namespace,
|
117
|
+
services: services.map { |s| [s.grpc_service_name, s.drift_manifest] }.to_h
|
118
|
+
}
|
119
|
+
end
|
102
120
|
end
|
103
121
|
end
|
104
122
|
end
|
@@ -333,10 +333,40 @@ module Gapic
|
|
333
333
|
@api.grpc_service_config.service_level_configs[grpc_full_name]
|
334
334
|
end
|
335
335
|
|
336
|
+
##
|
337
|
+
# The short proto name for this service
|
338
|
+
#
|
339
|
+
# @return [String]
|
340
|
+
def grpc_service_name
|
341
|
+
@service.name
|
342
|
+
end
|
343
|
+
|
336
344
|
def grpc_full_name
|
337
345
|
@service.address.join "."
|
338
346
|
end
|
339
347
|
|
348
|
+
##
|
349
|
+
# Returns a hash with a drift_manifest of this service,
|
350
|
+
# describing correspondence between the proto description
|
351
|
+
# of the service with the generated code for the service.
|
352
|
+
# See https://github.com/googleapis/googleapis/blob/master/gapic/metadata/gapic_metadata.proto
|
353
|
+
#
|
354
|
+
# @return [Hash]
|
355
|
+
def drift_manifest
|
356
|
+
{
|
357
|
+
clients: {
|
358
|
+
grpc: {
|
359
|
+
libraryClient: client_name_full,
|
360
|
+
# The methods should grouped by grpc_method_name and then
|
361
|
+
# their names are returned together in an array.
|
362
|
+
# For Ruby currently we have 1:1 proto to code
|
363
|
+
# correspondence for methods, so our generation is easier
|
364
|
+
methods: methods.map { |m| [m.grpc_method_name, [m.name]] }.to_h
|
365
|
+
}
|
366
|
+
}
|
367
|
+
}
|
368
|
+
end
|
369
|
+
|
340
370
|
private
|
341
371
|
|
342
372
|
def default_config key
|
@@ -97,7 +97,13 @@ class <%= service.client_name %>
|
|
97
97
|
# Create credentials
|
98
98
|
credentials = @config.credentials
|
99
99
|
<%- unless service.generic_endpoint? -%>
|
100
|
-
|
100
|
+
# Use self-signed JWT if the scope and endpoint are unchanged from default,
|
101
|
+
# but only if the default endpoint does not have a region prefix.
|
102
|
+
enable_self_signed_jwt = @config.scope == <%= service.client_name %>.configure.scope &&
|
103
|
+
@config.endpoint == <%= service.client_name %>.configure.endpoint &&
|
104
|
+
!@config.endpoint.split(".").first.include?("-")
|
105
|
+
credentials ||= Credentials.default scope: @config.scope,
|
106
|
+
enable_self_signed_jwt: enable_self_signed_jwt
|
101
107
|
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
102
108
|
credentials = Credentials.new credentials, scope: @config.scope
|
103
109
|
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.6.
|
4
|
+
version: 0.6.15
|
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-
|
13
|
+
date: 2021-02-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|
@@ -246,6 +246,7 @@ files:
|
|
246
246
|
- templates/default/gem/_version.erb
|
247
247
|
- templates/default/gem/changelog.erb
|
248
248
|
- templates/default/gem/entrypoint.erb
|
249
|
+
- templates/default/gem/gapic_metadata_json.erb
|
249
250
|
- templates/default/gem/gemfile.erb
|
250
251
|
- templates/default/gem/gemspec.erb
|
251
252
|
- templates/default/gem/gitignore.erb
|
@@ -347,7 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
347
348
|
- !ruby/object:Gem::Version
|
348
349
|
version: '0'
|
349
350
|
requirements: []
|
350
|
-
rubygems_version: 3.1.
|
351
|
+
rubygems_version: 3.1.4
|
351
352
|
signing_key:
|
352
353
|
specification_version: 4
|
353
354
|
summary: An API Client Generator for Ruby in Ruby!
|