gapic-generator 0.7.5 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
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