gapic-generator 0.6.15 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/bin/protoc-gen-ruby_gapic +5 -5
  4. data/lib/gapic/file_formatter.rb +2 -1
  5. data/lib/gapic/formatting_utils.rb +4 -4
  6. data/lib/gapic/generator/version.rb +1 -1
  7. data/lib/gapic/generators/default_generator.rb +8 -5
  8. data/lib/gapic/generators/default_generator_parameters.rb +8 -4
  9. data/lib/gapic/grpc_service_config/method_config.rb +2 -1
  10. data/lib/gapic/grpc_service_config/retry_policy.rb +4 -1
  11. data/lib/gapic/grpc_service_config/service_config.rb +2 -1
  12. data/lib/gapic/path_pattern/parser.rb +1 -1
  13. data/lib/gapic/path_pattern/pattern.rb +2 -1
  14. data/lib/gapic/path_pattern/segment.rb +10 -3
  15. data/lib/gapic/presenters.rb +2 -0
  16. data/lib/gapic/presenters/field_presenter.rb +44 -0
  17. data/lib/gapic/presenters/gem_presenter.rb +4 -1
  18. data/lib/gapic/presenters/method_presenter.rb +32 -16
  19. data/lib/gapic/presenters/method_rest_presenter.rb +186 -0
  20. data/lib/gapic/presenters/package_presenter.rb +21 -3
  21. data/lib/gapic/presenters/resource_presenter.rb +2 -1
  22. data/lib/gapic/presenters/sample_presenter.rb +6 -1
  23. data/lib/gapic/presenters/service_presenter.rb +48 -10
  24. data/lib/gapic/presenters/service_rest_presenter.rb +157 -0
  25. data/lib/gapic/runner.rb +2 -1
  26. data/lib/gapic/schema/api.rb +48 -19
  27. data/lib/gapic/schema/parameter_schema.rb +4 -1
  28. data/lib/gapic/schema/request_param_parser.rb +44 -10
  29. data/lib/gapic/schema/request_parameter.rb +5 -1
  30. data/lib/gapic/schema/wrappers.rb +31 -18
  31. data/lib/gapic/uri_template/parser.rb +4 -6
  32. data/lib/google/protobuf/any.pb.rb +1 -1
  33. data/lib/google/protobuf/compiler/plugin.pb.rb +9 -6
  34. data/lib/google/protobuf/descriptor.pb.rb +2 -2
  35. data/lib/google/protobuf/empty.pb.rb +1 -1
  36. data/templates/default/gem/gemspec.erb +2 -2
  37. data/templates/default/gem/readme.erb +2 -2
  38. data/templates/default/gem/rubocop.erb +2 -12
  39. data/templates/default/lib/_package.erb +11 -1
  40. data/templates/default/lib/_service.erb +31 -1
  41. data/templates/default/lib/rest/_rest.erb +11 -0
  42. data/templates/default/service/client/_config.erb +2 -2
  43. data/templates/default/service/rest.erb +6 -0
  44. data/templates/default/service/rest/client.erb +6 -0
  45. data/templates/default/service/rest/client/_client.erb +115 -0
  46. data/templates/default/service/rest/client/_config.erb +74 -0
  47. data/templates/default/service/rest/client/_requires.erb +1 -0
  48. data/templates/default/service/rest/client/method/_def.erb +18 -0
  49. data/templates/default/service/rest/client/method/def/_options_defaults.erb +14 -0
  50. data/templates/default/service/rest/client/method/def/_rescue.erb +3 -0
  51. data/templates/default/service/rest/client/method/def/_response_normal.erb +17 -0
  52. data/templates/default/service/rest/client/method/docs/_error.erb +2 -0
  53. data/templates/default/service/rest/client/method/docs/_request.erb +27 -0
  54. data/templates/default/service/rest/client/method/docs/_result.erb +6 -0
  55. data/templates/default/service/rest/grpc_transcoding.erb +6 -0
  56. data/templates/default/service/rest/grpc_transcoding/_grpc_transcoding.erb +9 -0
  57. data/templates/default/service/rest/grpc_transcoding/method/_def.erb +21 -0
  58. data/templates/default/service/rest/grpc_transcoding/method/def/_query_string_param.erb +8 -0
  59. data/templates/default/service/test/method/_normal.erb +1 -1
  60. data/templates/default/service/test/method/_server.erb +1 -1
  61. metadata +27 -8
@@ -0,0 +1,27 @@
1
+ <%- assert_locals method -%>
2
+ # @overload <%= method.name %>(request, options = nil)
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.
9
+ # @param options [::Gapic::CallOptions, ::Hash]
10
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
11
+ # Note: currently retry functionality is not implemented. While it is possible
12
+ # to set it using ::Gapic::CallOptions, it will not be applied
13
+ <%-if method.arguments.any?-%>
14
+ #
15
+ <%- arg_list = method.arguments.map { |arg| "#{arg.name}: nil"}.join ", " -%>
16
+ # @overload <%= method.name %>(<%= arg_list %>)
17
+ # Pass arguments to `<%= method.name %>` via keyword arguments. Note that at
18
+ # least one keyword argument is required. To specify no parameters, or to keep all
19
+ # the default parameter values, pass an empty Hash as a request object (see above).
20
+ #
21
+ <%- method.arguments.each do |arg| -%>
22
+ # @param <%= arg.name %> [<%= arg.doc_types %>]
23
+ <%- if arg.doc_description -%>
24
+ <%= indent arg.doc_description, "# " %>
25
+ <%- end -%>
26
+ <%- end -%>
27
+ <%- end -%>
@@ -0,0 +1,6 @@
1
+ <%- assert_locals method -%>
2
+ # @yield [result, env] Access the result along with the Faraday environment object
3
+ # @yieldparam result [<%= method.doc_response_type %>]
4
+ # @yieldparam response [::Faraday::Response]
5
+ #
6
+ # @return [<%= method.doc_response_type %>]
@@ -0,0 +1,6 @@
1
+ <%- assert_locals service -%>
2
+ <%= render partial: "service/rest/grpc_transcoding/grpc_transcoding",
3
+ layout: "layouts/ruby",
4
+ locals: { service: service,
5
+ namespace: service.rest.service_name_full }
6
+ %>
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,21 @@
1
+ <%- assert_locals method -%>
2
+ # @param request_pb [<%= method.request_type %>]
3
+ # A request object representing the call parameters. Required.
4
+ # @return [Array(String, [String, nil], Hash{String => String})]
5
+ # Uri, Body, Query string parameters
6
+ def <%= method.rest.transcoding_helper_name %> request_pb
7
+ uri = "<%= method.rest.uri_interpolated %>"
8
+ <%- if method.rest.body? -%>
9
+ body = <%= method.rest.body_interpolated %>
10
+ <%- else -%>
11
+ body = nil
12
+ <%- end -%>
13
+ query_string_params = {}
14
+ <%- if method.rest.query_string_params? -%>
15
+ <%- method.rest.query_string_params.each do |field| -%>
16
+ <%= render partial: "service/rest/grpc_transcoding/method/def/query_string_param", locals: { field: field } -%>
17
+ <%- end -%>
18
+ <%- end -%>
19
+
20
+ [uri, body, query_string_params]
21
+ end
@@ -0,0 +1,8 @@
1
+ <%- assert_locals field -%>
2
+ <%- field_name_interpolated = "request_pb.#{field.name}" -%>
3
+ <%- has_field_name_interpolated = "request_pb.has_#{field.name}?" -%>
4
+ <%- if field.proto3_optional? -%>
5
+ query_string_params["<%= field.camel_name %>"] = <%= field_name_interpolated %>.to_s if <%= has_field_name_interpolated %>
6
+ <%- else -%>
7
+ query_string_params["<%= field.camel_name %>"] = <%= field_name_interpolated %>.to_s
8
+ <%- end -%>
@@ -65,7 +65,7 @@ def test_<%= method.name %>
65
65
  end
66
66
 
67
67
  # Use protobuf object with options
68
- client.<%= method.name %> <%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>), grpc_options do |response, operation|
68
+ client.<%= method.name %>(<%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>), grpc_options) do |response, operation|
69
69
  <%= indent_tail render(partial: "service/test/method/assert_response", locals: { method: method }), 6 %>
70
70
  end
71
71
 
@@ -79,7 +79,7 @@ def test_<%= method.name %>
79
79
  end
80
80
 
81
81
  # Use protobuf object with options
82
- client.<%= method.name %> <%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>), grpc_options do |response, operation|
82
+ client.<%= method.name %>(<%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>), grpc_options) do |response, operation|
83
83
  assert_kind_of Enumerable, response
84
84
  response.to_a.each do |r|
85
85
  assert_kind_of <%= method.return_type %>, r
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.15
4
+ version: 0.7.5
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-23 00:00:00.000000000 Z
13
+ date: 2021-05-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: actionpack
@@ -46,28 +46,28 @@ dependencies:
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 1.24.0
49
+ version: 1.25.1
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 1.24.0
56
+ version: 1.25.1
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: grpc-tools
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 1.30.1
63
+ version: 1.36.0
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: 1.30.1
70
+ version: 1.36.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: minitest
73
73
  requirement: !ruby/object:Gem::Requirement
@@ -216,10 +216,12 @@ files:
216
216
  - lib/gapic/presenters/gem_presenter.rb
217
217
  - lib/gapic/presenters/message_presenter.rb
218
218
  - lib/gapic/presenters/method_presenter.rb
219
+ - lib/gapic/presenters/method_rest_presenter.rb
219
220
  - lib/gapic/presenters/package_presenter.rb
220
221
  - lib/gapic/presenters/resource_presenter.rb
221
222
  - lib/gapic/presenters/sample_presenter.rb
222
223
  - lib/gapic/presenters/service_presenter.rb
224
+ - lib/gapic/presenters/service_rest_presenter.rb
223
225
  - lib/gapic/resource_lookup.rb
224
226
  - lib/gapic/ruby_info.rb
225
227
  - lib/gapic/runner.rb
@@ -263,6 +265,7 @@ files:
263
265
  - templates/default/layouts/_ruby.erb
264
266
  - templates/default/lib/_package.erb
265
267
  - templates/default/lib/_service.erb
268
+ - templates/default/lib/rest/_rest.erb
266
269
  - templates/default/package.erb
267
270
  - templates/default/proto_docs/_enum.erb
268
271
  - templates/default/proto_docs/_message.erb
@@ -314,6 +317,22 @@ files:
314
317
  - templates/default/service/credentials.erb
315
318
  - templates/default/service/operations.erb
316
319
  - templates/default/service/paths.erb
320
+ - templates/default/service/rest.erb
321
+ - templates/default/service/rest/client.erb
322
+ - templates/default/service/rest/client/_client.erb
323
+ - templates/default/service/rest/client/_config.erb
324
+ - templates/default/service/rest/client/_requires.erb
325
+ - templates/default/service/rest/client/method/_def.erb
326
+ - templates/default/service/rest/client/method/def/_options_defaults.erb
327
+ - templates/default/service/rest/client/method/def/_rescue.erb
328
+ - templates/default/service/rest/client/method/def/_response_normal.erb
329
+ - templates/default/service/rest/client/method/docs/_error.erb
330
+ - templates/default/service/rest/client/method/docs/_request.erb
331
+ - templates/default/service/rest/client/method/docs/_result.erb
332
+ - 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
317
336
  - templates/default/service/test/_resource.erb
318
337
  - templates/default/service/test/client.erb
319
338
  - templates/default/service/test/client_operations.erb
@@ -341,14 +360,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
341
360
  requirements:
342
361
  - - ">="
343
362
  - !ruby/object:Gem::Version
344
- version: '0'
363
+ version: '2.5'
345
364
  required_rubygems_version: !ruby/object:Gem::Requirement
346
365
  requirements:
347
366
  - - ">="
348
367
  - !ruby/object:Gem::Version
349
368
  version: '0'
350
369
  requirements: []
351
- rubygems_version: 3.1.4
370
+ rubygems_version: 3.1.6
352
371
  signing_key:
353
372
  specification_version: 4
354
373
  summary: An API Client Generator for Ruby in Ruby!