gapic-generator 0.10.1 → 0.45.1
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 +333 -0
- data/CONTRIBUTING.md +1 -1
- data/README.md +71 -37
- data/bin/protoc-gen-ruby_gapic +2 -2
- data/lib/gapic/file_formatter.rb +23 -19
- data/lib/gapic/formatting_utils.rb +22 -9
- data/lib/gapic/gem_builder.rb +15 -17
- data/lib/gapic/generator/version.rb +1 -1
- data/lib/gapic/generators/base_generator.rb +6 -4
- data/lib/gapic/generators/default_generator.rb +70 -32
- data/lib/gapic/generators/default_generator_parameters.rb +11 -3
- data/lib/gapic/grpc_service_config/{service_config.rb → config.rb} +2 -2
- data/lib/gapic/grpc_service_config/parser.rb +10 -10
- data/lib/gapic/model/api_metadata.rb +173 -0
- data/lib/gapic/model/method/http_annotation.rb +221 -0
- data/lib/gapic/model/method/lro.rb +163 -0
- data/lib/gapic/model/method/routing.rb +248 -0
- data/lib/gapic/model/mixins.rb +247 -0
- data/lib/gapic/model/model_error.rb +26 -0
- data/lib/gapic/model/service/nonstandard_lro_provider.rb +292 -0
- data/lib/gapic/model.rb +22 -0
- data/lib/gapic/package_snippets.rb +159 -0
- data/lib/gapic/path_pattern/parser.rb +11 -2
- data/lib/gapic/path_pattern/pattern.rb +64 -1
- data/lib/gapic/path_pattern/segment.rb +108 -13
- data/lib/gapic/presenters/enum_presenter.rb +14 -0
- data/lib/gapic/presenters/enum_value_presenter.rb +4 -1
- data/lib/gapic/presenters/field_presenter.rb +78 -21
- data/lib/gapic/presenters/gem_presenter.rb +140 -34
- data/lib/gapic/presenters/{service_config_presenter.rb → grpc_service_config_presenter.rb} +1 -1
- data/lib/gapic/presenters/message_presenter.rb +15 -0
- data/lib/gapic/presenters/method/http_binding_presenter.rb +128 -0
- data/lib/gapic/presenters/method/rest_pagination_info.rb +25 -16
- data/lib/gapic/presenters/method_presenter.rb +149 -35
- data/lib/gapic/presenters/method_rest_presenter.rb +79 -168
- data/lib/gapic/presenters/package_presenter.rb +63 -18
- data/lib/gapic/presenters/resource_presenter.rb +9 -3
- data/lib/gapic/presenters/service/lro_client_presenter.rb +90 -0
- data/lib/gapic/presenters/service/mixin_client_presenter.rb +89 -0
- data/lib/gapic/presenters/service/sub_client_presenter.rb +84 -0
- data/lib/gapic/presenters/service_presenter.rb +361 -27
- data/lib/gapic/presenters/service_rest_presenter.rb +247 -13
- data/lib/gapic/presenters/snippet/client_call_presenter.rb +82 -0
- data/lib/gapic/presenters/snippet/client_initialization_presenter.rb +87 -0
- data/lib/gapic/presenters/snippet/declaration_presenter.rb +91 -0
- data/lib/gapic/presenters/snippet/expression_presenter.rb +135 -0
- data/lib/gapic/presenters/snippet/iteration_presenter.rb +118 -0
- data/lib/gapic/presenters/snippet/parameter_presenter.rb +67 -0
- data/lib/gapic/presenters/snippet/request_initialization_presenters.rb +202 -0
- data/lib/gapic/presenters/snippet/response_handling_presenters.rb +329 -0
- data/lib/gapic/presenters/snippet/statement_presenter.rb +134 -0
- data/lib/gapic/presenters/snippet/type_presenter.rb +98 -0
- data/lib/gapic/presenters/snippet_presenter.rb +199 -9
- data/lib/gapic/presenters.rb +5 -1
- data/lib/gapic/runner.rb +1 -1
- data/lib/gapic/schema/api.rb +105 -5
- data/lib/gapic/schema/loader.rb +69 -21
- data/lib/gapic/schema/parameter_schema.rb +8 -8
- data/lib/gapic/schema/proto_tools.rb +193 -0
- data/lib/gapic/schema/request_param_parser.rb +5 -7
- data/lib/gapic/schema/service_config_parser.rb +152 -0
- data/lib/gapic/schema/wrappers.rb +309 -25
- data/lib/gapic/uri_template/parser.rb +15 -7
- data/lib/google/cloud/tools/snippetgen/configlanguage/v1/snippet_config_language_pb.rb +104 -0
- data/lib/google/cloud/tools/snippetgen/snippetindex/v1/snippet_index_pb.rb +58 -0
- data/lib/google/protobuf/compiler/plugin_pb.rb +47 -0
- data/templates/default/binding_override.text.erb +6 -0
- data/templates/default/gem/gemfile.text.erb +12 -0
- data/templates/default/gem/{gemspec.erb → gemspec.text.erb} +3 -11
- data/templates/default/gem/{readme.erb → readme.text.erb} +10 -6
- data/templates/default/gem/{rubocop.erb → rubocop.text.erb} +3 -0
- data/templates/default/gem/{test_helper.erb → test_helper.text.erb} +4 -2
- data/templates/default/gem/toys.text.erb +12 -0
- data/templates/default/gem/{yardopts.erb → yardopts.text.erb} +1 -1
- data/templates/default/helpers/default_helper.rb +33 -1
- data/templates/default/lib/_binding_override.text.erb +49 -0
- data/templates/default/lib/{_package.erb → _package.text.erb} +7 -6
- data/templates/default/lib/_package_rest.text.erb +24 -0
- data/templates/default/lib/{_service.erb → _service.text.erb} +14 -20
- data/templates/default/lib/package/_self_configure.text.erb +16 -0
- data/templates/default/lib/package/_self_configure_defaults.text.erb +13 -0
- data/templates/default/lib/package/self_configure/_binding_default.text.erb +15 -0
- data/templates/default/lib/rest/_rest.text.erb +46 -0
- data/templates/default/package_rest.text.erb +6 -0
- data/templates/default/proto_docs/_deprecated.text.erb +9 -0
- data/templates/default/proto_docs/{_enum.erb → _enum.text.erb} +1 -0
- data/templates/default/proto_docs/{_message.erb → _message.text.erb} +2 -0
- data/templates/default/service/client/{_client.erb → _client.text.erb} +77 -17
- data/templates/default/service/client/{_config.erb → _config.text.erb} +39 -8
- data/templates/default/service/client/_nonstandard_lro.text.erb +57 -0
- data/templates/default/service/client/{_operations.erb → _operations.text.erb} +24 -3
- data/templates/default/service/client/{_self_configure_defaults.erb → _self_configure_defaults.text.erb} +2 -2
- data/templates/default/service/client/method/{_def.erb → _def.text.erb} +2 -2
- data/templates/default/service/client/method/def/{_options_defaults.erb → _options_defaults.text.erb} +3 -9
- data/templates/default/service/client/method/def/_request_normal.text.erb +18 -0
- data/templates/default/service/client/method/def/_request_streaming.text.erb +23 -0
- data/templates/default/service/client/method/def/_response.text.erb +10 -0
- data/templates/default/service/client/method/def/_response_nonstandard_lro.text.erb +23 -0
- data/templates/default/service/client/method/def/_response_normal.text.erb +4 -0
- data/templates/default/service/client/method/def/{_response_normal.erb → _response_normal_lro.text.erb} +1 -3
- data/templates/default/service/client/method/def/{_response_paged.erb → _response_paged.text.erb} +1 -1
- data/templates/default/service/client/method/def/_routing_params.text.erb +36 -0
- data/templates/default/service/client/method/docs/{_request_normal.erb → _request_normal.text.erb} +1 -1
- data/templates/default/service/client/method/docs/_snippets.text.erb +6 -0
- data/templates/default/service/client/resource/_def.text.erb +7 -0
- data/templates/default/service/nonstandard_lro.text.erb +6 -0
- data/templates/default/service/rest/client/_client.text.erb +202 -0
- data/templates/default/service/rest/client/_config.text.erb +178 -0
- data/templates/default/service/rest/client/_operations.text.erb +124 -0
- data/templates/default/service/rest/client/method/{_def.erb → _def.text.erb} +7 -1
- data/templates/default/service/rest/client/method/def/{_options_defaults.erb → _options_defaults.text.erb} +8 -3
- data/templates/default/service/rest/client/method/def/_response.text.erb +12 -0
- data/templates/default/service/rest/client/method/def/_response_nonstandard_lro.text.erb +24 -0
- data/templates/default/service/rest/client/method/def/_response_normal.text.erb +5 -0
- data/templates/default/service/rest/client/method/def/_response_normal_lro.text.erb +7 -0
- data/templates/default/service/rest/client/method/def/_response_paged.text.erb +7 -0
- data/templates/default/service/rest/client/method/def/_response_server_streaming.text.erb +11 -0
- data/templates/default/service/rest/client/method/docs/{_request.erb → _request.text.erb} +1 -3
- data/templates/default/service/rest/client/method/docs/_result.text.erb +10 -0
- data/templates/default/service/rest/client/method/docs/_snippets.text.erb +6 -0
- data/templates/default/service/rest/nonstandard_lro.text.erb +6 -0
- data/templates/default/service/rest/operations.text.erb +6 -0
- data/templates/default/service/rest/service_stub/_service_stub.text.erb +63 -0
- data/templates/default/service/rest/service_stub/grpc_transcoding_method/_def.text.erb +37 -0
- data/templates/default/service/rest/service_stub/method/_def.text.erb +35 -0
- data/templates/default/service/rest/service_stub/method/def/_response.text.erb +37 -0
- data/templates/default/service/rest/test/{client.erb → client.text.erb} +3 -3
- data/templates/default/service/rest/test/method/_assert_response.text.erb +2 -0
- data/templates/default/service/rest/test/method/{_configure.erb → _configure.text.erb} +3 -2
- data/templates/default/service/rest/test/method/_normal.text.erb +60 -0
- data/templates/default/service/rest/test/method/_server.text.erb +60 -0
- data/templates/default/service/rest/test/method/{_setup.erb → _setup.text.erb} +26 -10
- data/templates/default/service/test/{_resource.erb → _resource.text.erb} +1 -1
- data/templates/default/service/test/{client.erb → client.text.erb} +3 -2
- data/templates/default/service/test/client_paths.text.erb +33 -0
- data/templates/default/service/test/method/{_assert_response.erb → _assert_response.text.erb} +3 -0
- data/templates/default/service/test/method/{_bidi.erb → _bidi.text.erb} +1 -1
- data/templates/default/service/test/method/{_client.erb → _client.text.erb} +1 -1
- data/templates/default/service/test/method/{_configure.erb → _configure.text.erb} +2 -1
- data/templates/default/service/test/method/{_normal.erb → _normal.text.erb} +1 -1
- data/templates/default/service/test/method/{_server.erb → _server.text.erb} +1 -1
- data/templates/default/service/test/method/{_setup.erb → _setup.text.erb} +19 -2
- data/templates/default/snippets/{gemfile.erb → gemfile.text.erb} +2 -2
- data/templates/default/snippets/snippet/_body.text.erb +24 -0
- data/templates/default/snippets/snippet/_inline.text.erb +11 -0
- data/templates/default/snippets/snippet/_standalone.text.erb +25 -0
- data/templates/default/snippets/{standalone.erb → standalone.text.erb} +1 -1
- metadata +209 -230
- data/lib/google/api/annotations.pb.rb +0 -39
- data/lib/google/api/client.pb.rb +0 -43
- data/lib/google/api/field_behavior.pb.rb +0 -51
- data/lib/google/api/http.pb.rb +0 -60
- data/lib/google/api/resource.pb.rb +0 -80
- data/lib/google/longrunning/operations.pb.rb +0 -115
- data/lib/google/protobuf/any.pb.rb +0 -40
- data/lib/google/protobuf/compiler/plugin.pb.rb +0 -79
- data/lib/google/protobuf/descriptor.pb.rb +0 -360
- data/lib/google/protobuf/empty.pb.rb +0 -36
- data/lib/google/rpc/status.pb.rb +0 -46
- data/templates/default/gem/gemfile.erb +0 -4
- data/templates/default/lib/rest/_rest.erb +0 -9
- data/templates/default/service/client/method/def/_request_normal.erb +0 -4
- data/templates/default/service/client/method/def/_request_streaming.erb +0 -9
- data/templates/default/service/client/method/def/_response.erb +0 -6
- data/templates/default/service/client/method/docs/_deprecated.erb +0 -5
- data/templates/default/service/client/method/docs/_snippets.erb +0 -6
- data/templates/default/service/client/resource/_def.erb +0 -6
- data/templates/default/service/rest/client/_client.erb +0 -106
- data/templates/default/service/rest/client/_config.erb +0 -122
- data/templates/default/service/rest/client/method/def/_response.erb +0 -8
- data/templates/default/service/rest/client/method/def/_response_lro.erb +0 -7
- data/templates/default/service/rest/client/method/def/_response_normal.erb +0 -6
- data/templates/default/service/rest/client/method/def/_response_paged.erb +0 -7
- data/templates/default/service/rest/client/method/docs/_result.erb +0 -6
- data/templates/default/service/rest/service_stub/_service_stub.erb +0 -25
- data/templates/default/service/rest/service_stub/grpc_transcoding_method/_def.erb +0 -24
- data/templates/default/service/rest/service_stub/method/_def.erb +0 -20
- data/templates/default/service/rest/service_stub/method/def/_response.erb +0 -17
- data/templates/default/service/rest/test/method/_assert_response.erb +0 -2
- data/templates/default/service/rest/test/method/_normal.erb +0 -71
- data/templates/default/service/test/client_paths.erb +0 -15
- data/templates/default/snippets/snippet/_structure.erb +0 -71
- /data/gem_templates/{binary.erb → binary.text.erb} +0 -0
- /data/gem_templates/{dockerfile.erb → dockerfile.text.erb} +0 -0
- /data/gem_templates/{entrypoint.erb → entrypoint.text.erb} +0 -0
- /data/gem_templates/{gapic_sh.erb → gapic_sh.text.erb} +0 -0
- /data/gem_templates/{gemfile.erb → gemfile.text.erb} +0 -0
- /data/gem_templates/{gemspec.erb → gemspec.text.erb} +0 -0
- /data/gem_templates/{generator.erb → generator.text.erb} +0 -0
- /data/gem_templates/{gitignore.erb → gitignore.text.erb} +0 -0
- /data/gem_templates/{rakefile.erb → rakefile.text.erb} +0 -0
- /data/gem_templates/{readme.erb → readme.text.erb} +0 -0
- /data/gem_templates/{rubocop.erb → rubocop.text.erb} +0 -0
- /data/gem_templates/shared/{_header.erb → _header.text.erb} +0 -0
- /data/gem_templates/shared/{_license.erb → _license.text.erb} +0 -0
- /data/gem_templates/shared/{_warning.erb → _warning.text.erb} +0 -0
- /data/gem_templates/{test_generator.erb → test_generator.text.erb} +0 -0
- /data/gem_templates/{test_helper.erb → test_helper.text.erb} +0 -0
- /data/gem_templates/{version.erb → version.text.erb} +0 -0
- /data/templates/default/gem/{_version.erb → _version.text.erb} +0 -0
- /data/templates/default/gem/{changelog.erb → changelog.text.erb} +0 -0
- /data/templates/default/gem/{entrypoint.erb → entrypoint.text.erb} +0 -0
- /data/templates/default/gem/{gapic_metadata_json.erb → gapic_metadata_json.text.erb} +0 -0
- /data/templates/default/gem/{gitignore.erb → gitignore.text.erb} +0 -0
- /data/templates/default/gem/{license.erb → license.text.erb} +0 -0
- /data/templates/default/gem/{rakefile.erb → rakefile.text.erb} +0 -0
- /data/templates/default/gem/{version.erb → version.text.erb} +0 -0
- /data/templates/default/layouts/{_ruby.erb → _ruby.text.erb} +0 -0
- /data/templates/default/{package.erb → package.text.erb} +0 -0
- /data/templates/default/proto_docs/{_proto_file.erb → _proto_file.text.erb} +0 -0
- /data/templates/default/proto_docs/{proto_file.erb → proto_file.text.erb} +0 -0
- /data/templates/default/proto_docs/{readme.erb → readme.text.erb} +0 -0
- /data/templates/default/service/{_helpers.erb → _helpers.text.erb} +0 -0
- /data/templates/default/service/client/{_credentials.erb → _credentials.text.erb} +0 -0
- /data/templates/default/service/client/{_paths.erb → _paths.text.erb} +0 -0
- /data/templates/default/service/client/{_requires.erb → _requires.text.erb} +0 -0
- /data/templates/default/service/client/{_resource.erb → _resource.text.erb} +0 -0
- /data/templates/default/service/client/{_self_configure.erb → _self_configure.text.erb} +0 -0
- /data/templates/default/service/client/method/def/{_request.erb → _request.text.erb} +0 -0
- /data/templates/default/service/client/method/def/{_rescue.erb → _rescue.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_error.erb → _error.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_request.erb → _request.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_request_field.erb → _request_field.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_request_streaming.erb → _request_streaming.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_response.erb → _response.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_sample.erb → _sample.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_sample_response.erb → _sample_response.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/{_samples.erb → _samples.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/request_field/{_arg.erb → _arg.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/request_field/{_hash.erb → _hash.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_comment.erb → _comment.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_define.erb → _define.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_loop.erb → _loop.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_print.erb → _print.text.erb} +0 -0
- /data/templates/default/service/client/method/docs/sample_response/{_write_file.erb → _write_file.text.erb} +0 -0
- /data/templates/default/service/client/resource/{_doc.erb → _doc.text.erb} +0 -0
- /data/templates/default/service/client/resource/{_multi.erb → _multi.text.erb} +0 -0
- /data/templates/default/service/client/resource/{_single.erb → _single.text.erb} +0 -0
- /data/templates/default/service/{client.erb → client.text.erb} +0 -0
- /data/templates/default/service/{credentials.erb → credentials.text.erb} +0 -0
- /data/templates/default/service/{operations.erb → operations.text.erb} +0 -0
- /data/templates/default/service/{paths.erb → paths.text.erb} +0 -0
- /data/templates/default/service/rest/client/method/def/{_rescue.erb → _rescue.text.erb} +0 -0
- /data/templates/default/service/rest/client/method/docs/{_error.erb → _error.text.erb} +0 -0
- /data/templates/default/service/rest/{client.erb → client.text.erb} +0 -0
- /data/templates/default/service/rest/{grpc_transcoding.erb → grpc_transcoding.text.erb} +0 -0
- /data/templates/default/service/rest/service_stub/grpc_transcoding_method/def/{_query_string_param.erb → _query_string_param.text.erb} +0 -0
- /data/templates/default/service/rest/service_stub/method/def/{_request.erb → _request.text.erb} +0 -0
- /data/templates/default/service/rest/{service_stub.erb → service_stub.text.erb} +0 -0
- /data/templates/default/service/{rest.erb → rest.text.erb} +0 -0
- /data/templates/default/service/test/{client_operations.erb → client_operations.text.erb} +0 -0
- /data/templates/default/service/test/{smoke.erb → smoke.text.erb} +0 -0
- /data/templates/default/{service.erb → service.text.erb} +0 -0
- /data/templates/default/shared/{_header.erb → _header.text.erb} +0 -0
- /data/templates/default/shared/{_license.erb → _license.text.erb} +0 -0
- /data/templates/default/shared/{_warning.erb → _warning.text.erb} +0 -0
@@ -0,0 +1,7 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
<%- boverr_str = method.service.rest.is_main_mixin_service? ? ", bindings_override: bindings_override" : "" -%>
|
3
|
+
@<%= method.service.stub_name %>.<%= method.name %> request, options<%= boverr_str %> do |result, operation|
|
4
|
+
result = ::Gapic::Operation.new result, <%= method.service.lro_client_ivar %>, options: options
|
5
|
+
yield result, operation if block_given?
|
6
|
+
throw :response, result
|
7
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
<%- boverr_str = method.service.rest.is_main_mixin_service? ? ", bindings_override: bindings_override" : "" -%>
|
3
|
+
@<%= method.service.stub_name %>.<%= method.name %> request, options<%= boverr_str %> do |result, operation|
|
4
|
+
result = ::Gapic::Rest::PagedEnumerable.new @<%= method.service.stub_name %>, :<%= method.name %>, "<%= method.rest.paged_response_repeated_field_name %>", request, result, options
|
5
|
+
yield result, operation if block_given?
|
6
|
+
throw :response, result
|
7
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
|
3
|
+
::Gapic::Rest::ServerStream.new(
|
4
|
+
<%= method.return_type %>,
|
5
|
+
::Gapic::Rest::ThreadedEnumerator.new do |in_q, out_q|
|
6
|
+
@<%= method.service.stub_name %>.<%= method.name %> request, options do |chunk|
|
7
|
+
in_q.deq
|
8
|
+
out_q.enq chunk
|
9
|
+
end
|
10
|
+
end
|
11
|
+
)
|
@@ -8,8 +8,6 @@
|
|
8
8
|
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
9
9
|
# @param options [::Gapic::CallOptions, ::Hash]
|
10
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
11
|
<%-if method.arguments.any?-%>
|
14
12
|
#
|
15
13
|
<%- arg_list = method.arguments.map { |arg| "#{arg.name}: nil"}.join ", " -%>
|
@@ -21,7 +19,7 @@
|
|
21
19
|
<%- method.arguments.each do |arg| -%>
|
22
20
|
# @param <%= arg.name %> [<%= arg.doc_types %>]
|
23
21
|
<%- if arg.doc_description -%>
|
24
|
-
<%= indent arg.doc_description, "# " %>
|
22
|
+
<%= indent arg.doc_description(transport: :rest), "# " %>
|
25
23
|
<%- end -%>
|
26
24
|
<%- end -%>
|
27
25
|
<%- end -%>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
<%- if method.server_streaming? -%>
|
3
|
+
# @return [::Enumerable<<%= method.rest.doc_response_type %>>]
|
4
|
+
<%- else -%>
|
5
|
+
# @yield [result, operation] Access the result along with the TransportOperation object
|
6
|
+
# @yieldparam result [<%= method.rest.doc_response_type %>]
|
7
|
+
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
8
|
+
#
|
9
|
+
# @return [<%= method.rest.doc_response_type %>]
|
10
|
+
<%- end -%>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<%- assert_locals service -%>
|
2
|
+
<% @requires = capture do %>
|
3
|
+
require "<%= service.proto_service_require %>"
|
4
|
+
<% end %>
|
5
|
+
##
|
6
|
+
# REST service stub for the <%= service.name %> service.
|
7
|
+
# Service stub contains baseline method implementations
|
8
|
+
# including transcoding, making the REST call, and deserialing the response.
|
9
|
+
#
|
10
|
+
<%= render partial: "proto_docs/deprecated", locals: { presenter: service } -%>
|
11
|
+
class <%= service.rest.service_stub_name %>
|
12
|
+
# @private
|
13
|
+
def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:
|
14
|
+
# These require statements are intentionally placed here to initialize
|
15
|
+
# the REST modules only when it's required.
|
16
|
+
require "gapic/rest"
|
17
|
+
|
18
|
+
@client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint,
|
19
|
+
endpoint_template: endpoint_template,
|
20
|
+
universe_domain: universe_domain,
|
21
|
+
credentials: credentials,
|
22
|
+
numeric_enums: <%= service.rest.numeric_enums? %>,
|
23
|
+
service_name: self.class,
|
24
|
+
raise_faraday_errors: false,
|
25
|
+
logger: logger
|
26
|
+
end
|
27
|
+
|
28
|
+
##
|
29
|
+
# The effective universe domain
|
30
|
+
#
|
31
|
+
# @return [String]
|
32
|
+
#
|
33
|
+
def universe_domain
|
34
|
+
@client_stub.universe_domain
|
35
|
+
end
|
36
|
+
|
37
|
+
##
|
38
|
+
# The effective endpoint
|
39
|
+
#
|
40
|
+
# @return [String]
|
41
|
+
#
|
42
|
+
def endpoint
|
43
|
+
@client_stub.endpoint
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# The logger used for request/response debug logging.
|
48
|
+
#
|
49
|
+
# @return [Logger]
|
50
|
+
#
|
51
|
+
def logger stub: false
|
52
|
+
stub ? @client_stub.stub_logger : @client_stub.logger
|
53
|
+
end
|
54
|
+
|
55
|
+
<%- service.rest.methods.each do |method| -%>
|
56
|
+
<%= indent_tail render(partial: "service/rest/service_stub/method/def", locals: { method: method, service_stub_name: service.rest.service_stub_name }), 2 %>
|
57
|
+
|
58
|
+
<%- end %>
|
59
|
+
<%- service.rest.methods.each do |method| -%>
|
60
|
+
<%= indent_tail render(partial: "service/rest/service_stub/grpc_transcoding_method/def", locals: { method: method }), 2 %>
|
61
|
+
|
62
|
+
<%- end %>
|
63
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
##
|
3
|
+
# @private
|
4
|
+
#
|
5
|
+
# GRPC transcoding helper method for the <%= method.name %> REST call
|
6
|
+
#
|
7
|
+
# @param request_pb [<%= method.request_type %>]
|
8
|
+
# A request object representing the call parameters. Required.
|
9
|
+
<%- if method.service.rest.is_main_mixin_service? -%>
|
10
|
+
# @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
|
11
|
+
# Binding overrides for the transcoding.
|
12
|
+
<%- end %>
|
13
|
+
# @return [Array(String, [String, nil], Hash{String => String})]
|
14
|
+
# Uri, Body, Query string parameters
|
15
|
+
<%- boverr_str = method.service.rest.is_main_mixin_service? ? ", bindings_override: nil" : "" -%>
|
16
|
+
def self.<%= method.rest.transcoding_helper_name %> request_pb<%= boverr_str %>
|
17
|
+
<%- if method.service.rest.is_main_mixin_service? -%>
|
18
|
+
transcoder = Gapic::Rest::GrpcTranscoder.new(bindings_override) if bindings_override
|
19
|
+
<%- end %>
|
20
|
+
<%- assignment = method.service.rest.is_main_mixin_service? ? "||=" : "=" -%>
|
21
|
+
transcoder <%= assignment %> Gapic::Rest::GrpcTranscoder.new
|
22
|
+
<%- method.http_bindings.each do |http_binding| -%>
|
23
|
+
.with_bindings(
|
24
|
+
uri_method: :<%= http_binding.verb %>,
|
25
|
+
uri_template: "<%= http_binding.uri_for_transcoding %>",
|
26
|
+
<%- if http_binding.body? -%>
|
27
|
+
body: "<%= http_binding.body %>",
|
28
|
+
<%- end -%>
|
29
|
+
matches: [
|
30
|
+
<%- http_binding.routing_params_transcoder_matches_strings.each do |match_str| -%>
|
31
|
+
<%= match_str %>
|
32
|
+
<%- end -%>
|
33
|
+
]
|
34
|
+
)
|
35
|
+
<%- end %>
|
36
|
+
transcoder.transcode request_pb
|
37
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
##
|
3
|
+
# Baseline implementation for the <%= method.name %> REST call
|
4
|
+
#
|
5
|
+
# @param request_pb [<%= method.rest.request_type %>]
|
6
|
+
# A request object representing the call parameters. Required.
|
7
|
+
# @param options [::Gapic::CallOptions]
|
8
|
+
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
|
9
|
+
<%- if method.service.rest.is_main_mixin_service? -%>
|
10
|
+
# @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
|
11
|
+
# Binding overrides for the transcoding. Only used internally.
|
12
|
+
<%- end %>
|
13
|
+
#
|
14
|
+
<%- if method.server_streaming? -%>
|
15
|
+
# @yieldparam chunk [::String] The chunk of data received during server streaming.
|
16
|
+
#
|
17
|
+
# @return [::Gapic::Rest::TransportOperation]
|
18
|
+
<%- else -%>
|
19
|
+
# @yield [result, operation] Access the result along with the TransportOperation object
|
20
|
+
# @yieldparam result [<%= method.rest.return_type %>]
|
21
|
+
# @yieldparam operation [::Gapic::Rest::TransportOperation]
|
22
|
+
#
|
23
|
+
# @return [<%= method.rest.return_type %>]
|
24
|
+
# A result object deserialized from the server's reply
|
25
|
+
<%- end -%>
|
26
|
+
<%- if method.server_streaming? -%>
|
27
|
+
def <%= method.name %> request_pb, options = nil, &block
|
28
|
+
<%- else -%>
|
29
|
+
<%- boverr_str = method.service.rest.is_main_mixin_service? ? ", bindings_override: nil" : "" -%>
|
30
|
+
def <%= method.name %> request_pb, options = nil<%= boverr_str %>
|
31
|
+
<%- end -%>
|
32
|
+
<%= indent render(partial: "service/rest/service_stub/method/def/request", locals: { method: method }), 2 %>
|
33
|
+
|
34
|
+
<%= indent render(partial: "service/rest/service_stub/method/def/response", locals: { method: method, service_stub_name: service_stub_name }), 2 %>
|
35
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%- assert_locals method, service_stub_name -%>
|
2
|
+
<%- boverr_str = method.service.rest.is_main_mixin_service? ? ", bindings_override: bindings_override" : "" -%>
|
3
|
+
verb, uri, query_string_params, body = <%= service_stub_name %>.<%= method.rest.transcoding_helper_name %> request_pb<%= boverr_str %>
|
4
|
+
query_string_params = if query_string_params.any?
|
5
|
+
query_string_params.to_h { |p| p.split "=", 2 }
|
6
|
+
else
|
7
|
+
{}
|
8
|
+
end
|
9
|
+
|
10
|
+
<%- if method.server_streaming? -%>
|
11
|
+
response = @client_stub.make_http_request(
|
12
|
+
verb,
|
13
|
+
uri: uri,
|
14
|
+
body: body || "",
|
15
|
+
params: query_string_params,
|
16
|
+
method_name: "<%= method.name %>",
|
17
|
+
options: options,
|
18
|
+
is_server_streaming: true,
|
19
|
+
&block
|
20
|
+
)
|
21
|
+
::Gapic::Rest::TransportOperation.new response
|
22
|
+
<%- else -%>
|
23
|
+
response = @client_stub.make_http_request(
|
24
|
+
verb,
|
25
|
+
uri: uri,
|
26
|
+
body: body || "",
|
27
|
+
params: query_string_params,
|
28
|
+
method_name: "<%= method.name %>",
|
29
|
+
options: options
|
30
|
+
)
|
31
|
+
operation = ::Gapic::Rest::TransportOperation.new response
|
32
|
+
result = <%= method.return_type %>.decode_json response.body, ignore_unknown_fields: true
|
33
|
+
catch :response do
|
34
|
+
yield result, operation if block_given?
|
35
|
+
result
|
36
|
+
end
|
37
|
+
<%- end -%>
|
@@ -3,13 +3,13 @@
|
|
3
3
|
require "helper"
|
4
4
|
require "gapic/rest"
|
5
5
|
require "<%= service.proto_service_require %>"
|
6
|
-
require "<%= service.service_require %>"
|
6
|
+
require "<%= service.rest.service_require %>"
|
7
7
|
|
8
8
|
|
9
|
-
class <%= service.client_name_full %>Test < Minitest::Test
|
9
|
+
class <%= service.rest.client_name_full %>Test < Minitest::Test
|
10
10
|
<%= indent render(partial: "service/rest/test/method/setup"), 2 %>
|
11
11
|
|
12
|
-
<% service.methods.each do |method| %>
|
12
|
+
<% service.rest.methods.each do |method| %>
|
13
13
|
<%= indent render(partial: "service/rest/test/method/#{method.kind}",
|
14
14
|
locals: { method: method }), 2 %>
|
15
15
|
|
@@ -4,8 +4,9 @@ def test_configure
|
|
4
4
|
credentials_token = :dummy_value
|
5
5
|
|
6
6
|
client = block_config = config = nil
|
7
|
-
|
8
|
-
|
7
|
+
dummy_stub = ClientStub.new nil
|
8
|
+
Gapic::Rest::ClientStub.stub :new, dummy_stub do
|
9
|
+
client = <%= full_client_name %>.new do |config|
|
9
10
|
config.credentials = credentials_token
|
10
11
|
end
|
11
12
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
<%- full_client_name = defined?(client_name_full) ? client_name_full : method.service.rest.client_name_full -%>
|
3
|
+
<%- fields = method.fields_with_first_oneof -%>
|
4
|
+
def test_<%= method.name %>
|
5
|
+
# Create test objects.
|
6
|
+
client_result = <%= method.return_type %>.new
|
7
|
+
http_response = OpenStruct.new body: client_result.to_json
|
8
|
+
|
9
|
+
call_options = {}
|
10
|
+
|
11
|
+
# Create request parameters for a unary method.
|
12
|
+
<%- fields.each do |field| -%>
|
13
|
+
<%= field.value_name %> = <%= field.default_value %>
|
14
|
+
<%- end -%>
|
15
|
+
|
16
|
+
<%= method.name %>_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:|
|
17
|
+
assert options.metadata.key? :"x-goog-api-client"
|
18
|
+
assert options.metadata[:"x-goog-api-client"].include? "rest"
|
19
|
+
refute options.metadata[:"x-goog-api-client"].include? "grpc"
|
20
|
+
end
|
21
|
+
|
22
|
+
<%= method.service.rest.service_name_full %>::<%= method.service.rest.service_stub_name %>.stub :<%= method.rest.transcoding_helper_name %>, ["", "", {}] do
|
23
|
+
Gapic::Rest::ClientStub.stub :new, <%= method.name %>_client_stub do
|
24
|
+
# Create client
|
25
|
+
client = <%= full_client_name %>.new do |config|
|
26
|
+
config.credentials = :dummy_value
|
27
|
+
end
|
28
|
+
|
29
|
+
# Use hash object
|
30
|
+
client.<%= method.name %>({ <%= fields.map(&:as_kwarg).join ", " %> }) do |_result, response|
|
31
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
32
|
+
end
|
33
|
+
|
34
|
+
<%- if fields.any? -%>
|
35
|
+
# Use named arguments
|
36
|
+
client.<%= method.name %> <%= fields.map(&:as_kwarg).join ", " %> do |_result, response|
|
37
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
38
|
+
end
|
39
|
+
|
40
|
+
<%- end -%>
|
41
|
+
# Use protobuf object
|
42
|
+
client.<%= method.name %> <%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>) do |_result, response|
|
43
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
44
|
+
end
|
45
|
+
|
46
|
+
# Use hash object with options
|
47
|
+
client.<%= method.name %>({ <%= fields.map(&:as_kwarg).join ", " %> }, call_options) do |_result, response|
|
48
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
49
|
+
end
|
50
|
+
|
51
|
+
# Use protobuf object with options
|
52
|
+
client.<%= method.name %>(<%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>), call_options) do |_result, response|
|
53
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
54
|
+
end
|
55
|
+
|
56
|
+
# Verify method calls
|
57
|
+
assert_equal <%= fields.any? ? 5 : 4 %>, <%= method.name %>_client_stub.call_count
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
<%- assert_locals method -%>
|
2
|
+
<%- full_client_name = defined?(client_name_full) ? client_name_full : method.service.rest.client_name_full -%>
|
3
|
+
<%- fields = method.fields_with_first_oneof -%>
|
4
|
+
def test_<%= method.name %>
|
5
|
+
# Create test objects.
|
6
|
+
client_result = <%= method.return_type %>.new
|
7
|
+
http_response = OpenStruct.new body: client_result.to_json
|
8
|
+
|
9
|
+
call_options = {}
|
10
|
+
|
11
|
+
# Create request parameters for a unary method.
|
12
|
+
<%- fields.each do |field| -%>
|
13
|
+
<%= field.value_name %> = <%= field.default_value %>
|
14
|
+
<%- end -%>
|
15
|
+
|
16
|
+
<%= method.name %>_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, is_server_streaming:, method_name:|
|
17
|
+
assert options.metadata.key? :"x-goog-api-client"
|
18
|
+
assert options.metadata[:"x-goog-api-client"].include? "rest"
|
19
|
+
refute options.metadata[:"x-goog-api-client"].include? "grpc"
|
20
|
+
end
|
21
|
+
|
22
|
+
<%= method.service.rest.service_name_full %>::<%= method.service.rest.service_stub_name %>.stub :<%= method.rest.transcoding_helper_name %>, ["", "", {}] do
|
23
|
+
Gapic::Rest::ClientStub.stub :new, <%= method.name %>_client_stub do
|
24
|
+
# Create client
|
25
|
+
client = <%= full_client_name %>.new do |config|
|
26
|
+
config.credentials = :dummy_value
|
27
|
+
end
|
28
|
+
|
29
|
+
# Use hash object
|
30
|
+
client.<%= method.name %>({ <%= fields.map(&:as_kwarg).join ", " %> }) do |_result, response|
|
31
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
32
|
+
end.first
|
33
|
+
|
34
|
+
<%- if fields.any? -%>
|
35
|
+
# Use named arguments
|
36
|
+
client.<%= method.name %> <%= fields.map(&:as_kwarg).join ", " %> do |_result, response|
|
37
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
38
|
+
end.first
|
39
|
+
|
40
|
+
<%- end -%>
|
41
|
+
# Use protobuf object
|
42
|
+
client.<%= method.name %> <%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>) do |_result, response|
|
43
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
44
|
+
end.first
|
45
|
+
|
46
|
+
# Use hash object with options
|
47
|
+
client.<%= method.name %>({ <%= fields.map(&:as_kwarg).join ", " %> }, call_options) do |_result, response|
|
48
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
49
|
+
end.first
|
50
|
+
|
51
|
+
# Use protobuf object with options
|
52
|
+
client.<%= method.name %>(<%= method.request_type %>.new(<%= fields.map(&:as_kwarg).join ", " %>), call_options) do |_result, response|
|
53
|
+
<%= indent_tail render(partial: "service/rest/test/method/assert_response", locals: { method: method }), 6 %>
|
54
|
+
end.first
|
55
|
+
|
56
|
+
# Verify method calls
|
57
|
+
assert_equal <%= fields.any? ? 5 : 4 %>, <%= method.name %>_client_stub.call_count
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -8,24 +8,24 @@ class ClientStub
|
|
8
8
|
@requests = []
|
9
9
|
end
|
10
10
|
|
11
|
-
def make_get_request uri:, params: {}, options: {}
|
12
|
-
make_http_request :get, uri: uri, body: nil, params: params, options: options
|
11
|
+
def make_get_request uri:, params: {}, options: {}, method_name: nil
|
12
|
+
make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name
|
13
13
|
end
|
14
14
|
|
15
|
-
def make_delete_request uri:, params: {}, options: {}
|
16
|
-
make_http_request :delete, uri: uri, body: nil, params: params, options: options
|
15
|
+
def make_delete_request uri:, params: {}, options: {}, method_name: nil
|
16
|
+
make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name
|
17
17
|
end
|
18
18
|
|
19
|
-
def make_post_request uri:, body: nil, params: {}, options: {}
|
20
|
-
make_http_request :post, uri: uri, body: body, params: params, options: options
|
19
|
+
def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil
|
20
|
+
make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name
|
21
21
|
end
|
22
22
|
|
23
|
-
def make_patch_request uri:, body:, params: {}, options: {}
|
24
|
-
make_http_request :patch, uri: uri, body: body, params: params, options: options
|
23
|
+
def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil
|
24
|
+
make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name
|
25
25
|
end
|
26
26
|
|
27
|
-
def make_put_request uri:, body:, params: {}, options: {}
|
28
|
-
make_http_request :put, uri: uri, body: body, params: params, options: options
|
27
|
+
def make_put_request uri:, body:, params: {}, options: {}, method_name: nil
|
28
|
+
make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name
|
29
29
|
end
|
30
30
|
|
31
31
|
def make_http_request *args, **kwargs
|
@@ -35,4 +35,20 @@ class ClientStub
|
|
35
35
|
|
36
36
|
@response
|
37
37
|
end
|
38
|
+
|
39
|
+
def endpoint
|
40
|
+
"endpoint.example.com"
|
41
|
+
end
|
42
|
+
|
43
|
+
def universe_domain
|
44
|
+
"example.com"
|
45
|
+
end
|
46
|
+
|
47
|
+
def stub_logger
|
48
|
+
nil
|
49
|
+
end
|
50
|
+
|
51
|
+
def logger
|
52
|
+
nil
|
53
|
+
end
|
38
54
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<%- full_client_name = defined?(client_name_full) ? client_name_full : service.client_name_full -%>
|
4
4
|
def test_<%= resource.path_helper%>
|
5
5
|
grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure
|
6
|
-
::Gapic::ServiceStub.stub :new,
|
6
|
+
::Gapic::ServiceStub.stub :new, DummyStub.new do
|
7
7
|
client = <%= full_client_name %>.new do |config|
|
8
8
|
config.credentials = grpc_channel
|
9
9
|
end
|
@@ -15,7 +15,7 @@ class <%= service.client_name_full %>Test < Minitest::Test
|
|
15
15
|
<%= indent render(partial: "service/test/method/#{method.kind}",
|
16
16
|
locals: { method: method }), 2 %>
|
17
17
|
|
18
|
-
|
18
|
+
<%- end -%>
|
19
19
|
<%= indent render(partial: "service/test/method/configure", locals: { service: service }), 2 %>
|
20
20
|
<%- if service.lro? -%>
|
21
21
|
|
@@ -23,7 +23,8 @@ class <%= service.client_name_full %>Test < Minitest::Test
|
|
23
23
|
grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure
|
24
24
|
|
25
25
|
client = nil
|
26
|
-
|
26
|
+
dummy_stub = ClientStub.new nil, nil
|
27
|
+
Gapic::ServiceStub.stub :new, dummy_stub do
|
27
28
|
client = <%= service.client_name_full =%>.new do |config|
|
28
29
|
config.credentials = grpc_channel
|
29
30
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%- assert_locals service -%>
|
2
|
+
<%= render partial: "shared/header" %>
|
3
|
+
require "helper"
|
4
|
+
|
5
|
+
require "gapic/grpc/service_stub"
|
6
|
+
|
7
|
+
require "<%= service.service_require %>"
|
8
|
+
|
9
|
+
class <%= service.client_name_full %>PathsTest < Minitest::Test
|
10
|
+
class DummyStub
|
11
|
+
def endpoint
|
12
|
+
"endpoint.example.com"
|
13
|
+
end
|
14
|
+
|
15
|
+
def universe_domain
|
16
|
+
"example.com"
|
17
|
+
end
|
18
|
+
|
19
|
+
def stub_logger
|
20
|
+
nil
|
21
|
+
end
|
22
|
+
|
23
|
+
def logger
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
<%- start_line_spacer -%>
|
29
|
+
<%- service.deduped_references.each do |resource| -%>
|
30
|
+
<%- locals = { resource: resource, service: service } -%>
|
31
|
+
<%= line_spacer %><%= indent render(partial: "service/test/resource", locals: locals), 2 %>
|
32
|
+
<%- end -%>
|
33
|
+
end
|
data/templates/default/service/test/method/{_assert_response.erb → _assert_response.text.erb}
RENAMED
@@ -5,6 +5,9 @@ assert_equal grpc_response, response.response
|
|
5
5
|
<%- elsif method.lro? %>
|
6
6
|
assert_kind_of Gapic::Operation, response
|
7
7
|
assert_equal grpc_response, response.grpc_op
|
8
|
+
<%- elsif method.nonstandard_lro? %>
|
9
|
+
assert_kind_of Gapic::GenericLRO::Operation, response
|
10
|
+
assert_equal grpc_response, response.operation
|
8
11
|
<%- else -%>
|
9
12
|
assert_equal grpc_response, response
|
10
13
|
<%- end -%>
|
@@ -10,7 +10,7 @@ def test_<%= method.name %>
|
|
10
10
|
|
11
11
|
# Create request parameters for a bidi streaming method.
|
12
12
|
<%- fields.each do |field| -%>
|
13
|
-
<%= field.
|
13
|
+
<%= field.value_name %> = <%= field.default_value %>
|
14
14
|
<%- end -%>
|
15
15
|
|
16
16
|
<%= method.name %>_client_stub = ClientStub.new [grpc_response].to_enum, grpc_operation do |name, request, options:|
|
@@ -10,7 +10,7 @@ def test_<%= method.name %>
|
|
10
10
|
|
11
11
|
# Create request parameters for a client streaming method.
|
12
12
|
<%- fields.each do |field| -%>
|
13
|
-
<%= field.
|
13
|
+
<%= field.value_name %> = <%= field.default_value %>
|
14
14
|
<%- end -%>
|
15
15
|
|
16
16
|
<%= method.name %>_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:|
|
@@ -4,7 +4,8 @@ def test_configure
|
|
4
4
|
grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure
|
5
5
|
|
6
6
|
client = block_config = config = nil
|
7
|
-
|
7
|
+
dummy_stub = ClientStub.new nil, nil
|
8
|
+
Gapic::ServiceStub.stub :new, dummy_stub do
|
8
9
|
client = <%= full_client_name =%>.new do |config|
|
9
10
|
config.credentials = grpc_channel
|
10
11
|
end
|
@@ -10,7 +10,7 @@ def test_<%= method.name %>
|
|
10
10
|
|
11
11
|
# Create request parameters for a unary method.
|
12
12
|
<%- fields.each do |field| -%>
|
13
|
-
<%= field.
|
13
|
+
<%= field.value_name %> = <%= field.default_value %>
|
14
14
|
<%- end -%>
|
15
15
|
|
16
16
|
<%= method.name %>_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:|
|
@@ -10,7 +10,7 @@ def test_<%= method.name %>
|
|
10
10
|
|
11
11
|
# Create request parameters for a server streaming method.
|
12
12
|
<%- fields.each do |field| -%>
|
13
|
-
<%= field.
|
13
|
+
<%= field.value_name %> = <%= field.default_value %>
|
14
14
|
<%- end -%>
|
15
15
|
|
16
16
|
<%= method.name %>_client_stub = ClientStub.new [grpc_response].to_enum, grpc_operation do |name, request, options:|
|
@@ -14,8 +14,25 @@ class ClientStub
|
|
14
14
|
|
15
15
|
@requests << @block&.call(*args, **kwargs)
|
16
16
|
|
17
|
-
|
17
|
+
catch :response do
|
18
|
+
yield @response, @operation if block_given?
|
19
|
+
@response
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def endpoint
|
24
|
+
"endpoint.example.com"
|
25
|
+
end
|
26
|
+
|
27
|
+
def universe_domain
|
28
|
+
"example.com"
|
29
|
+
end
|
30
|
+
|
31
|
+
def stub_logger
|
32
|
+
nil
|
33
|
+
end
|
18
34
|
|
19
|
-
|
35
|
+
def logger
|
36
|
+
nil
|
20
37
|
end
|
21
38
|
end
|