gapic-generator 0.7.5 → 0.10.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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/lib/gapic/generator/version.rb +1 -1
  4. data/lib/gapic/generators/default_generator.rb +11 -1
  5. data/lib/gapic/generators/default_generator_parameters.rb +3 -1
  6. data/lib/gapic/presenters.rb +2 -0
  7. data/lib/gapic/presenters/gem_presenter.rb +63 -10
  8. data/lib/gapic/presenters/method/rest_pagination_info.rb +246 -0
  9. data/lib/gapic/presenters/method_presenter.rb +21 -2
  10. data/lib/gapic/presenters/method_rest_presenter.rb +70 -4
  11. data/lib/gapic/presenters/resource_presenter.rb +8 -0
  12. data/lib/gapic/presenters/service_config_presenter.rb +48 -0
  13. data/lib/gapic/presenters/service_presenter.rb +69 -0
  14. data/lib/gapic/presenters/service_rest_presenter.rb +36 -28
  15. data/lib/gapic/presenters/snippet_presenter.rb +103 -0
  16. data/lib/gapic/schema/api.rb +32 -8
  17. data/lib/gapic/schema/request_param_parser.rb +2 -2
  18. data/lib/gapic/schema/wrappers.rb +26 -0
  19. data/templates/default/gem/readme.erb +3 -3
  20. data/templates/default/lib/rest/_rest.erb +0 -2
  21. data/templates/default/service/client/_client.erb +18 -20
  22. data/templates/default/service/client/_config.erb +13 -14
  23. data/templates/default/service/client/_credentials.erb +2 -0
  24. data/templates/default/service/client/_operations.erb +1 -1
  25. data/templates/default/service/client/_paths.erb +1 -1
  26. data/templates/default/service/client/_self_configure_defaults.erb +2 -2
  27. data/templates/default/service/client/method/_def.erb +2 -0
  28. data/templates/default/service/client/method/def/_options_defaults.erb +3 -1
  29. data/templates/default/service/client/method/docs/_deprecated.erb +5 -0
  30. data/templates/default/service/client/method/docs/_snippets.erb +6 -0
  31. data/templates/default/service/rest/client/_client.erb +15 -24
  32. data/templates/default/service/rest/client/_config.erb +48 -0
  33. data/templates/default/service/rest/client/method/_def.erb +1 -1
  34. data/templates/default/service/rest/client/method/def/_options_defaults.erb +7 -3
  35. data/templates/default/service/rest/client/method/def/_response.erb +6 -0
  36. data/templates/default/service/rest/client/method/def/_response_normal.erb +4 -15
  37. data/templates/default/service/rest/client/method/def/_response_paged.erb +7 -0
  38. data/templates/default/service/rest/client/method/docs/_result.erb +3 -3
  39. data/templates/default/service/rest/service_stub.erb +6 -0
  40. data/templates/default/service/rest/service_stub/_service_stub.erb +25 -0
  41. data/templates/default/service/rest/{grpc_transcoding/method → service_stub/grpc_transcoding_method}/_def.erb +4 -1
  42. data/templates/default/service/rest/{grpc_transcoding/method → service_stub/grpc_transcoding_method}/def/_query_string_param.erb +0 -0
  43. data/templates/default/service/rest/service_stub/method/_def.erb +20 -0
  44. data/templates/default/service/rest/service_stub/method/def/_request.erb +2 -0
  45. data/templates/default/service/rest/service_stub/method/def/_response.erb +17 -0
  46. data/templates/default/service/rest/test/client.erb +18 -0
  47. data/templates/default/service/rest/test/method/_assert_response.erb +2 -0
  48. data/templates/default/service/rest/test/method/_configure.erb +19 -0
  49. data/templates/default/service/rest/test/method/_normal.erb +71 -0
  50. data/templates/default/service/rest/test/method/_setup.erb +38 -0
  51. data/templates/default/service/test/client_paths.erb +1 -1
  52. data/templates/default/snippets/gemfile.erb +17 -0
  53. data/templates/default/snippets/snippet/_structure.erb +71 -0
  54. data/templates/default/snippets/standalone.erb +6 -0
  55. metadata +29 -12
  56. data/templates/default/service/client/_self_configure_retry_policy.erb +0 -15
  57. data/templates/default/service/rest/client/_requires.erb +0 -1
  58. data/templates/default/service/rest/grpc_transcoding/_grpc_transcoding.erb +0 -9
@@ -0,0 +1,38 @@
1
+ class ClientStub
2
+ attr_accessor :call_count, :requests
3
+
4
+ def initialize response, &block
5
+ @response = response
6
+ @block = block
7
+ @call_count = 0
8
+ @requests = []
9
+ end
10
+
11
+ def make_get_request uri:, params: {}, options: {}
12
+ make_http_request :get, uri: uri, body: nil, params: params, options: options
13
+ end
14
+
15
+ def make_delete_request uri:, params: {}, options: {}
16
+ make_http_request :delete, uri: uri, body: nil, params: params, options: options
17
+ end
18
+
19
+ def make_post_request uri:, body: nil, params: {}, options: {}
20
+ make_http_request :post, uri: uri, body: body, params: params, options: options
21
+ end
22
+
23
+ def make_patch_request uri:, body:, params: {}, options: {}
24
+ make_http_request :patch, uri: uri, body: body, params: params, options: options
25
+ end
26
+
27
+ def make_put_request uri:, body:, params: {}, options: {}
28
+ make_http_request :put, uri: uri, body: body, params: params, options: options
29
+ end
30
+
31
+ def make_http_request *args, **kwargs
32
+ @call_count += 1
33
+
34
+ @requests << @block&.call(*args, **kwargs)
35
+
36
+ @response
37
+ end
38
+ end
@@ -7,7 +7,7 @@ require "gapic/grpc/service_stub"
7
7
  require "<%= service.service_require %>"
8
8
 
9
9
  class <%= service.client_name_full %>PathsTest < Minitest::Test
10
- <%- service.references.each do |resource| -%>
10
+ <%- service.deduped_references.each do |resource| -%>
11
11
  <%= indent render(partial: "service/test/resource",
12
12
  locals: { resource: resource, service: service }), 2 %>
13
13
 
@@ -0,0 +1,17 @@
1
+ <%- assert_locals gem -%>
2
+ <%= render partial: "shared/header" -%>
3
+
4
+ source "https://rubygems.org"
5
+
6
+ if ENV["GOOGLE_CLOUD_SAMPLES_TEST"] == "master"
7
+ gem "<%= gem.name %>", path: "../"
8
+ else
9
+ gem "<%= gem.name %>"
10
+ end
11
+
12
+ group :test do
13
+ gem "google-style", "~> 1.25.1"
14
+ gem "minitest", "~> 5.14"
15
+ gem "minitest-focus", "~> 1.1"
16
+ gem "minitest-hooks", "~> 1.5"
17
+ end
@@ -0,0 +1,71 @@
1
+ <%- assert_locals snippet -%>
2
+ require "<%= snippet.require_path %>"
3
+
4
+ # Create a client object. The client can be reused for multiple calls.
5
+ client = <%= snippet.client_type %>.new
6
+
7
+ <%- if snippet.bidi_streaming? -%>
8
+ # Create an input stream
9
+ input = Gapic::StreamInput.new
10
+
11
+ # Call the <%= snippet.method_name %> method to start streaming.
12
+ output = client.<%= snippet.method_name %> input
13
+
14
+ # Send requests on the stream. For each request, pass in keyword
15
+ # arguments to set fields. Be sure to close the stream when done.
16
+ input << <%= snippet.request_type %>.new
17
+ input << <%= snippet.request_type %>.new
18
+ input.close
19
+
20
+ # Handle streamed responses. These may be interleaved with inputs.
21
+ # Each response is of type <%= snippet.base_response_type %>.
22
+ output.each do |response|
23
+ p response
24
+ end
25
+ <%- else -%>
26
+ <%- if snippet.client_streaming? -%>
27
+ # Create a stream of requests, as an Enumerator.
28
+ # For each request, pass in keyword arguments to set fields.
29
+ request = [
30
+ <%= snippet.request_type %>.new,
31
+ <%= snippet.request_type %>.new
32
+ ].to_enum
33
+ <%- else -%>
34
+ # Create a request. To set request fields, pass in keyword arguments.
35
+ request = <%= snippet.request_type %>.new
36
+ <%- end -%>
37
+
38
+ # Call the <%= snippet.method_name %> method.
39
+ result = client.<%= snippet.method_name %> request
40
+
41
+ <%- case snippet.response_kind -%>
42
+ <%- when :lro -%>
43
+ # The returned object is of type Gapic::Operation. You can use this
44
+ # object to check the status of an operation, cancel it, or wait
45
+ # for results. Here is how to block until completion:
46
+ result.wait_until_done! timeout: 60
47
+ if result.response?
48
+ p result.response
49
+ else
50
+ puts "Error!"
51
+ end
52
+ <%- when :paged -%>
53
+ # The returned object is of type Gapic::PagedEnumerable. You can
54
+ # iterate over all elements by calling #each, and the enumerable
55
+ # will lazily make API calls to fetch subsequent pages. Other
56
+ # methods are also available for managing paging directly.
57
+ result.each do |response|
58
+ # Each element is of type <%= snippet.paged_response_type %>.
59
+ p response
60
+ end
61
+ <%- when :streaming -%>
62
+ # The returned object is a streamed enumerable yielding elements of
63
+ # type <%= snippet.base_response_type %>.
64
+ result.each do |response|
65
+ p response
66
+ end
67
+ <%- else -%>
68
+ # The returned object is of type <%= snippet.return_type %>.
69
+ p result
70
+ <%- end -%>
71
+ <%- end -%>
@@ -0,0 +1,6 @@
1
+ <%- assert_locals snippet -%>
2
+ <%= render partial: "shared/header" -%>
3
+
4
+ # [START <%= snippet.region_tag %>]
5
+ <%= render partial: "snippets/snippet/structure", locals: { snippet: snippet} -%>
6
+ # [END <%= snippet.region_tag %>]
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gapic-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernest Landrito
8
8
  - Chris Smith
9
9
  - Mike Moore
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-05-18 00:00:00.000000000 Z
13
+ date: 2021-08-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: actionpack
@@ -152,7 +152,7 @@ dependencies:
152
152
  - - "~>"
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0.9'
155
- description:
155
+ description:
156
156
  email:
157
157
  - landrito@google.com
158
158
  - quartzmo@gmail.com
@@ -215,13 +215,16 @@ files:
215
215
  - lib/gapic/presenters/file_presenter.rb
216
216
  - lib/gapic/presenters/gem_presenter.rb
217
217
  - lib/gapic/presenters/message_presenter.rb
218
+ - lib/gapic/presenters/method/rest_pagination_info.rb
218
219
  - lib/gapic/presenters/method_presenter.rb
219
220
  - lib/gapic/presenters/method_rest_presenter.rb
220
221
  - lib/gapic/presenters/package_presenter.rb
221
222
  - lib/gapic/presenters/resource_presenter.rb
222
223
  - lib/gapic/presenters/sample_presenter.rb
224
+ - lib/gapic/presenters/service_config_presenter.rb
223
225
  - lib/gapic/presenters/service_presenter.rb
224
226
  - lib/gapic/presenters/service_rest_presenter.rb
227
+ - lib/gapic/presenters/snippet_presenter.rb
225
228
  - lib/gapic/resource_lookup.rb
226
229
  - lib/gapic/ruby_info.rb
227
230
  - lib/gapic/runner.rb
@@ -284,7 +287,6 @@ files:
284
287
  - templates/default/service/client/_resource.erb
285
288
  - templates/default/service/client/_self_configure.erb
286
289
  - templates/default/service/client/_self_configure_defaults.erb
287
- - templates/default/service/client/_self_configure_retry_policy.erb
288
290
  - templates/default/service/client/method/_def.erb
289
291
  - templates/default/service/client/method/def/_options_defaults.erb
290
292
  - templates/default/service/client/method/def/_request.erb
@@ -294,6 +296,7 @@ files:
294
296
  - templates/default/service/client/method/def/_response.erb
295
297
  - templates/default/service/client/method/def/_response_normal.erb
296
298
  - templates/default/service/client/method/def/_response_paged.erb
299
+ - templates/default/service/client/method/docs/_deprecated.erb
297
300
  - templates/default/service/client/method/docs/_error.erb
298
301
  - templates/default/service/client/method/docs/_request.erb
299
302
  - templates/default/service/client/method/docs/_request_field.erb
@@ -303,6 +306,7 @@ files:
303
306
  - templates/default/service/client/method/docs/_sample.erb
304
307
  - templates/default/service/client/method/docs/_sample_response.erb
305
308
  - templates/default/service/client/method/docs/_samples.erb
309
+ - templates/default/service/client/method/docs/_snippets.erb
306
310
  - templates/default/service/client/method/docs/request_field/_arg.erb
307
311
  - templates/default/service/client/method/docs/request_field/_hash.erb
308
312
  - templates/default/service/client/method/docs/sample_response/_comment.erb
@@ -321,18 +325,28 @@ files:
321
325
  - templates/default/service/rest/client.erb
322
326
  - templates/default/service/rest/client/_client.erb
323
327
  - templates/default/service/rest/client/_config.erb
324
- - templates/default/service/rest/client/_requires.erb
325
328
  - templates/default/service/rest/client/method/_def.erb
326
329
  - templates/default/service/rest/client/method/def/_options_defaults.erb
327
330
  - templates/default/service/rest/client/method/def/_rescue.erb
331
+ - templates/default/service/rest/client/method/def/_response.erb
328
332
  - templates/default/service/rest/client/method/def/_response_normal.erb
333
+ - templates/default/service/rest/client/method/def/_response_paged.erb
329
334
  - templates/default/service/rest/client/method/docs/_error.erb
330
335
  - templates/default/service/rest/client/method/docs/_request.erb
331
336
  - templates/default/service/rest/client/method/docs/_result.erb
332
337
  - templates/default/service/rest/grpc_transcoding.erb
333
- - templates/default/service/rest/grpc_transcoding/_grpc_transcoding.erb
334
- - templates/default/service/rest/grpc_transcoding/method/_def.erb
335
- - templates/default/service/rest/grpc_transcoding/method/def/_query_string_param.erb
338
+ - templates/default/service/rest/service_stub.erb
339
+ - templates/default/service/rest/service_stub/_service_stub.erb
340
+ - templates/default/service/rest/service_stub/grpc_transcoding_method/_def.erb
341
+ - templates/default/service/rest/service_stub/grpc_transcoding_method/def/_query_string_param.erb
342
+ - templates/default/service/rest/service_stub/method/_def.erb
343
+ - templates/default/service/rest/service_stub/method/def/_request.erb
344
+ - templates/default/service/rest/service_stub/method/def/_response.erb
345
+ - templates/default/service/rest/test/client.erb
346
+ - templates/default/service/rest/test/method/_assert_response.erb
347
+ - templates/default/service/rest/test/method/_configure.erb
348
+ - templates/default/service/rest/test/method/_normal.erb
349
+ - templates/default/service/rest/test/method/_setup.erb
336
350
  - templates/default/service/test/_resource.erb
337
351
  - templates/default/service/test/client.erb
338
352
  - templates/default/service/test/client_operations.erb
@@ -348,11 +362,14 @@ files:
348
362
  - templates/default/shared/_header.erb
349
363
  - templates/default/shared/_license.erb
350
364
  - templates/default/shared/_warning.erb
365
+ - templates/default/snippets/gemfile.erb
366
+ - templates/default/snippets/snippet/_structure.erb
367
+ - templates/default/snippets/standalone.erb
351
368
  homepage: https://github.com/googleapis/gapic-generator-ruby
352
369
  licenses:
353
370
  - Apache-2.0
354
371
  metadata: {}
355
- post_install_message:
372
+ post_install_message:
356
373
  rdoc_options: []
357
374
  require_paths:
358
375
  - lib
@@ -367,8 +384,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
367
384
  - !ruby/object:Gem::Version
368
385
  version: '0'
369
386
  requirements: []
370
- rubygems_version: 3.1.6
371
- signing_key:
387
+ rubygems_version: 3.2.22
388
+ signing_key:
372
389
  specification_version: 4
373
390
  summary: An API Client Generator for Ruby in Ruby!
374
391
  test_files: []
@@ -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
- }
@@ -1 +0,0 @@
1
- <%- assert_locals service -%>
@@ -1,9 +0,0 @@
1
- <%- assert_locals service -%>
2
- # GRPC transcoding helper methods for the <%= service.name %> REST API.
3
- module GrpcTranscoding
4
- <%- service.methods.each do |method| -%>
5
-
6
- <%= indent_tail render(partial: "service/rest/grpc_transcoding/method/def", locals: { method: method }), 2 %>
7
- <%- end %>
8
- extend self
9
- end