gapic-generator-cloud 0.3.3 → 0.6.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -0
- data/bin/ruby-cloud-docker-entrypoint +36 -6
- data/lib/gapic/generator/cloud/version.rb +2 -1
- data/lib/gapic/generators/cloud_generator.rb +11 -10
- data/lib/gapic/presenters/cloud_gem_presenter.rb +46 -0
- data/lib/gapic/presenters/wrapper_gem_presenter.rb +31 -12
- data/lib/gapic/presenters/wrapper_service_presenter.rb +8 -8
- data/templates/cloud/gem/rakefile.erb +3 -2
- data/templates/cloud/gem/readme.erb +2 -0
- data/templates/cloud/gem/yardopts.erb +2 -0
- data/templates/cloud/service/client/_credentials.erb +1 -1
- data/templates/cloud/service/client/_self_configure.erb +1 -1
- data/templates/cloud/service/client/method/def/_rescue.erb +2 -2
- data/templates/cloud/service/client/method/docs/_error.erb +1 -1
- data/templates/cloud/wrapper_gem/_main.erb +31 -19
- data/templates/cloud/wrapper_gem/client_test.erb +1 -1
- data/templates/cloud/wrapper_gem/entrypoint.erb +1 -1
- data/templates/cloud/wrapper_gem/gemfile.erb +3 -9
- data/templates/cloud/wrapper_gem/gemspec.erb +5 -7
- data/templates/cloud/wrapper_gem/readme.erb +2 -0
- data/templates/cloud/wrapper_gem/rubocop.erb +1 -1
- data/templates/cloud/wrapper_gem/yardopts.erb +2 -0
- metadata +6 -7
- data/templates/cloud/gem/gemspec.erb +0 -38
- data/templates/cloud/wrapper_gem/test_helper.erb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '02926a88b55343003c21f8032beb370d1bbdb2ae37ebf88aefe0ddd4d40a69df'
|
4
|
+
data.tar.gz: ced33bd5a212b6bd52a31bb9a49eee2913423a0350bfea48f33d18ced6ca3a83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ceca5878427fafb3b122924851298a99addaa2832ff45eb3219178cbb63e31545a91504909e54c1c05d945a75967c3f98680e4a2dbf0728270269ae5ba18bd1
|
7
|
+
data.tar.gz: 82e55f290ca429d499158c9f33342e3895b06c6de1e2d1d37eee88718561501444f713503279c04d4fb7bd13fbf41d42b98cae4293d6a3edb8940f014057e1a3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,45 @@
|
|
1
1
|
# Release History for gapic-generator-cloud
|
2
2
|
|
3
|
+
### 0.6.0 / 2020-06-02
|
4
|
+
|
5
|
+
* Includes changes from gapic-generator 0.6.0.
|
6
|
+
* Support for clients with generic endpoint and credentials.
|
7
|
+
* Support for adding extra dependencies.
|
8
|
+
* Fix the logic determining whether a wrapper needs a separate entrypoint file.
|
9
|
+
* Disable Metrics/BlockLength check for all sample tests.
|
10
|
+
|
11
|
+
### 0.5.1 / 2020-05-21
|
12
|
+
|
13
|
+
* Includes changes from gapic-generator 0.5.1
|
14
|
+
|
15
|
+
### 0.5.0 / 2020-05-19
|
16
|
+
|
17
|
+
* Includes changes from gapic-generator 0.5.0
|
18
|
+
* Wrappers now support partial-gapic helpers.
|
19
|
+
* Generated configs for wrappers now include endpoint and scope.
|
20
|
+
|
21
|
+
### 0.4.3 / 2020-05-01
|
22
|
+
|
23
|
+
* Unpin minitest in the generated wrappers.
|
24
|
+
|
25
|
+
### 0.4.2 / 2020-04-28
|
26
|
+
|
27
|
+
* Includes changes from gapic-generator 0.4.2
|
28
|
+
* Eliminate a circular require in generated wrappers.
|
29
|
+
|
30
|
+
### 0.4.1 / 2020-04-23
|
31
|
+
|
32
|
+
* Wrapper templates honor overridden namespaces.
|
33
|
+
* Support setting the gem namespace from the docker interface.
|
34
|
+
|
35
|
+
### 0.4.0 / 2020-04-20
|
36
|
+
|
37
|
+
* Includes changes from gapic-generator 0.4.0
|
38
|
+
* Apply overrides to client namespaces but not proto namespaces.
|
39
|
+
* Remove common resources proto from generated files.
|
40
|
+
* Multiple overrides can be specified in the docker interface.
|
41
|
+
* Fixed: The pre-migration versions in wrapper readmes were malformed if the migration version was still 0.x.
|
42
|
+
|
3
43
|
### 0.3.3 / 2020-04-13
|
4
44
|
|
5
45
|
* Includes changes from gapic-generator 0.3.3
|
@@ -18,13 +18,18 @@
|
|
18
18
|
require "optparse"
|
19
19
|
require "fileutils"
|
20
20
|
|
21
|
+
# Boolean options may have values "true" or "false" (as strings)
|
21
22
|
bool_option_map = {
|
22
23
|
":gem.:free_tier" => "ruby-cloud-free-tier",
|
23
|
-
":gem.:yard_strict" => "ruby-cloud-yard-strict"
|
24
|
+
":gem.:yard_strict" => "ruby-cloud-yard-strict",
|
25
|
+
":gem.:generic_endpoint" => "ruby-cloud-generic-endpoint"
|
24
26
|
}
|
27
|
+
|
28
|
+
# Value options always take string values.
|
25
29
|
value_option_map = {
|
26
30
|
"configuration" => "ruby-cloud-config",
|
27
31
|
":gem.:name" => "ruby-cloud-gem-name",
|
32
|
+
":gem.:namespace" => "ruby-cloud-gem-namespace",
|
28
33
|
":gem.:title" => "ruby-cloud-title",
|
29
34
|
":gem.:description" => "ruby-cloud-description",
|
30
35
|
":gem.:summary" => "ruby-cloud-summary",
|
@@ -36,15 +41,30 @@ value_option_map = {
|
|
36
41
|
":gem.:api_id" => "ruby-cloud-api-id",
|
37
42
|
":gem.:factory_method_suffix" => "ruby-cloud-factory-method-suffix"
|
38
43
|
}
|
44
|
+
|
45
|
+
# Path options take one or more file paths delimited by semicolons.
|
39
46
|
path_option_map = {
|
40
47
|
"samples" => ["ruby-cloud-samples", "samples"],
|
41
48
|
"grpc_service_config" => "ruby-cloud-grpc-service-config"
|
42
49
|
}
|
50
|
+
|
51
|
+
# Map options take one or more mappings delimited by semicolons. Each mapping
|
52
|
+
# must be of the form "key=value". Note that periods in keys are treated as
|
53
|
+
# literal periods, not subkey delimiters.
|
43
54
|
map_option_map = {
|
55
|
+
":common_services" => "ruby-cloud-common-services",
|
44
56
|
":overrides.:file_path" => "ruby-cloud-path-override",
|
45
|
-
":overrides.:namespace" => "ruby-cloud-namespace-override"
|
57
|
+
":overrides.:namespace" => "ruby-cloud-namespace-override",
|
58
|
+
":overrides.:service" => "ruby-cloud-service-override",
|
59
|
+
":gem.:extra_dependencies" => "ruby-cloud-extra-dependencies"
|
46
60
|
}
|
47
61
|
|
62
|
+
# A set of files that, if generated, should be removed.
|
63
|
+
remove_paths = [
|
64
|
+
"lib/google/iam/v1/iam_policy_pb.rb",
|
65
|
+
"lib/google/cloud/common_resources_pb.rb"
|
66
|
+
]
|
67
|
+
|
48
68
|
parameters = {}
|
49
69
|
|
50
70
|
OptionParser.new do |op|
|
@@ -72,8 +92,11 @@ OptionParser.new do |op|
|
|
72
92
|
map_option_map.each do |key, flags|
|
73
93
|
flags = Array(flags).map { |f| "--#{f} MAPPING" }
|
74
94
|
op.on(*flags) do |mapping|
|
75
|
-
|
76
|
-
|
95
|
+
mapping.split(";").each do |mapping_kv|
|
96
|
+
mapping_key, mapping_val = mapping_kv.split("=", 2)
|
97
|
+
mapping_key.gsub!(".", "\\\\\\\\.")
|
98
|
+
parameters["#{key}.#{mapping_key}"] = mapping_val if mapping_val
|
99
|
+
end
|
77
100
|
end
|
78
101
|
end
|
79
102
|
end.parse! ARGV
|
@@ -93,11 +116,18 @@ ruby_plugin_args =
|
|
93
116
|
|
94
117
|
protoc_cmd = [
|
95
118
|
"grpc_tools_ruby_protoc",
|
96
|
-
|
119
|
+
# It is important for /in to come before /protos because all input files
|
120
|
+
# come from /in, and protoc will complain if any of those are also found
|
121
|
+
# earlier in the proto path.
|
122
|
+
"--proto_path=/in/", "--proto_path=/protos/"
|
97
123
|
] + ruby_plugin_args + [
|
98
124
|
"--ruby_cloud_out=/out/",
|
99
125
|
"--ruby_cloud_opt", parameter_strs.join(",")
|
100
126
|
] + ARGV + Dir.glob("/in/**/*.proto").sort
|
101
127
|
|
102
128
|
FileUtils.mkdir_p "/out/lib"
|
103
|
-
|
129
|
+
system(*protoc_cmd)
|
130
|
+
|
131
|
+
remove_paths.each do |path|
|
132
|
+
FileUtils.rm_f Dir.glob "/out/#{path}"
|
133
|
+
end
|
@@ -16,6 +16,7 @@
|
|
16
16
|
|
17
17
|
require "gapic/generators/default_generator"
|
18
18
|
require "gapic/presenters"
|
19
|
+
require "gapic/presenters/cloud_gem_presenter"
|
19
20
|
require "gapic/presenters/wrapper_gem_presenter"
|
20
21
|
|
21
22
|
module Gapic
|
@@ -42,19 +43,19 @@ module Gapic
|
|
42
43
|
# @return [Array<
|
43
44
|
# Google::Protobuf::Compiler::CodeGeneratorResponse::File>]
|
44
45
|
# The files that were generated for the API.
|
45
|
-
def generate
|
46
|
+
def generate gem_presenter: nil
|
46
47
|
gem_config = @api.configuration[:gem] ||= {}
|
47
48
|
return generate_wrapper if gem_config[:version_dependencies]
|
48
49
|
|
49
|
-
|
50
|
-
|
51
|
-
cloud_files = []
|
52
|
-
|
53
|
-
gem = Gapic::Presenters.gem_presenter @api
|
50
|
+
gem = gem_presenter || Gapic::Presenters.cloud_gem_presenter(@api)
|
51
|
+
orig_files = super gem_presenter: gem
|
54
52
|
|
55
53
|
# Additional Gem level files
|
56
|
-
cloud_files
|
57
|
-
cloud_files << g("gem/
|
54
|
+
cloud_files = []
|
55
|
+
cloud_files << g("gem/repo-metadata.erb", ".repo-metadata.json", gem: gem)
|
56
|
+
unless gem.services.empty? || gem.generic_endpoint?
|
57
|
+
cloud_files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem)
|
58
|
+
end
|
58
59
|
|
59
60
|
format_files cloud_files
|
60
61
|
|
@@ -79,7 +80,7 @@ module Gapic
|
|
79
80
|
files << g("gem/repo-metadata.erb", ".repo-metadata.json", gem: gem)
|
80
81
|
files << g("wrapper_gem/rubocop.erb", ".rubocop.yml", gem: gem)
|
81
82
|
files << g("wrapper_gem/yardopts.erb", ".yardopts", gem: gem)
|
82
|
-
files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem)
|
83
|
+
files << g("gem/authentication.erb", "AUTHENTICATION.md", gem: gem) unless gem.generic_endpoint?
|
83
84
|
files << g("gem/changelog.erb", "CHANGELOG.md", gem: gem)
|
84
85
|
files << g("wrapper_gem/gemfile.erb", "Gemfile", gem: gem)
|
85
86
|
files << g("gem/license.erb", "LICENSE.md", gem: gem)
|
@@ -89,7 +90,7 @@ module Gapic
|
|
89
90
|
files << g("wrapper_gem/entrypoint.erb", "lib/#{gem.name}.rb", gem: gem) if gem.needs_entrypoint?
|
90
91
|
files << g("wrapper_gem/main.erb", "lib/#{gem.namespace_file_path}", gem: gem)
|
91
92
|
files << g("gem/version.erb", "lib/#{gem.version_file_path}", gem: gem)
|
92
|
-
files << g("
|
93
|
+
files << g("gem/test_helper.erb", "test/helper.rb", gem: gem)
|
93
94
|
files << g("wrapper_gem/client_test.erb", "test/#{gem.namespace_require}/client_test.rb", gem: gem)
|
94
95
|
files << g("wrapper_gem/version_test.erb", "test/#{gem.namespace_require}/version_test.rb", gem: gem)
|
95
96
|
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2020 Google LLC
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require "gapic/presenters"
|
18
|
+
require "gapic/presenters/wrapper_service_presenter"
|
19
|
+
|
20
|
+
module Gapic
|
21
|
+
module Presenters
|
22
|
+
##
|
23
|
+
# A presenter subclass for cloud gems.
|
24
|
+
#
|
25
|
+
class CloudGemPresenter < GemPresenter
|
26
|
+
def license_name
|
27
|
+
"Apache-2.0"
|
28
|
+
end
|
29
|
+
|
30
|
+
def extra_files
|
31
|
+
return ["README.md", "LICENSE.md", ".yardopts"] if generic_endpoint?
|
32
|
+
["README.md", "LICENSE.md", "AUTHENTICATION.md", ".yardopts"]
|
33
|
+
end
|
34
|
+
|
35
|
+
def dependencies
|
36
|
+
deps = super
|
37
|
+
deps["google-cloud-errors"] = "~> 1.0"
|
38
|
+
deps
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.cloud_gem_presenter api
|
43
|
+
CloudGemPresenter.new api
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -22,7 +22,7 @@ module Gapic
|
|
22
22
|
##
|
23
23
|
# A presenter for wrapper gems.
|
24
24
|
#
|
25
|
-
class WrapperGemPresenter <
|
25
|
+
class WrapperGemPresenter < CloudGemPresenter
|
26
26
|
def entrypoint_require
|
27
27
|
namespace_require
|
28
28
|
end
|
@@ -30,7 +30,7 @@ module Gapic
|
|
30
30
|
def services
|
31
31
|
@services ||= begin
|
32
32
|
files = @api.generate_files
|
33
|
-
files.map(&:services).flatten.map { |s| WrapperServicePresenter.new @api, s }
|
33
|
+
files.map(&:services).flatten.map { |s| WrapperServicePresenter.new self, @api, s }
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -38,12 +38,20 @@ module Gapic
|
|
38
38
|
ruby_file_path @api, namespace
|
39
39
|
end
|
40
40
|
|
41
|
+
def main_directory_name
|
42
|
+
namespace_require.split("/").last
|
43
|
+
end
|
44
|
+
|
45
|
+
def helpers_require
|
46
|
+
"#{namespace_require}/helpers"
|
47
|
+
end
|
48
|
+
|
41
49
|
def namespace_file_path
|
42
50
|
"#{namespace_require}.rb"
|
43
51
|
end
|
44
52
|
|
45
53
|
def needs_entrypoint?
|
46
|
-
name !=
|
54
|
+
name != namespace_require
|
47
55
|
end
|
48
56
|
|
49
57
|
def needs_default_config_block?
|
@@ -54,10 +62,16 @@ module Gapic
|
|
54
62
|
gem_config :migration_version
|
55
63
|
end
|
56
64
|
|
65
|
+
# A description of the versions prior to the migration version.
|
66
|
+
# Could be "a.x" if the migration version is 1.0 or later, otherwise
|
67
|
+
# falls back to "pre-a.b".
|
57
68
|
def pre_migration_version
|
58
|
-
|
59
|
-
|
60
|
-
|
69
|
+
match = /^(\d)+\.0/.match migration_version.to_s
|
70
|
+
if match
|
71
|
+
major = match[1].to_i
|
72
|
+
return "#{major - 1}.x" if major.positive?
|
73
|
+
end
|
74
|
+
"pre-#{migration_version}"
|
61
75
|
end
|
62
76
|
|
63
77
|
def migration?
|
@@ -78,19 +92,24 @@ module Gapic
|
|
78
92
|
gem_config(:version_dependencies).to_s.split(";").map { |str| str.split ":" }
|
79
93
|
end
|
80
94
|
|
81
|
-
def gem_version_dependencies
|
82
|
-
version_dependencies.sort_by { |version, _requirement| version }
|
83
|
-
.map { |version, requirement| ["#{name}-#{version}", requirement] }
|
84
|
-
end
|
85
|
-
|
86
95
|
def versioned_gems
|
87
|
-
|
96
|
+
version_dependencies.map { |version, _requirement| "#{name}-#{version}" }.sort
|
88
97
|
end
|
89
98
|
|
90
99
|
def default_version
|
91
100
|
version_dependencies.first&.first
|
92
101
|
end
|
93
102
|
|
103
|
+
def dependencies
|
104
|
+
deps = { "google-cloud-core" => "~> 1.5" }
|
105
|
+
version_dependencies.each do |version, requirement|
|
106
|
+
deps["#{name}-#{version}"] = "~> #{requirement}"
|
107
|
+
end
|
108
|
+
extra_deps = gem_config :extra_dependencies
|
109
|
+
deps.merge! extra_deps if extra_deps
|
110
|
+
deps
|
111
|
+
end
|
112
|
+
|
94
113
|
def google_cloud_short_name
|
95
114
|
m = /^google-cloud-(.*)$/.match name
|
96
115
|
return nil unless m
|
@@ -15,6 +15,7 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
17
|
require "gapic/presenters"
|
18
|
+
require "gapic/ruby_info"
|
18
19
|
|
19
20
|
module Gapic
|
20
21
|
module Presenters
|
@@ -22,15 +23,14 @@ module Gapic
|
|
22
23
|
# A presenter for wrapper services.
|
23
24
|
#
|
24
25
|
class WrapperServicePresenter < ServicePresenter
|
25
|
-
def gem
|
26
|
-
WrapperGemPresenter.new @api
|
27
|
-
end
|
28
|
-
|
29
26
|
def factory_method_name
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
27
|
+
@factory_method_name ||= begin
|
28
|
+
method_name = ActiveSupport::Inflector.underscore name
|
29
|
+
suffix = gem.factory_method_suffix
|
30
|
+
method_name = "#{method_name}#{suffix}" unless method_name.end_with? suffix
|
31
|
+
method_name = "#{method_name}_client" if Gapic::RubyInfo.excluded_method_names.include? method_name
|
32
|
+
method_name
|
33
|
+
end
|
34
34
|
end
|
35
35
|
|
36
36
|
def create_client_call
|
@@ -11,6 +11,7 @@ RuboCop::RakeTask.new
|
|
11
11
|
require "rake/testtask"
|
12
12
|
desc "Run tests."
|
13
13
|
Rake::TestTask.new do |t|
|
14
|
+
t.libs << "test"
|
14
15
|
t.test_files = FileList["test/**/*_test.rb"]
|
15
16
|
t.warning = false
|
16
17
|
end
|
@@ -52,7 +53,7 @@ end
|
|
52
53
|
# Acceptance tests
|
53
54
|
desc "Run the <%= gem.name %> acceptance tests."
|
54
55
|
task :acceptance, :project, :keyfile do |t, args|
|
55
|
-
<%- if service -%>
|
56
|
+
<%- if service && !gem.generic_endpoint? -%>
|
56
57
|
project = args[:project]
|
57
58
|
project ||=
|
58
59
|
ENV["<%= gem.env_prefix %>_TEST_PROJECT"] ||
|
@@ -78,8 +79,8 @@ task :acceptance, :project, :keyfile do |t, args|
|
|
78
79
|
ENV["<%= gem.env_prefix %>_PROJECT"] = project
|
79
80
|
ENV["<%= gem.env_prefix %>_TEST_PROJECT"] = project
|
80
81
|
ENV["<%= gem.env_prefix %>_KEYFILE_JSON"] = keyfile
|
81
|
-
<%- end -%>
|
82
82
|
|
83
|
+
<%- end -%>
|
83
84
|
Rake::Task["acceptance:run"].invoke
|
84
85
|
end
|
85
86
|
|
@@ -12,6 +12,7 @@
|
|
12
12
|
$ gem install <%= gem.name %>
|
13
13
|
```
|
14
14
|
|
15
|
+
<%- unless gem.generic_endpoint? -%>
|
15
16
|
## Before You Begin
|
16
17
|
|
17
18
|
In order to use this library, you first need to go through the following steps:
|
@@ -29,6 +30,7 @@ In order to use this library, you first need to go through the following steps:
|
|
29
30
|
<%- end -%>
|
30
31
|
1. {file:AUTHENTICATION.md Set up authentication.}
|
31
32
|
|
33
|
+
<%- end -%>
|
32
34
|
## Quick Start
|
33
35
|
|
34
36
|
<%- if gem.packages? -%>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
require "googleauth"
|
4
4
|
<% end %>
|
5
5
|
# Credentials for the <%= service.name %> API.
|
6
|
-
class <%= service.credentials_name %> < Google::Auth::Credentials
|
6
|
+
class <%= service.credentials_name %> < ::Google::Auth::Credentials
|
7
7
|
<%- if service.client_scopes.any? -%>
|
8
8
|
self.scope = [
|
9
9
|
<%- service.client_scopes.each_with_index do |client_scope, index| -%>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%- assert_locals service -%>
|
2
2
|
@configure ||= begin
|
3
|
-
namespace = <%= service.namespace.split("::").inspect %>
|
3
|
+
namespace = <%= service.namespace.split("::").reject(&:empty?).inspect %>
|
4
4
|
parent_config = while namespace.any?
|
5
5
|
parent_name = namespace.join "::"
|
6
6
|
parent_const = const_get parent_name
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
|
-
rescue GRPC::BadStatus => e
|
3
|
-
raise Google::Cloud::Error.from_error(e)
|
2
|
+
rescue ::GRPC::BadStatus => e
|
3
|
+
raise ::Google::Cloud::Error.from_error(e)
|
@@ -1,2 +1,2 @@
|
|
1
1
|
<%- assert_locals method -%>
|
2
|
-
# @raise [Google::Cloud::Error] if the RPC is aborted.
|
2
|
+
# @raise [::Google::Cloud::Error] if the RPC is aborted.
|
@@ -1,45 +1,53 @@
|
|
1
1
|
<%- assert_locals gem -%>
|
2
2
|
<% @requires = capture do %>
|
3
|
+
# Require this file early so that the version constant gets defined before
|
4
|
+
# requiring "google/cloud". This is because google-cloud-core will load the
|
5
|
+
# entrypoint (gem name) file, which in turn re-requires this file (hence
|
6
|
+
# causing a require cycle) unless the version constant is already defined.
|
3
7
|
require "<%= gem.version_require %>"
|
8
|
+
|
4
9
|
require "googleauth"
|
5
10
|
<%- if gem.needs_default_config_block? -%>
|
6
11
|
gem "google-cloud-core"
|
7
|
-
require "google/cloud" unless defined? Google::Cloud.new
|
12
|
+
require "google/cloud" unless defined? ::Google::Cloud.new
|
8
13
|
require "google/cloud/config"
|
9
14
|
|
10
15
|
# Set the default configuration
|
11
|
-
Google::Cloud.configure.add_config! :<%= gem.google_cloud_short_name %> do |config|
|
12
|
-
config.add_field! :
|
13
|
-
config.add_field! :
|
14
|
-
config.add_field! :
|
15
|
-
config.add_field! :
|
16
|
-
config.add_field! :
|
17
|
-
config.add_field! :
|
18
|
-
config.add_field! :
|
16
|
+
::Google::Cloud.configure.add_config! :<%= gem.google_cloud_short_name %> do |config|
|
17
|
+
config.add_field! :endpoint, <%= gem.services.first&.client_endpoint.inspect %>, match: ::String
|
18
|
+
config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials]
|
19
|
+
config.add_field! :scope, nil, match: [::Array, ::String]
|
20
|
+
config.add_field! :lib_name, nil, match: ::String
|
21
|
+
config.add_field! :lib_version, nil, match: ::String
|
22
|
+
config.add_field! :interceptors, nil, match: ::Array
|
23
|
+
config.add_field! :timeout, nil, match: ::Numeric
|
24
|
+
config.add_field! :metadata, nil, match: ::Hash
|
25
|
+
config.add_field! :retry_policy, nil, match: [::Hash, ::Proc]
|
26
|
+
config.add_field! :quota_project, nil, match: ::String
|
19
27
|
end
|
20
28
|
<%- end -%>
|
21
29
|
<% end %>
|
22
30
|
<%- gem.services.each do |service| -%>
|
23
31
|
##
|
24
|
-
# Create a new client object for <%= service.
|
32
|
+
# Create a new client object for <%= service.module_name %>.
|
25
33
|
#
|
26
34
|
# By default, this returns an instance of
|
27
|
-
# <%= gem.docs_link version: gem.default_version, class_name: "#{service.
|
35
|
+
# <%= gem.docs_link version: gem.default_version, class_name: "#{service.module_name}::Client" %>
|
28
36
|
# for version <%= gem.default_version.capitalize %> of the API.
|
29
37
|
# However, you can specify specify a different API version by passing it in the
|
30
|
-
# `version` parameter. If the <%= service.
|
38
|
+
# `version` parameter. If the <%= service.module_name %> service is
|
31
39
|
# supported by that API version, and the corresponding gem is available, the
|
32
40
|
# appropriate versioned client will be returned.
|
33
41
|
#
|
34
42
|
<%- if service.doc_description -%>
|
35
|
-
# ## About <%= service.
|
43
|
+
# ## About <%= service.module_name %>
|
36
44
|
#
|
37
45
|
<%= indent service.doc_description(disable_xrefs: true), "# " %>
|
38
46
|
#
|
39
47
|
<%- end -%>
|
40
|
-
# @param version [String, Symbol] The API version to connect to. Optional.
|
48
|
+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
|
41
49
|
# Defaults to `:<%= gem.default_version %>`.
|
42
|
-
# @return [<%= service.
|
50
|
+
# @return [<%= service.module_name %>::Client] A client object for the specified version.
|
43
51
|
#
|
44
52
|
def self.<%= service.factory_method_name %> version: :<%= gem.default_version %>, &block
|
45
53
|
require "<%= gem.namespace_require %>/#{version.to_s.downcase}"
|
@@ -49,7 +57,7 @@ def self.<%= service.factory_method_name %> version: :<%= gem.default_version %>
|
|
49
57
|
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
|
50
58
|
.first
|
51
59
|
package_module = <%= gem.namespace %>.const_get package_name
|
52
|
-
package_module.const_get(:<%= service.
|
60
|
+
package_module.const_get(:<%= service.module_name %>).const_get(:Client).new(&block)
|
53
61
|
end
|
54
62
|
|
55
63
|
<%- end -%>
|
@@ -80,11 +88,15 @@ end
|
|
80
88
|
# * `:retry_codes` (*type:* `Array<String>`) -
|
81
89
|
# The error codes that should trigger a retry.
|
82
90
|
#
|
83
|
-
# @return [Google::Cloud::Config] The default configuration used by this library
|
91
|
+
# @return [::Google::Cloud::Config] The default configuration used by this library
|
84
92
|
#
|
85
93
|
def self.configure
|
86
|
-
yield Google::Cloud.configure.<%= gem.google_cloud_short_name %> if block_given?
|
94
|
+
yield ::Google::Cloud.configure.<%= gem.google_cloud_short_name %> if block_given?
|
87
95
|
|
88
|
-
Google::Cloud.configure.<%= gem.google_cloud_short_name %>
|
96
|
+
::Google::Cloud.configure.<%= gem.google_cloud_short_name %>
|
89
97
|
end
|
90
98
|
<%- end -%>
|
99
|
+
<% @footer = capture do %>
|
100
|
+
helper_path = ::File.join __dir__, "<%= gem.main_directory_name %>", "helpers.rb"
|
101
|
+
require "<%= gem.helpers_require %>" if ::File.file? helper_path
|
102
|
+
<% end %>
|
@@ -14,7 +14,7 @@ class <%= gem.namespace %>::ClientConstructionMinitest < Minitest::Test
|
|
14
14
|
client = <%= gem.namespace %>.<%= service.factory_method_name %> do |config|
|
15
15
|
config.credentials = grpc_channel
|
16
16
|
end
|
17
|
-
assert_kind_of <%= gem.namespaced_class "#{service.
|
17
|
+
assert_kind_of <%= gem.namespaced_class "#{service.module_name}::Client", version: gem.default_version %>, client
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -3,15 +3,9 @@ source "https://rubygems.org"
|
|
3
3
|
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
gem
|
7
|
-
gem "google-cloud-env", path: "../google-cloud-env"
|
8
|
-
gem "google-cloud-errors", path: "../google-cloud-errors"
|
9
|
-
<%- gem.gem_version_dependencies.each do |name, _requirement| -%>
|
6
|
+
<%- gem.versioned_gems.each do |name| -%>
|
10
7
|
gem "<%= name %>", path: "../<%= name %>"
|
11
8
|
<%- end -%>
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
# Pin minitest to 5.11.x to avoid warnings emitted by 5.12.
|
16
|
-
# See https://github.com/googleapis/google-cloud-ruby/issues/4110
|
17
|
-
gem "minitest", "~> 5.11.3"
|
10
|
+
# google-protobuf 3.12.0 requires Ruby 2.5 or later, so pin to 3.11 on older Rubies
|
11
|
+
gem "google-protobuf", (RUBY_VERSION < "2.5" ? "~> 3.11.4" : "~> 3.12")
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.description = <%= gem.description.inspect %>
|
14
14
|
gem.summary = <%= gem.summary.inspect %>
|
15
15
|
gem.homepage = <%= gem.homepage.inspect %>
|
16
|
-
gem.license =
|
16
|
+
gem.license = <%= gem.license_name.inspect %>
|
17
17
|
|
18
18
|
gem.platform = Gem::Platform::RUBY
|
19
19
|
|
@@ -23,17 +23,15 @@ Gem::Specification.new do |gem|
|
|
23
23
|
|
24
24
|
gem.required_ruby_version = ">= 2.4"
|
25
25
|
|
26
|
-
gem.
|
27
|
-
|
28
|
-
gem.add_dependency "<%= name %>", "~> <%= requirement %>"
|
26
|
+
<%- gem.dependency_list.each do |name, requirements| -%>
|
27
|
+
gem.add_dependency <%= name.inspect %>, <%= requirements.map { |v| v.inspect }.join ", " %>
|
29
28
|
<%- end -%>
|
30
29
|
|
31
|
-
gem.add_development_dependency "autotest-suffix", "~> 1.1"
|
32
30
|
gem.add_development_dependency "google-style", "~> 1.24.0"
|
33
|
-
gem.add_development_dependency "minitest", "~> 5.
|
34
|
-
gem.add_development_dependency "minitest-autotest", "~> 1.0"
|
31
|
+
gem.add_development_dependency "minitest", "~> 5.14"
|
35
32
|
gem.add_development_dependency "minitest-focus", "~> 1.1"
|
36
33
|
gem.add_development_dependency "minitest-rg", "~> 5.2"
|
34
|
+
gem.add_development_dependency "rake", ">= 12.0"
|
37
35
|
gem.add_development_dependency "redcarpet", "~> 3.0"
|
38
36
|
gem.add_development_dependency "simplecov", "~> 0.9"
|
39
37
|
gem.add_development_dependency "yard", "~> 0.9"
|
@@ -32,6 +32,7 @@ for more usage information.
|
|
32
32
|
$ gem install <%= gem.name %>
|
33
33
|
```
|
34
34
|
|
35
|
+
<%- unless gem.generic_endpoint? -%>
|
35
36
|
In order to use this library, you first need to go through the following steps:
|
36
37
|
|
37
38
|
1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
|
@@ -47,6 +48,7 @@ In order to use this library, you first need to go through the following steps:
|
|
47
48
|
<%- end -%>
|
48
49
|
1. {file:AUTHENTICATION.md Set up authentication.}
|
49
50
|
|
51
|
+
<%- end -%>
|
50
52
|
<%- if gem.migration? %>
|
51
53
|
## Migrating from <%= gem.pre_migration_version %> versions
|
52
54
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gapic-generator-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
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: 2020-
|
13
|
+
date: 2020-06-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|
@@ -32,14 +32,14 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.
|
35
|
+
version: 0.6.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 0.6.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: google-style
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,10 +172,10 @@ files:
|
|
172
172
|
- cloud-rubocop.yml
|
173
173
|
- lib/gapic/generator/cloud/version.rb
|
174
174
|
- lib/gapic/generators/cloud_generator.rb
|
175
|
+
- lib/gapic/presenters/cloud_gem_presenter.rb
|
175
176
|
- lib/gapic/presenters/wrapper_gem_presenter.rb
|
176
177
|
- lib/gapic/presenters/wrapper_service_presenter.rb
|
177
178
|
- templates/cloud/gem/authentication.erb
|
178
|
-
- templates/cloud/gem/gemspec.erb
|
179
179
|
- templates/cloud/gem/gitignore.erb
|
180
180
|
- templates/cloud/gem/license.erb
|
181
181
|
- templates/cloud/gem/rakefile.erb
|
@@ -198,7 +198,6 @@ files:
|
|
198
198
|
- templates/cloud/wrapper_gem/rakefile.erb
|
199
199
|
- templates/cloud/wrapper_gem/readme.erb
|
200
200
|
- templates/cloud/wrapper_gem/rubocop.erb
|
201
|
-
- templates/cloud/wrapper_gem/test_helper.erb
|
202
201
|
- templates/cloud/wrapper_gem/version_test.erb
|
203
202
|
- templates/cloud/wrapper_gem/yardopts.erb
|
204
203
|
homepage: https://github.com/googleapis/gapic-generator-ruby
|
@@ -220,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
220
219
|
- !ruby/object:Gem::Version
|
221
220
|
version: '0'
|
222
221
|
requirements: []
|
223
|
-
rubygems_version: 3.
|
222
|
+
rubygems_version: 3.0.3
|
224
223
|
signing_key:
|
225
224
|
specification_version: 4
|
226
225
|
summary: An API Client Generator for Ruby in Ruby!
|
@@ -1,38 +0,0 @@
|
|
1
|
-
<%- assert_locals gem -%>
|
2
|
-
# -*- ruby -*-
|
3
|
-
# encoding: utf-8
|
4
|
-
require File.expand_path("lib/<%= gem.version_require %>", __dir__)
|
5
|
-
|
6
|
-
Gem::Specification.new do |gem|
|
7
|
-
gem.name = "<%= gem.name %>"
|
8
|
-
gem.version = <%= gem.version_name_full %>
|
9
|
-
|
10
|
-
gem.authors = <%= gem.authors.inspect %>
|
11
|
-
gem.email = <%= gem.email.inspect %>
|
12
|
-
gem.description = <%= gem.description.inspect %>
|
13
|
-
gem.summary = <%= gem.summary.inspect %>
|
14
|
-
gem.homepage = <%= gem.homepage.inspect %>
|
15
|
-
gem.license = "Apache-2.0"
|
16
|
-
|
17
|
-
gem.platform = Gem::Platform::RUBY
|
18
|
-
|
19
|
-
gem.files = `git ls-files -- lib/*`.split("\n") +
|
20
|
-
`git ls-files -- proto_docs/*`.split("\n") +
|
21
|
-
["README.md", "LICENSE.md", "AUTHENTICATION.md", ".yardopts"]
|
22
|
-
gem.require_paths = ["lib"]
|
23
|
-
|
24
|
-
gem.required_ruby_version = ">= 2.4"
|
25
|
-
|
26
|
-
gem.add_dependency "gapic-common", "~> 0.2"
|
27
|
-
gem.add_dependency "google-cloud-errors", "~> 1.0"
|
28
|
-
<%- if gem.iam_dependency? -%>
|
29
|
-
gem.add_dependency "grpc-google-iam-v1", ">= 0.6.10", "< 2.0"
|
30
|
-
<%- end -%>
|
31
|
-
|
32
|
-
gem.add_development_dependency "google-style", "~> 1.24.0"
|
33
|
-
gem.add_development_dependency "minitest", "~> 5.10"
|
34
|
-
gem.add_development_dependency "rake", ">= 12.0"
|
35
|
-
gem.add_development_dependency "redcarpet", "~> 3.0"
|
36
|
-
gem.add_development_dependency "simplecov", "~> 0.18"
|
37
|
-
gem.add_development_dependency "yard", "~> 0.9"
|
38
|
-
end
|