gapic-generator 0.2.0 → 0.3.3
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 +37 -0
- data/lib/gapic/formatting_utils.rb +3 -1
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/default_generator.rb +11 -10
- data/lib/gapic/presenters/field_presenter.rb +1 -1
- data/lib/gapic/presenters/gem_presenter.rb +8 -2
- data/lib/gapic/presenters/method_presenter.rb +11 -1
- data/lib/gapic/presenters/package_presenter.rb +8 -0
- data/lib/gapic/presenters/resource_presenter.rb +3 -9
- data/lib/gapic/presenters/service_presenter.rb +12 -3
- data/lib/gapic/resource_lookup.rb +23 -45
- data/lib/gapic/schema/api.rb +46 -0
- data/lib/gapic/schema/loader.rb +9 -2
- data/lib/gapic/schema/wrappers.rb +109 -22
- data/templates/default/gem/entrypoint.erb +8 -0
- data/templates/default/gem/gemspec.erb +1 -1
- data/templates/default/gem/readme.erb +15 -1
- data/templates/default/gem/rubocop.erb +13 -41
- data/templates/default/lib/_package.erb +17 -0
- data/templates/default/lib/_service.erb +32 -0
- data/templates/default/package.erb +5 -5
- data/templates/default/service.erb +5 -7
- data/templates/default/service/_helpers.erb +3 -0
- data/templates/default/service/client/_client.erb +0 -16
- data/templates/default/service/client/_operations.erb +0 -4
- data/templates/default/service/client/_resource.erb +1 -1
- data/templates/default/service/client/method/docs/_request_normal.erb +10 -5
- data/templates/default/service/client/method/docs/_request_streaming.erb +1 -1
- metadata +6 -3
- data/templates/default/service/client/_helpers.erb +0 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 141fbba25c93dca9ccac5c4a380f7a0f8c1c1643ef2e9517fbb158ba92db822c
|
|
4
|
+
data.tar.gz: c61466f199a4d34b6c1fefea9aa8773abc7d9514dfb232385a1e6806e49140f2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1cefa5cb936a4d9f211c0af9f03a9bcbd4ba76f35417cc3a1723164c949dc93b0f9f8be3602ac882d19c2a1109eed7b47150f4be4587ab5d5a368d7942df14f5
|
|
7
|
+
data.tar.gz: eab763dd18a81db68af29cc55e54b69f7f8fe504bca56aa93925a66e0c8f548335a4700c0cb89cb13aef65f5de7d640dc8dc0a704190e6a06f7ecdaeb294b065
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# Release History for gapic-generator
|
|
2
2
|
|
|
3
|
+
### 0.3.3 / 2020-04-13
|
|
4
|
+
|
|
5
|
+
* Fix cross-reference links to multi-word enum values.
|
|
6
|
+
|
|
7
|
+
### 0.3.2 / 2020-04-12
|
|
8
|
+
|
|
9
|
+
* Fix the talent.v4beta1 hack.
|
|
10
|
+
|
|
11
|
+
### 0.3.1 / 2020-04-11
|
|
12
|
+
|
|
13
|
+
* Disable ModuleLength metric for generated code.
|
|
14
|
+
* Omit nonconforming resource patterns instead of crashing.
|
|
15
|
+
|
|
16
|
+
### 0.3.0 / 2020-04-10
|
|
17
|
+
|
|
18
|
+
* Detect when a resource is referenced implicitly via child_type, and generate path helpers.
|
|
19
|
+
* Update grpc-google-iam-v1 dependency to require the latest version.
|
|
20
|
+
* Generated require graph is more sane and does not include cycles.
|
|
21
|
+
* The bundler entrypoint now loads the entire gem for wrapper gems.
|
|
22
|
+
* Generated readmes are more useful and include a quickstart.
|
|
23
|
+
* Package and service modules now have basic documentation.
|
|
24
|
+
* Overloads for methods now have basic explanatory documentation, including how to pass an empty request.
|
|
25
|
+
* Request object documentation no longer duplicates the method documentation.
|
|
26
|
+
|
|
27
|
+
### 0.2.3 / 2020-04-06
|
|
28
|
+
|
|
29
|
+
* No changes
|
|
30
|
+
|
|
31
|
+
### 0.2.2 / 2020-03-31
|
|
32
|
+
|
|
33
|
+
* Updates to common protos, especially core types which were more than a year old.
|
|
34
|
+
|
|
35
|
+
### 0.2.1 / 2020-03-26
|
|
36
|
+
|
|
37
|
+
* Fix service address for LRO operation clients.
|
|
38
|
+
* Tweak sample task names for wrapper-gem Rakefiles.
|
|
39
|
+
|
|
3
40
|
### 0.2.0 / 2020-03-23
|
|
4
41
|
|
|
5
42
|
Generation updates:
|
|
@@ -140,8 +140,10 @@ module Gapic
|
|
|
140
140
|
"{#{convert_address_to_ruby entity}::Client #{text}}"
|
|
141
141
|
when Gapic::Schema::Method
|
|
142
142
|
"{#{convert_address_to_ruby entity.parent}::Client##{entity.name.underscore} #{text}}"
|
|
143
|
-
when Gapic::Schema::Message, Gapic::Schema::Enum
|
|
143
|
+
when Gapic::Schema::Message, Gapic::Schema::Enum
|
|
144
144
|
"{#{convert_address_to_ruby entity} #{text}}"
|
|
145
|
+
when Gapic::Schema::EnumValue
|
|
146
|
+
"{#{convert_address_to_ruby entity.parent}::#{entity.name} #{text}}"
|
|
145
147
|
when Gapic::Schema::Field
|
|
146
148
|
"{#{convert_address_to_ruby entity.parent}##{entity.name} #{text}}"
|
|
147
149
|
end
|
|
@@ -63,16 +63,17 @@ module Gapic
|
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
# Gem level files
|
|
66
|
-
files << g("gem/gitignore.erb",
|
|
67
|
-
files << g("gem/version.erb",
|
|
68
|
-
files << g("gem/gemspec.erb",
|
|
69
|
-
files << g("gem/gemfile.erb",
|
|
70
|
-
files << g("gem/rakefile.erb",
|
|
71
|
-
files << g("gem/readme.erb",
|
|
72
|
-
files << g("gem/changelog.erb",
|
|
73
|
-
files << g("gem/rubocop.erb",
|
|
74
|
-
files << g("gem/yardopts.erb",
|
|
75
|
-
files << g("gem/license.erb",
|
|
66
|
+
files << g("gem/gitignore.erb", ".gitignore", gem: gem)
|
|
67
|
+
files << g("gem/version.erb", "lib/#{gem.version_file_path}", gem: gem)
|
|
68
|
+
files << g("gem/gemspec.erb", "#{gem.name}.gemspec", gem: gem)
|
|
69
|
+
files << g("gem/gemfile.erb", "Gemfile", gem: gem)
|
|
70
|
+
files << g("gem/rakefile.erb", "Rakefile", gem: gem)
|
|
71
|
+
files << g("gem/readme.erb", "README.md", gem: gem)
|
|
72
|
+
files << g("gem/changelog.erb", "CHANGELOG.md", gem: gem)
|
|
73
|
+
files << g("gem/rubocop.erb", ".rubocop.yml", gem: gem)
|
|
74
|
+
files << g("gem/yardopts.erb", ".yardopts", gem: gem)
|
|
75
|
+
files << g("gem/license.erb", "LICENSE.md", gem: gem)
|
|
76
|
+
files << g("gem/entrypoint.erb", "lib/#{gem.name}.rb", gem: gem)
|
|
76
77
|
|
|
77
78
|
gem.proto_files.each do |proto_file|
|
|
78
79
|
files << g("proto_docs/proto_file.erb", "proto_docs/#{proto_file.docs_file_path}", file: proto_file)
|
|
@@ -95,7 +95,7 @@ module Gapic
|
|
|
95
95
|
base_type =
|
|
96
96
|
if field.message?
|
|
97
97
|
type = message_ruby_type field.message
|
|
98
|
-
output ? type : "#{type}
|
|
98
|
+
output ? type : "#{type}, Hash"
|
|
99
99
|
elsif field.enum?
|
|
100
100
|
# TODO: handle when arg message is nil and enum is the type
|
|
101
101
|
message_ruby_type field.enum
|
|
@@ -37,6 +37,10 @@ module Gapic
|
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
def packages?
|
|
41
|
+
!packages.empty?
|
|
42
|
+
end
|
|
43
|
+
|
|
40
44
|
def services
|
|
41
45
|
@services ||= begin
|
|
42
46
|
files = @api.generate_files
|
|
@@ -134,11 +138,13 @@ module Gapic
|
|
|
134
138
|
end
|
|
135
139
|
|
|
136
140
|
def free_tier?
|
|
137
|
-
|
|
141
|
+
# Default to false unless the config is explicitly set to "true"
|
|
142
|
+
gem_config(:free_tier) == "true"
|
|
138
143
|
end
|
|
139
144
|
|
|
140
145
|
def yard_strict?
|
|
141
|
-
|
|
146
|
+
# Default to true unless the config is explicitly set to "false"
|
|
147
|
+
gem_config(:yard_strict) != "false"
|
|
142
148
|
end
|
|
143
149
|
|
|
144
150
|
def entrypoint_require
|
|
@@ -160,6 +160,16 @@ module Gapic
|
|
|
160
160
|
|
|
161
161
|
def paged?
|
|
162
162
|
return false if server_streaming? # Cannot page a streaming response
|
|
163
|
+
|
|
164
|
+
# HACK(dazuma, 2020-04-06): Two specific RPCs should not be paged.
|
|
165
|
+
# This is an intentionally hard-coded exception (and a temporary one,
|
|
166
|
+
# to be removed when these methods no longer conform to AIP-4233.) For
|
|
167
|
+
# detailed information, see internal link go/actools-talent-pagination.
|
|
168
|
+
address = @method.address.join "."
|
|
169
|
+
return false if address == "google.cloud.talent.v4beta1.ProfileService.SearchProfiles"
|
|
170
|
+
return false if address == "google.cloud.talent.v4beta1.JobService.SearchJobs"
|
|
171
|
+
return false if address == "google.cloud.talent.v4beta1.JobService.SearchJobsForAlert"
|
|
172
|
+
|
|
163
173
|
paged_request?(@method.input) && paged_response?(@method.output)
|
|
164
174
|
end
|
|
165
175
|
|
|
@@ -205,7 +215,7 @@ module Gapic
|
|
|
205
215
|
|
|
206
216
|
def doc_types_for arg
|
|
207
217
|
if arg.message?
|
|
208
|
-
"#{message_ruby_type arg.message}
|
|
218
|
+
"#{message_ruby_type arg.message}, Hash"
|
|
209
219
|
elsif arg.enum?
|
|
210
220
|
# TODO: handle when arg message is nil and enum is the type
|
|
211
221
|
message_ruby_type arg.enum
|
|
@@ -45,6 +45,14 @@ module Gapic
|
|
|
45
45
|
ruby_namespace_for_address address
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
+
def parent_namespace
|
|
49
|
+
namespace.split("::")[0...-1].join("::")
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def module_name
|
|
53
|
+
namespace.split("::").last
|
|
54
|
+
end
|
|
55
|
+
|
|
48
56
|
def services
|
|
49
57
|
@services ||= begin
|
|
50
58
|
files = @api.generate_files.select { |f| f.package == @package }
|
|
@@ -38,15 +38,9 @@ module Gapic
|
|
|
38
38
|
)
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
raise ArgumentError, "only resources without named patterns are supported, " \
|
|
45
|
-
" not #{pattern.template}"
|
|
46
|
-
elsif positional_args? pattern.segments
|
|
47
|
-
raise ArgumentError, "only resources with named segments are supported, " \
|
|
48
|
-
" not #{pattern.template}"
|
|
49
|
-
end
|
|
41
|
+
# Keep only patterns that can be used to create path helpers
|
|
42
|
+
@patterns.reject! do |pattern|
|
|
43
|
+
named_arg_patterns?(pattern.segments) || positional_args?(pattern.segments)
|
|
50
44
|
end
|
|
51
45
|
end
|
|
52
46
|
|
|
@@ -27,9 +27,10 @@ module Gapic
|
|
|
27
27
|
include Gapic::Helpers::FilepathHelper
|
|
28
28
|
include Gapic::Helpers::NamespaceHelper
|
|
29
29
|
|
|
30
|
-
def initialize api, service
|
|
30
|
+
def initialize api, service, parent_service: nil
|
|
31
31
|
@api = api
|
|
32
32
|
@service = service
|
|
33
|
+
@parent_service = parent_service
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
def gem
|
|
@@ -77,6 +78,10 @@ module Gapic
|
|
|
77
78
|
fix_namespace @api, "#{namespace}::#{name}"
|
|
78
79
|
end
|
|
79
80
|
|
|
81
|
+
def module_name
|
|
82
|
+
proto_service_name_full.split("::").last
|
|
83
|
+
end
|
|
84
|
+
|
|
80
85
|
def proto_service_file_path
|
|
81
86
|
@service.parent.name.sub ".proto", "_pb.rb"
|
|
82
87
|
end
|
|
@@ -113,6 +118,10 @@ module Gapic
|
|
|
113
118
|
service_file_path.split("/").last
|
|
114
119
|
end
|
|
115
120
|
|
|
121
|
+
def service_directory_name
|
|
122
|
+
service_require.split("/").last
|
|
123
|
+
end
|
|
124
|
+
|
|
116
125
|
def service_require
|
|
117
126
|
ruby_file_path @api, proto_service_name_full
|
|
118
127
|
end
|
|
@@ -146,6 +155,7 @@ module Gapic
|
|
|
146
155
|
end
|
|
147
156
|
|
|
148
157
|
def client_endpoint
|
|
158
|
+
return @parent_service.client_endpoint if @parent_service
|
|
149
159
|
@service.host || default_config(:default_host) || "localhost"
|
|
150
160
|
end
|
|
151
161
|
|
|
@@ -267,8 +277,7 @@ module Gapic
|
|
|
267
277
|
|
|
268
278
|
def lro_service
|
|
269
279
|
lro = @service.parent.parent.files.find { |file| file.name == "google/longrunning/operations.proto" }
|
|
270
|
-
|
|
271
|
-
return ServicePresenter.new @api, lro.services.first unless lro.nil?
|
|
280
|
+
return ServicePresenter.new @api, lro.services.first, parent_service: self unless lro.nil?
|
|
272
281
|
end
|
|
273
282
|
|
|
274
283
|
def config_channel_args
|
|
@@ -26,64 +26,42 @@ module Gapic
|
|
|
26
26
|
|
|
27
27
|
# @private
|
|
28
28
|
def lookup!
|
|
29
|
-
resources = @api.files.flat_map { |file| lookup_file_resource_descriptors file }
|
|
30
|
-
resources.compact.uniq
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @private
|
|
34
|
-
def lookup_file_resource_descriptors file
|
|
35
29
|
resources = []
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# @private
|
|
42
|
-
def service_resource_types
|
|
43
|
-
@service_resource_types ||= begin
|
|
44
|
-
@service.methods.flat_map do |method|
|
|
45
|
-
input_resource_types = message_resource_types method.input
|
|
46
|
-
|
|
47
|
-
if @api.generate_path_helpers_output?
|
|
48
|
-
output_resource_types = message_resource_types method.output
|
|
49
|
-
input_resource_types + output_resource_types
|
|
50
|
-
else
|
|
51
|
-
input_resource_types
|
|
52
|
-
end
|
|
53
|
-
end.uniq
|
|
30
|
+
@service.methods.each do |method|
|
|
31
|
+
resources.concat resources_for_message(method.input)
|
|
32
|
+
resources.concat resources_for_message(method.output) if @api.generate_path_helpers_output?
|
|
54
33
|
end
|
|
34
|
+
resources.uniq
|
|
55
35
|
end
|
|
56
36
|
|
|
57
37
|
# @private
|
|
58
|
-
def
|
|
59
|
-
|
|
38
|
+
def resources_for_message message, seen_messages = []
|
|
39
|
+
resources = []
|
|
40
|
+
return resources if seen_messages.include? message
|
|
60
41
|
seen_messages << message
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
message_resource_types nested_message, seen_messages
|
|
42
|
+
resources << message.resource if message.resource
|
|
43
|
+
message.nested_messages.each do |nested_message|
|
|
44
|
+
resources.concat resources_for_message(nested_message, seen_messages)
|
|
65
45
|
end
|
|
66
46
|
message.fields.each do |field|
|
|
67
|
-
|
|
68
|
-
|
|
47
|
+
resources.concat resources_for_reference(field.resource_reference) if field.resource_reference
|
|
48
|
+
resources.concat resources_for_message(field.message, seen_messages) if field.message?
|
|
69
49
|
end
|
|
70
|
-
|
|
50
|
+
resources
|
|
71
51
|
end
|
|
72
52
|
|
|
73
53
|
# @private
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
54
|
+
# Given a reference (either a type or child type), return the corresponding
|
|
55
|
+
# resources.
|
|
56
|
+
def resources_for_reference reference
|
|
57
|
+
if (type = reference.type) && !type.empty?
|
|
58
|
+
Array(@api.lookup_resource_type(type))
|
|
59
|
+
elsif (child_type = reference.child_type) && !child_type.empty?
|
|
60
|
+
child_resource = @api.lookup_resource_type child_type
|
|
61
|
+
child_resource ? child_resource.parent_resources : []
|
|
62
|
+
else
|
|
63
|
+
[]
|
|
84
64
|
end
|
|
85
|
-
|
|
86
|
-
resources
|
|
87
65
|
end
|
|
88
66
|
|
|
89
67
|
# Lookup all resources for a given service.
|
data/lib/gapic/schema/api.rb
CHANGED
|
@@ -51,6 +51,7 @@ module Gapic
|
|
|
51
51
|
loader.load_file fd, request.file_to_generate.include?(fd.name)
|
|
52
52
|
end
|
|
53
53
|
@files.each { |f| f.parent = self }
|
|
54
|
+
@resource_types = analyze_resources
|
|
54
55
|
end
|
|
55
56
|
|
|
56
57
|
def containing_api
|
|
@@ -243,8 +244,53 @@ module Gapic
|
|
|
243
244
|
end
|
|
244
245
|
end
|
|
245
246
|
|
|
247
|
+
# Get a resource given its type string
|
|
248
|
+
def lookup_resource_type resource_type
|
|
249
|
+
@resource_types[resource_type]
|
|
250
|
+
end
|
|
251
|
+
|
|
246
252
|
private
|
|
247
253
|
|
|
254
|
+
# Does a pre-analysis of all resources defined in the job. This has
|
|
255
|
+
# two effects:
|
|
256
|
+
# * Side effect: each resource has its parent_resources field set.
|
|
257
|
+
# * A mapping from resource type to resource wrapper is returned.
|
|
258
|
+
def analyze_resources
|
|
259
|
+
# In order to set parent_resources, we first populate a mapping from
|
|
260
|
+
# parsed pattern to resource mapping (in the patterns variable). This
|
|
261
|
+
# is done in one pass along with populating the resource type mapping.
|
|
262
|
+
# Then, we go through all resources again, get its expected parent
|
|
263
|
+
# patterns, and anything that shows up in the patterns mapping is taken
|
|
264
|
+
# to be a parent.
|
|
265
|
+
types = {}
|
|
266
|
+
patterns = {}
|
|
267
|
+
@files.each do |file|
|
|
268
|
+
file.resources.each { |resource| populate_resource_lookups resource, types, patterns }
|
|
269
|
+
file.messages.each { |message| populate_message_resource_lookups message, types, patterns }
|
|
270
|
+
end
|
|
271
|
+
types.each do |_type, resource|
|
|
272
|
+
parents = resource.parsed_parent_patterns
|
|
273
|
+
.map { |pat| patterns[pat] }
|
|
274
|
+
.compact.uniq
|
|
275
|
+
resource.parent_resources.replace parents
|
|
276
|
+
end
|
|
277
|
+
types
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
def populate_resource_lookups resource, types, patterns
|
|
281
|
+
types[resource.type] = resource
|
|
282
|
+
resource.parsed_patterns.each do |pat|
|
|
283
|
+
patterns[pat] = resource
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
def populate_message_resource_lookups message, types, patterns
|
|
288
|
+
populate_resource_lookups message.resource, types, patterns if message.resource
|
|
289
|
+
message.nested_messages.each do |nested|
|
|
290
|
+
populate_message_resource_lookups nested, types, patterns
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
|
|
248
294
|
def parse_parameter str
|
|
249
295
|
str.scan(/\\.|,|=|[^\\,=]+/)
|
|
250
296
|
.each_with_object([[String.new]]) do |tok, arr|
|
data/lib/gapic/schema/loader.rb
CHANGED
|
@@ -64,9 +64,13 @@ module Gapic
|
|
|
64
64
|
load_service registry, s, address, docs, [6, i]
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
+
# Load top-level resources
|
|
68
|
+
resource_descriptors = file_descriptor.options[:".google.api.resource_definition"] if file_descriptor.options
|
|
69
|
+
resources = Array(resource_descriptors).map { |descriptor| Resource.new descriptor }
|
|
70
|
+
|
|
67
71
|
# Construct and return the file.
|
|
68
72
|
File.new file_descriptor, address, docs[path], messages, enums,
|
|
69
|
-
services, file_to_generate, registry
|
|
73
|
+
services, resources, file_to_generate, registry
|
|
70
74
|
end
|
|
71
75
|
|
|
72
76
|
# Updates the fields of a message and it's nested messages.
|
|
@@ -158,9 +162,12 @@ module Gapic
|
|
|
158
162
|
load_field registry, e, address, docs, path + [6, i]
|
|
159
163
|
end
|
|
160
164
|
|
|
165
|
+
resource_descriptor = descriptor.options[:".google.api.resource"] if descriptor.options
|
|
166
|
+
resource = resource_descriptor ? Resource.new(resource_descriptor) : nil
|
|
167
|
+
|
|
161
168
|
# Construct, cache, and return.
|
|
162
169
|
msg = Message.new(descriptor, address, docs[path], fields, extensions,
|
|
163
|
-
nested_messages, nested_enums)
|
|
170
|
+
resource, nested_messages, nested_enums)
|
|
164
171
|
@prior_messages << msg
|
|
165
172
|
add_to_registry registry, address, msg
|
|
166
173
|
end
|
|
@@ -357,16 +357,19 @@ module Gapic
|
|
|
357
357
|
# Wrapper for a protobuf file.
|
|
358
358
|
#
|
|
359
359
|
# @!attribute [r] messages
|
|
360
|
-
# @
|
|
360
|
+
# @return [Enumerable<Message>] The top level messages contained in
|
|
361
361
|
# this file.
|
|
362
362
|
# @!attribute [r] enums
|
|
363
|
-
# @
|
|
363
|
+
# @return [Enumerable<Enum>] The top level enums contained in this
|
|
364
364
|
# file.
|
|
365
365
|
# @!attribute [r] services
|
|
366
|
-
# @
|
|
366
|
+
# @return [Enumerable<Service>] The services contained in this file.
|
|
367
|
+
# @!attribute [r] resources
|
|
368
|
+
# @return [Enumerable<Resource>] The top level resources contained in
|
|
369
|
+
# this file.
|
|
367
370
|
class File < Proto
|
|
368
371
|
extend Forwardable
|
|
369
|
-
attr_reader :messages, :enums, :services, :registry
|
|
372
|
+
attr_reader :messages, :enums, :services, :resources, :registry
|
|
370
373
|
|
|
371
374
|
# Initializes a message object.
|
|
372
375
|
# @param descriptor [Google::Protobuf::DescriptorProto] the protobuf
|
|
@@ -379,20 +382,23 @@ module Gapic
|
|
|
379
382
|
# file.
|
|
380
383
|
# @param enums [Enumerable<Enum>] The top level enums of this file.
|
|
381
384
|
# @param services [Enumerable<Service>] The services of this file.
|
|
385
|
+
# @param resources [Enumerable<Resource>] The resources from this file.
|
|
382
386
|
# @param generate [Boolean] Whether this file should be generated.
|
|
383
387
|
def initialize descriptor, address, docs, messages, enums, services,
|
|
384
|
-
generate, registry
|
|
388
|
+
resources, generate, registry
|
|
385
389
|
super descriptor, address, docs
|
|
386
390
|
@messages = messages || []
|
|
387
391
|
@enums = enums || []
|
|
388
392
|
@services = services || []
|
|
393
|
+
@resources = resources || []
|
|
389
394
|
@generate = generate
|
|
390
395
|
@registry = registry
|
|
391
396
|
|
|
392
397
|
# Apply parent
|
|
393
398
|
@messages.each { |m| m.parent = self }
|
|
394
|
-
@enums.each
|
|
399
|
+
@enums.each { |m| m.parent = self }
|
|
395
400
|
@services.each { |m| m.parent = self }
|
|
401
|
+
@resources.each { |m| m.parent = self }
|
|
396
402
|
end
|
|
397
403
|
|
|
398
404
|
def containing_file
|
|
@@ -413,13 +419,6 @@ module Gapic
|
|
|
413
419
|
options[:ruby_package] if options
|
|
414
420
|
end
|
|
415
421
|
|
|
416
|
-
# @return [Array<Google::Api::ResourceDescriptor>] A representation of the resource.
|
|
417
|
-
# This is generally intended to be attached to the "name" field.
|
|
418
|
-
# See `google/api/resource.proto`.
|
|
419
|
-
def resources
|
|
420
|
-
options[:".google.api.resource_definition"] if options
|
|
421
|
-
end
|
|
422
|
-
|
|
423
422
|
# @!method name
|
|
424
423
|
# @return [String] file name, relative to root of source tree.
|
|
425
424
|
# @!method package
|
|
@@ -511,6 +510,8 @@ module Gapic
|
|
|
511
510
|
# @ return [Enumerable<Field>] The fields of a message.
|
|
512
511
|
# @!attribute [r] extensions
|
|
513
512
|
# @ return [Enumerable<Field>] The extensions of a message.
|
|
513
|
+
# @!attribute [r] resource
|
|
514
|
+
# @ return [Resource,nil] A representation of the resource.
|
|
514
515
|
# @!attribute [r] nested_messages
|
|
515
516
|
# @ return [Enumerable<Message>] The nested message declarations of a
|
|
516
517
|
# message.
|
|
@@ -518,7 +519,7 @@ module Gapic
|
|
|
518
519
|
# @ return [Enumerable<Enum>] The nested enum declarations of a message.
|
|
519
520
|
class Message < Proto
|
|
520
521
|
extend Forwardable
|
|
521
|
-
attr_reader :fields, :extensions, :nested_messages, :nested_enums
|
|
522
|
+
attr_reader :fields, :extensions, :resource, :nested_messages, :nested_enums
|
|
522
523
|
|
|
523
524
|
# Initializes a message object.
|
|
524
525
|
# @param descriptor [Google::Protobuf::DescriptorProto] the protobuf
|
|
@@ -529,15 +530,17 @@ module Gapic
|
|
|
529
530
|
# of the proto. See #docs for more info.
|
|
530
531
|
# @param fields [Enumerable<Field>] The fields of this message.
|
|
531
532
|
# @param extensions [Enumerable<Field>] The extensions of this message.
|
|
533
|
+
# @param resource [Resource,nil] The resource of this message, or nil if none.
|
|
532
534
|
# @param nested_messages [Enumerable<Message>] The nested message
|
|
533
535
|
# declarations of this message.
|
|
534
536
|
# @param nested_enums [Enumerable<Enum>] The nested enum declarations
|
|
535
537
|
# of this message.
|
|
536
|
-
def initialize descriptor, address, docs, fields, extensions,
|
|
538
|
+
def initialize descriptor, address, docs, fields, extensions, resource,
|
|
537
539
|
nested_messages, nested_enums
|
|
538
540
|
super descriptor, address, docs
|
|
539
541
|
@fields = fields || []
|
|
540
542
|
@extensions = extensions || []
|
|
543
|
+
@resource = resource
|
|
541
544
|
@nested_messages = nested_messages || []
|
|
542
545
|
@nested_enums = nested_enums || []
|
|
543
546
|
|
|
@@ -545,13 +548,7 @@ module Gapic
|
|
|
545
548
|
@extensions.each { |x| x.parent = self }
|
|
546
549
|
@nested_messages.each { |m| m.parent = self }
|
|
547
550
|
@nested_enums.each { |e| e.parent = self }
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
# @return [Google::Api::ResourceDescriptor] A representation of the resource.
|
|
551
|
-
# This is generally intended to be attached to the "name" field.
|
|
552
|
-
# See `google/api/resource.proto`.
|
|
553
|
-
def resource
|
|
554
|
-
options[:".google.api.resource"] if options
|
|
551
|
+
@resource.parent = self if @resource
|
|
555
552
|
end
|
|
556
553
|
|
|
557
554
|
# @return [Boolean] whether this type is a map entry
|
|
@@ -736,5 +733,95 @@ module Gapic
|
|
|
736
733
|
:options
|
|
737
734
|
)
|
|
738
735
|
end
|
|
736
|
+
|
|
737
|
+
# Wrapper for a protobuf Resource.
|
|
738
|
+
#
|
|
739
|
+
# Unlike most wrappers, this does not subclass the {Proto} wrapper because
|
|
740
|
+
# it does not use the fields exposed by that wrapper (`address`, `docs`,
|
|
741
|
+
# etc.) This is here principally to augment the resource definition with
|
|
742
|
+
# information about resource parent-child relationships.
|
|
743
|
+
#
|
|
744
|
+
# Resource parentage is defined implicitly by path patterns. The algorithm
|
|
745
|
+
# is as follows:
|
|
746
|
+
# * If the final segment of a pattern is an ID segment (i.e. `*` or some
|
|
747
|
+
# `{name}`) then remove it and the previous segment (which we assume to
|
|
748
|
+
# be the corresponding collection identifier, as described in AIP-122.)
|
|
749
|
+
# The resulting pattern is what we expect a parent to have.
|
|
750
|
+
# * If the final segment is static, then assume the pattern represents a
|
|
751
|
+
# singleton resource (AIP-156) and remove only that one segment. The
|
|
752
|
+
# resulting pattern is what we expect a parent to have.
|
|
753
|
+
#
|
|
754
|
+
# The {Resource#parsed_parent_patterns} method returns the set of patterns
|
|
755
|
+
# we expect of parents. It is then possible to search for resources with
|
|
756
|
+
# those patterns to determine what the parents are.
|
|
757
|
+
#
|
|
758
|
+
# @!attribute [rw] parent
|
|
759
|
+
# @return [Gapic::Schema::File,Gapic::Schema::Message] The parent object.
|
|
760
|
+
# @!attribute [r] descriptor
|
|
761
|
+
# @return [Array<Gapic::Schema::ResourceDescriptor>] The resource
|
|
762
|
+
# descriptor.
|
|
763
|
+
# @!attribute [r] parsed_patterns
|
|
764
|
+
# @return [Array<Array<String>>] The normalized, segmented forms of the
|
|
765
|
+
# patterns. Normalized means all ID segments are replaced by asterisks
|
|
766
|
+
# to remove non-structural differences due to different names being
|
|
767
|
+
# used. Segmented means simply split on slashes.
|
|
768
|
+
# For example, if a pattern is `"projects/{project}""`, the
|
|
769
|
+
# corresponding parsed pattern would be `["projects", "*"]`.
|
|
770
|
+
# @!attribute [r] parent_resources
|
|
771
|
+
# @return [Array<Gapic::Schema::Resource>] Parent resources
|
|
772
|
+
class Resource
|
|
773
|
+
extend Forwardable
|
|
774
|
+
attr_reader :descriptor, :parsed_patterns, :parent_resources
|
|
775
|
+
attr_accessor :parent
|
|
776
|
+
|
|
777
|
+
# Initializes a resource object.
|
|
778
|
+
# @param descriptor [Google::Protobuf::ResourceDescriptor] the protobuf
|
|
779
|
+
# representation of this resource.
|
|
780
|
+
def initialize descriptor
|
|
781
|
+
@parent = nil
|
|
782
|
+
@descriptor = descriptor
|
|
783
|
+
@parsed_patterns = descriptor.pattern.map do |pattern|
|
|
784
|
+
pattern.split("/").map do |segment|
|
|
785
|
+
segment =~ %r{\{[^/\}]+(=[^\}]+)?\}} ? "*" : segment
|
|
786
|
+
end.freeze
|
|
787
|
+
end.freeze
|
|
788
|
+
@parent_resources = []
|
|
789
|
+
end
|
|
790
|
+
|
|
791
|
+
# Returns the "root" of this schema.
|
|
792
|
+
# @return [Gapic::Schema::Api]
|
|
793
|
+
def containing_api
|
|
794
|
+
parent&.containing_api
|
|
795
|
+
end
|
|
796
|
+
|
|
797
|
+
# Returns the file containing this proto entity
|
|
798
|
+
# @return [Gapic::Schema::File]
|
|
799
|
+
def containing_file
|
|
800
|
+
parent&.containing_file
|
|
801
|
+
end
|
|
802
|
+
|
|
803
|
+
# Returns parsed patterns for the expected parents.
|
|
804
|
+
# @return [Array<Array<String>>]
|
|
805
|
+
def parsed_parent_patterns
|
|
806
|
+
@parsed_patterns.map do |pat|
|
|
807
|
+
parent = pat.last =~ /^\*\*?$/ ? pat[0...-2] : pat[0...-1]
|
|
808
|
+
parent.empty? ? nil : parent
|
|
809
|
+
end.compact.uniq
|
|
810
|
+
end
|
|
811
|
+
|
|
812
|
+
# @!method type
|
|
813
|
+
# @return [String] the resource type string.
|
|
814
|
+
# @!method pattern
|
|
815
|
+
# @return [Array<String>] the set of patterns.
|
|
816
|
+
# @!method name_field
|
|
817
|
+
# @return [String] the field on the resource that designates the
|
|
818
|
+
# resource name field. If omitted, this is assumed to be "name".
|
|
819
|
+
def_delegators(
|
|
820
|
+
:descriptor,
|
|
821
|
+
:type,
|
|
822
|
+
:pattern,
|
|
823
|
+
:name_field
|
|
824
|
+
)
|
|
825
|
+
end
|
|
739
826
|
end
|
|
740
827
|
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<%- assert_locals gem -%>
|
|
2
|
+
<%= render partial: "shared/header" -%>
|
|
3
|
+
|
|
4
|
+
# This gem does not autoload during Bundler.require. To load this gem,
|
|
5
|
+
# issue explicit require statements for the packages desired, e.g.:
|
|
6
|
+
<%- gem.packages.each do |package| -%>
|
|
7
|
+
# require "<%= package.package_require %>"
|
|
8
|
+
<%- end -%>
|
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |gem|
|
|
|
25
25
|
|
|
26
26
|
gem.add_dependency "gapic-common", "~> 0.2"
|
|
27
27
|
<%- if gem.iam_dependency? -%>
|
|
28
|
-
gem.add_dependency "grpc-google-iam-v1", "
|
|
28
|
+
gem.add_dependency "grpc-google-iam-v1", ">= 0.6.10", "< 2.0"
|
|
29
29
|
<%- end -%>
|
|
30
30
|
|
|
31
31
|
gem.add_development_dependency "google-style", "~> 1.24.0"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <%= gem.title %>
|
|
1
|
+
# Ruby Client for the <%= gem.title %> API
|
|
2
2
|
|
|
3
3
|
<%= gem.summary %>
|
|
4
4
|
|
|
@@ -12,6 +12,20 @@
|
|
|
12
12
|
$ gem install <%= gem.name %>
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
require "<%= gem.entrypoint_require %>"
|
|
19
|
+
<%- service = gem.packages.first&.services.first -%>
|
|
20
|
+
<%- method = service&.methods.first -%>
|
|
21
|
+
<%- if service && method -%>
|
|
22
|
+
|
|
23
|
+
client = <%= service.create_client_call %>
|
|
24
|
+
request = my_create_request
|
|
25
|
+
response = client.<%= method.name %> request
|
|
26
|
+
<%- end -%>
|
|
27
|
+
```
|
|
28
|
+
|
|
15
29
|
## Supported Ruby Versions
|
|
16
30
|
|
|
17
31
|
This library is supported on Ruby 2.4+.
|
|
@@ -9,53 +9,25 @@ AllCops:
|
|
|
9
9
|
- "test/**/*"
|
|
10
10
|
|
|
11
11
|
Metrics/AbcSize:
|
|
12
|
-
|
|
13
|
-
<%- gem.packages.each do |package| -%>
|
|
14
|
-
<%- package.services.each do |service| -%>
|
|
15
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
|
16
|
-
<%- end -%>
|
|
17
|
-
<%- end -%>
|
|
12
|
+
Enabled: false
|
|
18
13
|
Metrics/ClassLength:
|
|
19
|
-
|
|
20
|
-
<%- gem.packages.each do |package| -%>
|
|
21
|
-
<%- package.services.each do |service| -%>
|
|
22
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
|
23
|
-
<%- end -%>
|
|
24
|
-
<%- end -%>
|
|
14
|
+
Enabled: false
|
|
25
15
|
Metrics/CyclomaticComplexity:
|
|
26
|
-
|
|
27
|
-
<%- gem.packages.each do |package| -%>
|
|
28
|
-
<%- package.services.each do |service| -%>
|
|
29
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
|
30
|
-
<%- end -%>
|
|
31
|
-
<%- end -%>
|
|
16
|
+
Enabled: false
|
|
32
17
|
Metrics/LineLength:
|
|
33
|
-
|
|
34
|
-
<%- gem.packages.each do |package| -%>
|
|
35
|
-
<%- package.services.each do |service| -%>
|
|
36
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
|
37
|
-
<%- end -%>
|
|
38
|
-
<%- end -%>
|
|
18
|
+
Enabled: false
|
|
39
19
|
Metrics/MethodLength:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
|
44
|
-
<%- end -%>
|
|
45
|
-
<%- end -%>
|
|
20
|
+
Enabled: false
|
|
21
|
+
Metrics/ModuleLength:
|
|
22
|
+
Enabled: false
|
|
46
23
|
Metrics/PerceivedComplexity:
|
|
24
|
+
Enabled: false
|
|
25
|
+
Naming/FileName:
|
|
47
26
|
Exclude:
|
|
48
|
-
|
|
49
|
-
<%- package.services.each do |service| -%>
|
|
50
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
|
51
|
-
<%- end -%>
|
|
52
|
-
<%- end -%>
|
|
27
|
+
- "lib/<%= gem.name %>.rb"
|
|
53
28
|
Style/CaseEquality:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- "lib/<%= service.client_file_path.sub "client.rb", "*.rb" %>"
|
|
58
|
-
<%- end -%>
|
|
59
|
-
<%- end -%>
|
|
29
|
+
Enabled: false
|
|
30
|
+
Style/IfUnlessModifier:
|
|
31
|
+
Enabled: false
|
|
60
32
|
Style/ModuleFunction:
|
|
61
33
|
Enabled: false
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<%- assert_locals package -%>
|
|
2
|
+
<% @requires = capture do %>
|
|
3
|
+
<%- package.services.each do |service| -%>
|
|
4
|
+
require "<%= service.service_require %>"
|
|
5
|
+
<%- end -%>
|
|
6
|
+
require "<%= package.gem.version_require %>"
|
|
7
|
+
<% end %>
|
|
8
|
+
<%- unless package.empty? -%>
|
|
9
|
+
##
|
|
10
|
+
# To load this package, including all its services, and instantiate a client:
|
|
11
|
+
#
|
|
12
|
+
# require "<%= package.package_require %>"
|
|
13
|
+
# client = <%= package.services.first.create_client_call %>
|
|
14
|
+
#
|
|
15
|
+
<%- end -%>
|
|
16
|
+
module <%= package.module_name %>
|
|
17
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<%- assert_locals service -%>
|
|
2
|
+
<% @requires = capture do %>
|
|
3
|
+
require "gapic/common"
|
|
4
|
+
require "gapic/config"
|
|
5
|
+
require "gapic/config/method"
|
|
6
|
+
|
|
7
|
+
require "<%= service.gem.version_require %>"
|
|
8
|
+
|
|
9
|
+
require "<%= service.credentials_require %>"
|
|
10
|
+
<%- if service.paths? -%>
|
|
11
|
+
require "<%= service.paths_require %>"
|
|
12
|
+
<%- end -%>
|
|
13
|
+
<%- if service.lro? -%>
|
|
14
|
+
require "<%= service.operations_require %>"
|
|
15
|
+
<%- end -%>
|
|
16
|
+
require "<%= service.client_require %>"
|
|
17
|
+
<% end %>
|
|
18
|
+
##
|
|
19
|
+
<%- if service.doc_description -%>
|
|
20
|
+
<%= indent service.doc_description, "# " %>
|
|
21
|
+
#
|
|
22
|
+
<%- end -%>
|
|
23
|
+
# To load this service and instantiate a client:
|
|
24
|
+
#
|
|
25
|
+
# require "<%= service.service_require %>"
|
|
26
|
+
# client = <%= service.create_client_call %>
|
|
27
|
+
#
|
|
28
|
+
module <%= service.module_name %>
|
|
29
|
+
end
|
|
30
|
+
<% @footer = capture do %>
|
|
31
|
+
<%= render partial: "service/helpers", locals: { service: service} -%>
|
|
32
|
+
<% end %>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<%- assert_locals package -%>
|
|
2
|
-
<%= render partial: "
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
<%= render partial: "lib/package",
|
|
3
|
+
layout: "layouts/ruby",
|
|
4
|
+
locals: { package: package,
|
|
5
|
+
namespace: package.parent_namespace }
|
|
6
|
+
%>
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<%- assert_locals service -%>
|
|
2
|
-
<%= render partial: "
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<%- end -%>
|
|
8
|
-
require "<%= service.credentials_require %>"
|
|
2
|
+
<%= render partial: "lib/service",
|
|
3
|
+
layout: "layouts/ruby",
|
|
4
|
+
locals: { service: service,
|
|
5
|
+
namespace: service.namespace }
|
|
6
|
+
%>
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
<%- assert_locals service -%>
|
|
2
2
|
<% @requires = capture do %>
|
|
3
|
-
require "gapic/common"
|
|
4
|
-
require "gapic/config"
|
|
5
|
-
require "gapic/config/method"
|
|
6
|
-
|
|
7
3
|
<%= render partial: "service/client/requires", locals: { service: service} -%>
|
|
8
|
-
require "<%= service.gem.version_require %>"
|
|
9
4
|
require "<%= service.proto_service_require %>"
|
|
10
|
-
require "<%= service.credentials_require %>"
|
|
11
|
-
<%- if service.paths? -%>
|
|
12
|
-
require "<%= service.paths_require %>"
|
|
13
|
-
<%- end -%>
|
|
14
|
-
<%- if service.lro? -%>
|
|
15
|
-
require "<%= service.operations_require %>"
|
|
16
|
-
<%- end -%>
|
|
17
5
|
<% end %>
|
|
18
6
|
##
|
|
19
7
|
# Client for the <%= service.name %> service.
|
|
@@ -137,7 +125,3 @@ class <%= service.client_name %>
|
|
|
137
125
|
|
|
138
126
|
<%= indent_tail render(partial: "service/client/config", locals: { service: service }), 2 %>
|
|
139
127
|
end
|
|
140
|
-
|
|
141
|
-
<% @footer = capture do %>
|
|
142
|
-
<%= render partial: "service/client/helpers", locals: { service: service} %>
|
|
143
|
-
<% end %>
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
<%- assert_locals service -%>
|
|
2
2
|
<% @requires = capture do %>
|
|
3
|
-
require "gapic/common"
|
|
4
3
|
require "gapic/operation"
|
|
5
|
-
|
|
6
|
-
require "<%= service.gem.version_require %>"
|
|
7
|
-
require "<%= service.client_require %>"
|
|
8
4
|
require "<%= service.lro_service.proto_service_require %>"
|
|
9
5
|
<% end %>
|
|
10
6
|
# Service that implements Longrunning Operations API.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<%- assert_locals resource -%>
|
|
2
2
|
<%- if resource.patterns.count == 1 -%>
|
|
3
3
|
<%= render partial: "service/client/resource/single", locals: { resource: resource } %>
|
|
4
|
-
<%-
|
|
4
|
+
<%- elsif !resource.patterns.empty? -%>
|
|
5
5
|
<%= render partial: "service/client/resource/multi", locals: { resource: resource } %>
|
|
6
6
|
<%- end -%>
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
<%- assert_locals method -%>
|
|
2
2
|
# @overload <%= method.name %>(request, options = nil)
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
# Pass arguments to `<%= method.name %>` via a request object, either of type
|
|
4
|
+
# {<%= method.request_type %>} or an equivalent Hash.
|
|
5
|
+
#
|
|
6
|
+
# @param request [<%= method.request_type %>, Hash]
|
|
7
|
+
# A request object representing the call parameters. Required. To specify no
|
|
8
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
|
7
9
|
# @param options [Gapic::CallOptions, Hash]
|
|
8
10
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
|
9
11
|
<%-if method.arguments.any?-%>
|
|
10
12
|
#
|
|
11
13
|
<%- arg_list = method.arguments.map { |arg| "#{arg.name}: nil"}.join ", " -%>
|
|
12
14
|
# @overload <%= method.name %>(<%= arg_list %>)
|
|
15
|
+
# Pass arguments to `<%= method.name %>` via keyword arguments. Note that at
|
|
16
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
|
17
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
|
18
|
+
#
|
|
13
19
|
<%- method.arguments.each do |arg| -%>
|
|
14
20
|
# @param <%= arg.name %> [<%= arg.doc_types %>]
|
|
15
21
|
<%- if arg.doc_description -%>
|
|
@@ -17,4 +23,3 @@
|
|
|
17
23
|
<%- end -%>
|
|
18
24
|
<%- end -%>
|
|
19
25
|
<%- end -%>
|
|
20
|
-
#
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<%- assert_locals method -%>
|
|
2
|
-
# @param request [Gapic::StreamInput, Enumerable<<%= method.request_type
|
|
2
|
+
# @param request [Gapic::StreamInput, Enumerable<<%= method.request_type %>, Hash>]
|
|
3
3
|
# An enumerable of {<%= method.request_type %>} instances.
|
|
4
4
|
# @param options [Gapic::CallOptions, Hash]
|
|
5
5
|
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
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.3.3
|
|
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: 2020-
|
|
13
|
+
date: 2020-04-13 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: actionpack
|
|
@@ -251,6 +251,7 @@ files:
|
|
|
251
251
|
- lib/google/rpc/status.pb.rb
|
|
252
252
|
- templates/default/gem/_version.erb
|
|
253
253
|
- templates/default/gem/changelog.erb
|
|
254
|
+
- templates/default/gem/entrypoint.erb
|
|
254
255
|
- templates/default/gem/gemfile.erb
|
|
255
256
|
- templates/default/gem/gemspec.erb
|
|
256
257
|
- templates/default/gem/gitignore.erb
|
|
@@ -264,6 +265,8 @@ files:
|
|
|
264
265
|
- templates/default/helpers/filepath_helper.rb
|
|
265
266
|
- templates/default/helpers/namespace_helper.rb
|
|
266
267
|
- templates/default/layouts/_ruby.erb
|
|
268
|
+
- templates/default/lib/_package.erb
|
|
269
|
+
- templates/default/lib/_service.erb
|
|
267
270
|
- templates/default/package.erb
|
|
268
271
|
- templates/default/proto_docs/_enum.erb
|
|
269
272
|
- templates/default/proto_docs/_message.erb
|
|
@@ -271,11 +274,11 @@ files:
|
|
|
271
274
|
- templates/default/proto_docs/proto_file.erb
|
|
272
275
|
- templates/default/proto_docs/readme.erb
|
|
273
276
|
- templates/default/service.erb
|
|
277
|
+
- templates/default/service/_helpers.erb
|
|
274
278
|
- templates/default/service/client.erb
|
|
275
279
|
- templates/default/service/client/_client.erb
|
|
276
280
|
- templates/default/service/client/_config.erb
|
|
277
281
|
- templates/default/service/client/_credentials.erb
|
|
278
|
-
- templates/default/service/client/_helpers.erb
|
|
279
282
|
- templates/default/service/client/_operations.erb
|
|
280
283
|
- templates/default/service/client/_paths.erb
|
|
281
284
|
- templates/default/service/client/_requires.erb
|