gapic-generator 0.6.15 → 0.7.5

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 (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!