gapic-generator 0.6.12 → 0.6.13

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: afaa0b6b4a0d16eaae66efab5a4e45e7cda3ffd7be99ca7bf2c6367c520dacc0
4
- data.tar.gz: 6894ec83f3ad88187f11e1fd3c9a55d3044c262338e5a4b6deab4c84bae5d675
3
+ metadata.gz: c9f0e5ee2a9fd5c53dd43b0cc3d04c0c6c590ce06782dcb0a5eb9a346369d241
4
+ data.tar.gz: 7a4787ff915d5a8355677377f60481fa5f714923ccf4d1f65e02f5ef8754dd4d
5
5
  SHA512:
6
- metadata.gz: 9368519ee9f66aeed7df95a11dbabf826ace7f22d8a36698e6625663ffdc49f7566f2f6977eca02d412410bbdc1012f10e4676bfb9bea6fd253cd470a1a8b31c
7
- data.tar.gz: fd1a76c09ad489a9ed8a99616b9a9e4b1ecc17a47faf5044d3fd4abf111d5a01a0efede4bc3232d896837a441251fad974e4a9afcb1bc75e827b0a58ef5bf983
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.
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env ruby
1
+ #!/usr/bin/env -S ruby -E UTF-8
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Copyright 2018 Google LLC
@@ -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
@@ -16,6 +16,6 @@
16
16
 
17
17
  module Gapic
18
18
  module Generator
19
- VERSION = "0.6.12"
19
+ VERSION = "0.6.13"
20
20
  end
21
21
  end
@@ -65,18 +65,19 @@ module Gapic
65
65
  end
66
66
 
67
67
  # Gem level files
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)
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
@@ -0,0 +1,2 @@
1
+ <%- assert_locals gem -%>
2
+ <%= gem.first_package_drift_json %>
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.12
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-02 00:00:00.000000000 Z
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