gapic-generator 0.6.12 → 0.6.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -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
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9f0e5ee2a9fd5c53dd43b0cc3d04c0c6c590ce06782dcb0a5eb9a346369d241
|
4
|
+
data.tar.gz: 7a4787ff915d5a8355677377f60481fa5f714923ccf4d1f65e02f5ef8754dd4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c01dd5965a8a54e79e802135eb6df543200b338252e7f129a6adddc53e1c9d92ae91043ebe3ad30846ae496b868d489a1190b477b72448f8ecc022abcd1eb6bb
|
7
|
+
data.tar.gz: df3aed51dc4573c7bde9370f77920434a58bb12b13e4a3388fe741deabee9d0ecefa60f50b165c7ab6856a9ea5c0149d789ab825059bf93d1749de66358298ad
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Release History for gapic-generator
|
2
2
|
|
3
|
+
### 0.6.13 / 2021-02-22
|
4
|
+
|
5
|
+
* Remove InputOnly and OutputOnly proto tags from docs to avoid confusing YARD.
|
6
|
+
* Generate drift manifest.
|
7
|
+
* Executable entrypoints set the default external locale to utf-8.
|
8
|
+
|
3
9
|
### 0.6.12 / 2021-02-01
|
4
10
|
|
5
11
|
* No changes.
|
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
|
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.13
|
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-02-
|
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
|