gapic-generator-cloud 0.7.2 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4bffd3280586491e1757835aa38ca85b373970d5ecb88a0fda8d5ea6e259fdf
4
- data.tar.gz: 18bfa846048015823c294f296486862adf5a722c8a762d461b87c47f854ac83f
3
+ metadata.gz: f1eea0abf892b4a55303e5b4a2c34502221507204e9a20f5aa87f7a1e1965eb7
4
+ data.tar.gz: 1485bdadd75c11011b395cf3b025ef59772ec0e9fe410460dab4ee9d1fcdc14d
5
5
  SHA512:
6
- metadata.gz: 4a9824a7a6856ad8f21cb36548ac50c4336d9189c12a2e38e7f429459d6f480bc99d0fc8b721f4c23839c9d0c41ae95346d740eb3cddc91949ad30a1a8deadf7
7
- data.tar.gz: 5935a2546b5f8eaa34511f554ca5080a0b3cd7fca8a4caac8267f0f7c59c964e1089f38ffbda8a777d8803f4a9f12e1bfcf2ff22a755661c273effd0160ade97
6
+ metadata.gz: f58c889e346aa2ed848d01370f78ec7905342a3e55de9cedbec1f2fe40bc85a847c1782bcba731b537db0c9134ea0826877bf7916bf7c79e80c0e094c5e7ebf4
7
+ data.tar.gz: cb7fa4c07625fcd9ccdd85e2547abf6b13a2c691bce3dfcda86600c84e96f034c20b82d7790cccc661794e9a14f7fbc6e173b207f22580660990847346d0153f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Release History for gapic-generator-cloud
2
2
 
3
+ ### 0.9.1 / 2021-07-07
4
+
5
+ * Includes changes from gapic-generator 0.9.1
6
+ * Clarify some text in generated authentication docs
7
+
8
+ ### 0.9.0 / 2021-06-29
9
+
10
+ * Includes changes from gapic-generator 0.9.0
11
+
12
+ ### 0.8.0 / 2021-06-16
13
+
14
+ * Includes changes from gapic-generator 0.8.0
15
+
16
+ ### 0.7.5 / 2021-05-18
17
+
18
+ * Includes changes from gapic-generator 0.7.5
19
+
20
+ ### 0.7.4 / 2021-05-07
21
+
22
+ * Includes changes from gapic-generator 0.7.4
23
+
24
+ ### 0.7.3 / 2021-03-24
25
+
26
+ * Includes changes from gapic-generator 0.7.3
27
+ * Gapic metadata file generation is enabled by default for gapic-generator-cloud
28
+
3
29
  ### 0.7.2 / 2021-03-05
4
30
 
5
31
  * Disable metrics-related rubocop checks in generated wrapper libraries.
@@ -18,7 +18,7 @@
18
18
  module Gapic
19
19
  module Generator
20
20
  module Cloud
21
- VERSION = "0.7.2"
21
+ VERSION = "0.9.1"
22
22
  end
23
23
  end
24
24
  end
@@ -33,6 +33,11 @@ module Gapic
33
33
  gem_config = api.configuration[:gem] ||= {}
34
34
  gem_config[:homepage] ||= "https://github.com/googleapis/google-cloud-ruby"
35
35
 
36
+ # The gapic metadata generation is disabled by default as per spec.
37
+ # However it should be enabled by default for cloud libraries, otherwise we'll have to
38
+ # enable it in every synth/bazel file.
39
+ api.configuration[:generate_metadata] = true if api.configuration[:generate_metadata].nil?
40
+
36
41
  super
37
42
 
38
43
  # Configure to use prefer Google Cloud templates
@@ -21,9 +21,10 @@ module Gapic
21
21
  # Contains the cloud generator's parameters
22
22
  module CloudGeneratorParameters
23
23
  BOOL_PARAMETERS_ALIASES = {
24
- "ruby-cloud-free-tier" => ":gem.:free_tier",
25
- "ruby-cloud-yard-strict" => ":gem.:yard_strict",
26
- "ruby-cloud-generic-endpoint" => ":gem.:generic_endpoint"
24
+ "ruby-cloud-free-tier" => ":gem.:free_tier",
25
+ "ruby-cloud-yard-strict" => ":gem.:yard_strict",
26
+ "ruby-cloud-generic-endpoint" => ":gem.:generic_endpoint",
27
+ "ruby-cloud-generate-metadata" => ":generate_metadata"
27
28
  }.freeze
28
29
 
29
30
  STRING_PARAMETERS_ALIASES = {
@@ -41,12 +42,16 @@ module Gapic
41
42
  "ruby-cloud-api-id" => ":gem.:api_id",
42
43
  "ruby-cloud-api-shortname" => ":gem.:api_shortname",
43
44
  "ruby-cloud-factory-method-suffix" => ":gem.:factory_method_suffix",
45
+ "ruby-cloud-quick-start-service" => ":gem.:quick_start_service",
46
+ "ruby-cloud-quick-start-method" => ":gem.:quick_start_method",
44
47
  "ruby-cloud-default-service-host" => ":defaults.:service.:default_host",
45
- "ruby-cloud-grpc-service-config" => "grpc_service_config"
48
+ "ruby-cloud-grpc-service-config" => "grpc_service_config",
49
+ "ruby-cloud-wrapper-gem-override" => ":overrides.:wrapper_gem_name"
46
50
  }.freeze
47
51
 
48
52
  ARRAY_PARAMETERS_ALIASES = {
49
- "ruby-cloud-default-oauth-scopes" => ":defaults.:service.:oauth_scopes"
53
+ "ruby-cloud-default-oauth-scopes" => ":defaults.:service.:oauth_scopes",
54
+ "ruby-cloud-generate-transports" => ":transports"
50
55
  }.freeze
51
56
 
52
57
  MAP_PARAMETERS_ALIASES = {
@@ -38,11 +38,20 @@ module Gapic
38
38
  deps
39
39
  end
40
40
 
41
+ ##
42
+ # Whether this gem has a wrapper
43
+ # @return [Boolean]
44
+ def has_wrapper?
45
+ !wrapper_name.nil?
46
+ end
47
+
41
48
  ##
42
49
  # The name of the wrapper gem corresponding to this versioned gem
43
- # @return [String]
50
+ # @return [String, Nil]
44
51
  #
45
52
  def wrapper_name
53
+ return @api.wrapper_gem_name_override if @api.wrapper_gem_name_override?
54
+
46
55
  minfo = /^(.+)-v\d\w*$/.match name
47
56
  minfo ? minfo[1] : nil
48
57
  end
@@ -60,13 +69,35 @@ module Gapic
60
69
  #
61
70
  def description
62
71
  desc = readme_description
63
- if wrapper_name
72
+ if has_wrapper?
64
73
  desc += " Note that #{name} is a version-specific client library." \
65
74
  " For most uses, we recommend installing the main client library" \
66
75
  " #{wrapper_name} instead. See the readme for more details."
67
76
  end
68
77
  desc
69
78
  end
79
+
80
+ def cloud_env_prefix
81
+ env_prefix || "GOOGLE_CLOUD"
82
+ end
83
+
84
+ ##
85
+ # Returns a hash of extra generator arguments to be rendered into the
86
+ # repo-metadata.json file.
87
+ #
88
+ def generator_args_for_metadata
89
+ result = {}
90
+ result["ruby-cloud-description"] = description
91
+ result["ruby-cloud-env-prefix"] = env_prefix if env_prefix
92
+ result["ruby-cloud-product-url"] = product_documentation_url if product_documentation_url
93
+ path_overrides = @api.overrides_of(:file_path).map { |k, v| "#{k}=#{v}" }.join ";"
94
+ result["ruby-cloud-path-override"] = path_overrides unless path_overrides.empty?
95
+ namespace_overrides = @api.overrides_of(:namespace).map { |k, v| "#{k}=#{v}" }.join ";"
96
+ result["ruby-cloud-namespace-override"] = namespace_overrides unless namespace_overrides.empty?
97
+ service_overrides = @api.overrides_of(:service).map { |k, v| "#{k}=#{v}" }.join ";"
98
+ result["ruby-cloud-service-override"] = service_overrides unless service_overrides.empty?
99
+ result
100
+ end
70
101
  end
71
102
 
72
103
  def self.cloud_gem_presenter api
@@ -106,13 +106,24 @@ module Gapic
106
106
  end
107
107
 
108
108
  def dependencies
109
- deps = { "google-cloud-core" => "~> 1.5" }
110
- version_dependencies.each do |version, requirement|
111
- deps["#{name}-#{version}"] = "~> #{requirement}"
109
+ @dependencies ||= begin
110
+ deps = { "google-cloud-core" => "~> 1.6" }
111
+ version_dependencies.each do |version, requirement|
112
+ # For pre-release dependencies on versioned clients, support both
113
+ # 0.x and 1.x versions to ease the transition to 1.0 (GA) releases
114
+ # for those dependencies. (Note the 0.x->1.0 transition is
115
+ # generally not breaking.)
116
+ deps["#{name}-#{version}"] =
117
+ if requirement.start_with? "0."
118
+ [">= #{requirement}", "< 2.a"]
119
+ else
120
+ "~> #{requirement}"
121
+ end
122
+ end
123
+ extra_deps = gem_config_dependencies
124
+ deps.merge! extra_deps if extra_deps
125
+ deps
112
126
  end
113
- extra_deps = gem_config :extra_dependencies
114
- deps.merge! extra_deps if extra_deps
115
- deps
116
127
  end
117
128
 
118
129
  def google_cloud_short_name
@@ -22,7 +22,7 @@ during development.
22
22
  2. Set the [environment variable](#environment-variables).
23
23
 
24
24
  ```sh
25
- export <%= gem.env_prefix %>_CREDENTIALS=path/to/keyfile.json
25
+ export <%= gem.cloud_env_prefix %>_CREDENTIALS=path/to/keyfile.json
26
26
  ```
27
27
 
28
28
  3. Initialize the client.
@@ -69,24 +69,26 @@ The environment variables that <%= gem.name %>
69
69
  checks for credentials are configured on the service Credentials class (such as
70
70
  <%= service.credentials_class_xref %>):
71
71
 
72
- 1. `<%= gem.env_prefix %>_CREDENTIALS` - Path to JSON file, or JSON contents
73
- 2. `<%= gem.env_prefix %>_KEYFILE` - Path to JSON file, or JSON contents
74
- 3. `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
75
- 4. `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
76
- 5. `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
72
+ <%- if gem.env_prefix -%>
73
+ * `<%= gem.env_prefix %>_CREDENTIALS` - Path to JSON file, or JSON contents
74
+ * `<%= gem.env_prefix %>_KEYFILE` - Path to JSON file, or JSON contents
75
+ <%- end -%>
76
+ * `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
77
+ * `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
78
+ * `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
77
79
 
78
80
  ```ruby
79
81
  require "<%= gem.entrypoint_require %>"
80
82
 
81
- ENV["<%= gem.env_prefix %>_CREDENTIALS"] = "path/to/keyfile.json"
83
+ ENV["<%= gem.cloud_env_prefix %>_CREDENTIALS"] = "path/to/keyfile.json"
82
84
 
83
85
  client = <%= service.create_client_call %>
84
86
  ```
85
87
 
86
88
  ### Configuration
87
89
 
88
- The **Credentials JSON** can be configured instead of placing them in
89
- environment variables. Either on an individual client initialization:
90
+ The path to the **Credentials JSON** file can be configured instead of storing
91
+ it in an environment variable. Either on an individual client initialization:
90
92
 
91
93
  ```ruby
92
94
  require "<%= gem.entrypoint_require %>"
@@ -96,7 +98,7 @@ client = <%= service.create_client_call %> do |config|
96
98
  end
97
99
  ```
98
100
 
99
- Or configured globally for all clients:
101
+ Or globally for all clients:
100
102
 
101
103
  ```ruby
102
104
  require "<%= gem.entrypoint_require %>"
@@ -56,29 +56,29 @@ task :acceptance, :project, :keyfile do |t, args|
56
56
  <%- if service && !gem.generic_endpoint? -%>
57
57
  project = args[:project]
58
58
  project ||=
59
- ENV["<%= gem.env_prefix %>_TEST_PROJECT"] ||
59
+ ENV["<%= gem.cloud_env_prefix %>_TEST_PROJECT"] ||
60
60
  ENV["GCLOUD_TEST_PROJECT"]
61
61
  keyfile = args[:keyfile]
62
62
  keyfile ||=
63
- ENV["<%= gem.env_prefix %>_TEST_KEYFILE"] ||
63
+ ENV["<%= gem.cloud_env_prefix %>_TEST_KEYFILE"] ||
64
64
  ENV["GCLOUD_TEST_KEYFILE"]
65
65
  if keyfile
66
66
  keyfile = File.read keyfile
67
67
  else
68
68
  keyfile ||=
69
- ENV["<%= gem.env_prefix %>_TEST_KEYFILE_JSON"] ||
69
+ ENV["<%= gem.cloud_env_prefix %>_TEST_KEYFILE_JSON"] ||
70
70
  ENV["GCLOUD_TEST_KEYFILE_JSON"]
71
71
  end
72
72
  if project.nil? || keyfile.nil?
73
- fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or <%= gem.env_prefix %>_TEST_PROJECT=test123 <%= gem.env_prefix %>_TEST_KEYFILE=/path/to/keyfile.json rake acceptance"
73
+ fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or <%= gem.cloud_env_prefix %>_TEST_PROJECT=test123 <%= gem.cloud_env_prefix %>_TEST_KEYFILE=/path/to/keyfile.json rake acceptance"
74
74
  end
75
75
  require "<%= service.credentials_require %>"
76
76
  <%= service.credentials_name_full %>.env_vars.each do |path|
77
77
  ENV[path] = nil
78
78
  end
79
- ENV["<%= gem.env_prefix %>_PROJECT"] = project
80
- ENV["<%= gem.env_prefix %>_TEST_PROJECT"] = project
81
- ENV["<%= gem.env_prefix %>_KEYFILE_JSON"] = keyfile
79
+ ENV["<%= gem.cloud_env_prefix %>_PROJECT"] = project
80
+ ENV["<%= gem.cloud_env_prefix %>_TEST_PROJECT"] = project
81
+ ENV["<%= gem.cloud_env_prefix %>_KEYFILE_JSON"] = keyfile
82
82
 
83
83
  <%- end -%>
84
84
  Rake::Task["acceptance:run"].invoke
@@ -6,7 +6,7 @@
6
6
 
7
7
  <%= gem.homepage %>
8
8
 
9
- <%- if gem.wrapper_name -%>
9
+ <%- if gem.has_wrapper? -%>
10
10
  This gem is a _versioned_ client. It provides basic client classes for a
11
11
  specific version of the <%= gem.title %> API. Most users should consider using
12
12
  the main client gem,
@@ -36,7 +36,7 @@ In order to use this library, you first need to go through the following steps:
36
36
  <%- if gem.api_id -%>
37
37
  1. [Enable the API.](https://console.cloud.google.com/apis/library/<%= gem.api_id %>)
38
38
  <%- end -%>
39
- 1. {file:AUTHENTICATION.md Set up authentication.}
39
+ 1. [Set up authentication.](AUTHENTICATION.md)
40
40
 
41
41
  <%- end -%>
42
42
  ## Quick Start
@@ -44,12 +44,12 @@ In order to use this library, you first need to go through the following steps:
44
44
  <%- if gem.packages? -%>
45
45
  ```ruby
46
46
  require "<%= gem.entrypoint_require %>"
47
- <%- service = gem.first_non_common_service -%>
48
- <%- method = service&.methods.first -%>
47
+ <%- service = gem.quick_start_service -%>
48
+ <%- method = service&.quick_start_method -%>
49
49
  <%- if service && method -%>
50
50
 
51
51
  client = <%= service.create_client_call %>
52
- request = my_create_request
52
+ request = <%= method.request_type %>.new # (request fields as keyword arguments...)
53
53
  response = client.<%= method.name %> request
54
54
  <%- end -%>
55
55
  ```
@@ -17,5 +17,9 @@
17
17
  "product_documentation": "<%= gem.product_documentation_url %>",
18
18
  <%- end -%>
19
19
  "repo": "googleapis/google-cloud-ruby",
20
- "requires_billing": <%= !gem.free_tier? %>
20
+ "requires_billing": <%= !gem.free_tier? %>,
21
+ <%- gem.generator_args_for_metadata.each do |key, val| -%>
22
+ <%= key.inspect %>: <%= val.inspect %>,
23
+ <%- end -%>
24
+ "library_type": "GAPIC_AUTO"
21
25
  }
@@ -13,13 +13,17 @@ class <%= service.credentials_name %> < ::Google::Auth::Credentials
13
13
  ]
14
14
  <%- end -%>
15
15
  self.env_vars = [
16
+ <%- if service.gem.env_prefix -%>
16
17
  "<%= service.gem.env_prefix %>_CREDENTIALS",
17
18
  "<%= service.gem.env_prefix %>_KEYFILE",
19
+ <%- end -%>
18
20
  "GOOGLE_CLOUD_CREDENTIALS",
19
21
  "GOOGLE_CLOUD_KEYFILE",
20
22
  "GCLOUD_KEYFILE",
23
+ <%- if service.gem.env_prefix -%>
21
24
  "<%= service.gem.env_prefix %>_CREDENTIALS_JSON",
22
25
  "<%= service.gem.env_prefix %>_KEYFILE_JSON",
26
+ <%- end -%>
23
27
  "GOOGLE_CLOUD_CREDENTIALS_JSON",
24
28
  "GOOGLE_CLOUD_KEYFILE_JSON",
25
29
  "GCLOUD_KEYFILE_JSON"
@@ -0,0 +1,4 @@
1
+ <%- assert_locals method -%>
2
+ rescue ::Faraday::Error => e
3
+ gapic_error = ::Gapic::Rest::Error.wrap_faraday_error e
4
+ raise ::Google::Cloud::Error.from_error(gapic_error)
@@ -0,0 +1,2 @@
1
+ <%- assert_locals method -%>
2
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
@@ -56,29 +56,29 @@ desc "Run the <%= gem.name %> acceptance tests."
56
56
  task :acceptance, :project, :keyfile do |t, args|
57
57
  project = args[:project]
58
58
  project ||=
59
- ENV["<%= gem.env_prefix %>_TEST_PROJECT"] ||
59
+ ENV["<%= gem.cloud_env_prefix %>_TEST_PROJECT"] ||
60
60
  ENV["GCLOUD_TEST_PROJECT"]
61
61
  keyfile = args[:keyfile]
62
62
  keyfile ||=
63
- ENV["<%= gem.env_prefix %>_TEST_KEYFILE"] ||
63
+ ENV["<%= gem.cloud_env_prefix %>_TEST_KEYFILE"] ||
64
64
  ENV["GCLOUD_TEST_KEYFILE"]
65
65
  if keyfile
66
66
  keyfile = File.read keyfile
67
67
  else
68
68
  keyfile ||=
69
- ENV["<%= gem.env_prefix %>_TEST_KEYFILE_JSON"] ||
69
+ ENV["<%= gem.cloud_env_prefix %>_TEST_KEYFILE_JSON"] ||
70
70
  ENV["GCLOUD_TEST_KEYFILE_JSON"]
71
71
  end
72
72
  if project.nil? || keyfile.nil?
73
- fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or <%= gem.env_prefix %>_TEST_PROJECT=test123 <%= gem.env_prefix %>_TEST_KEYFILE=/path/to/keyfile.json rake acceptance"
73
+ fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or <%= gem.cloud_env_prefix %>_TEST_PROJECT=test123 <%= gem.cloud_env_prefix %>_TEST_KEYFILE=/path/to/keyfile.json rake acceptance"
74
74
  end
75
75
  require "<%= service.credentials_require %>"
76
76
  <%= service.credentials_name_full %>.env_vars.each do |path|
77
77
  ENV[path] = nil
78
78
  end
79
- ENV["<%= gem.env_prefix %>_PROJECT"] = project
80
- ENV["<%= gem.env_prefix %>_TEST_PROJECT"] = project
81
- ENV["<%= gem.env_prefix %>_KEYFILE_JSON"] = keyfile
79
+ ENV["<%= gem.cloud_env_prefix %>_PROJECT"] = project
80
+ ENV["<%= gem.cloud_env_prefix %>_TEST_PROJECT"] = project
81
+ ENV["<%= gem.cloud_env_prefix %>_KEYFILE_JSON"] = keyfile
82
82
 
83
83
  Rake::Task["acceptance:run"].invoke
84
84
  end
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.7.2
4
+ version: 0.9.1
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-03-06 00:00:00.000000000 Z
13
+ date: 2021-07-08 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.7.2
35
+ version: 0.9.1
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.7.2
42
+ version: 0.9.1
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: google-style
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -177,6 +177,8 @@ files:
177
177
  - templates/cloud/service/client/_self_configure.erb
178
178
  - templates/cloud/service/client/method/def/_rescue.erb
179
179
  - templates/cloud/service/client/method/docs/_error.erb
180
+ - templates/cloud/service/rest/client/method/def/_rescue.erb
181
+ - templates/cloud/service/rest/client/method/docs/_error.erb
180
182
  - templates/cloud/shared/_license.erb
181
183
  - templates/cloud/wrapper_gem/_main.erb
182
184
  - templates/cloud/wrapper_gem/client_test.erb
@@ -209,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
211
  - !ruby/object:Gem::Version
210
212
  version: '0'
211
213
  requirements: []
212
- rubygems_version: 3.2.11
214
+ rubygems_version: 3.1.6
213
215
  signing_key:
214
216
  specification_version: 4
215
217
  summary: An API Client Generator for Ruby in Ruby!