google-cloud-errors 1.0.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ecb2a90065a61c805f861e3ee7051f1b3bbae3d32cbe1b3b54a65d17e57f3da4
4
- data.tar.gz: fb7394742b7b4180dc1ffe63ce9eab30dcd38134cd3b2270125b895bff633b24
3
+ metadata.gz: 0ab6400a7d633ba4c9bb30de49bc2b23a5824530fa02a1f88aa151ff328487ab
4
+ data.tar.gz: 77459bb92f7408eb68b9d02ed6b96cd4d3f183d213c27b1eac36086129957424
5
5
  SHA512:
6
- metadata.gz: 77e99f727829447b3d77c0ba84bda03671cf5fdab416b9642c2c7ddd0af3c6e8aaf7c81222c03c256dbb524b63598feeada385fc0c7df230cd0a0c81298d1bfe
7
- data.tar.gz: 237610df70af008e064b4b39554831d8e3edd806f31d6535fdee6b4f53aeb8a342296efecde7f7da76a41133d5b09c757fa946dfbc5e090a50de7716241d3b62
6
+ metadata.gz: f9cbd068fecd4fa411fd008bc519460366900be46f774ead0c5e92b399f46c8ec1f9cf02e2971dafdc86106f177e48073720faf2a6135c09f8bc80bf8eded0e6
7
+ data.tar.gz: 5f54fe580d61ce5e0d1b80b13a461e3d299c888e770646328df796e662093c0e1a1cfae1996a3b5c91307673e372400f267caa0d0bb54c67c5d1fbdb51947b10
data/CONTRIBUTING.md CHANGED
@@ -24,7 +24,7 @@ be able to accept your pull requests.
24
24
  In order to use the google-cloud console and run the project's tests,
25
25
  there is a small amount of setup:
26
26
 
27
- 1. Install Ruby. google-cloud requires Ruby 2.4+. You may choose to
27
+ 1. Install Ruby. google-cloud requires Ruby 2.5+. You may choose to
28
28
  manage your Ruby and gem installations with [RVM](https://rvm.io/),
29
29
  [rbenv](https://github.com/rbenv/rbenv), or
30
30
  [chruby](https://github.com/postmodern/chruby).
@@ -45,7 +45,7 @@ there is a small amount of setup:
45
45
 
46
46
  ```sh
47
47
  $ cd google-cloud-errors/
48
- $ bundle exec rake bundleupdate
48
+ $ bundle install
49
49
  ```
50
50
 
51
51
  ## Google Cloud Tests
@@ -124,5 +124,4 @@ $ bundle exec rake rubocop
124
124
  ## Code of Conduct
125
125
 
126
126
  Please note that this project is released with a Contributor Code of Conduct. By
127
- participating in this project you agree to abide by its terms. See
128
- {file:CODE_OF_CONDUCT.md Code of Conduct} for more information.
127
+ participating in this project you agree to abide by its terms. See {file:CODE_OF_CONDUCT.md Code of Conduct} for more information.
data/README.md CHANGED
@@ -9,11 +9,11 @@ information about Google Cloud gems.
9
9
 
10
10
  ## Supported Ruby Versions
11
11
 
12
- This library is supported on Ruby 2.4+.
12
+ This library is supported on Ruby 2.5+.
13
13
 
14
14
  Google provides official support for Ruby versions that are actively supported
15
15
  by Ruby Core—that is, Ruby versions that are either in normal maintenance or in
16
- security maintenance, and not end of life. Currently, this means Ruby 2.4 and
16
+ security maintenance, and not end of life. Currently, this means Ruby 2.5 and
17
17
  later. Older versions of Ruby _may_ still work, but are unsupported and not
18
18
  recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
19
19
  about the Ruby support schedule.
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Errors
19
- VERSION = "1.0.1".freeze
19
+ VERSION = "1.3.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -23,6 +23,8 @@ module Google
23
23
  ##
24
24
  # Construct a new Google::Cloud::Error object, optionally passing in a
25
25
  # message.
26
+ #
27
+ # @param msg [String, nil] an error message
26
28
  def initialize msg = nil
27
29
  super
28
30
  end
@@ -36,7 +38,7 @@ module Google
36
38
  #
37
39
  # @return [Object, nil]
38
40
  def status_code
39
- return nil unless cause&.respond_to? :status_code
41
+ return nil unless cause.respond_to? :status_code
40
42
  cause.status_code
41
43
  end
42
44
 
@@ -49,7 +51,7 @@ module Google
49
51
  #
50
52
  # @return [Object, nil]
51
53
  def body
52
- return nil unless cause&.respond_to? :body
54
+ return nil unless cause.respond_to? :body
53
55
  cause.body
54
56
  end
55
57
 
@@ -62,7 +64,7 @@ module Google
62
64
  #
63
65
  # @return [Object, nil]
64
66
  def header
65
- return nil unless cause&.respond_to? :header
67
+ return nil unless cause.respond_to? :header
66
68
  cause.header
67
69
  end
68
70
 
@@ -75,7 +77,7 @@ module Google
75
77
  #
76
78
  # @return [Object, nil]
77
79
  def code
78
- return nil unless cause&.respond_to? :code
80
+ return nil unless cause.respond_to? :code
79
81
  cause.code
80
82
  end
81
83
 
@@ -88,7 +90,7 @@ module Google
88
90
  #
89
91
  # @return [Object, nil]
90
92
  def details
91
- return nil unless cause&.respond_to? :details
93
+ return nil unless cause.respond_to? :details
92
94
  cause.details
93
95
  end
94
96
 
@@ -101,7 +103,7 @@ module Google
101
103
  #
102
104
  # @return [Object, nil]
103
105
  def metadata
104
- return nil unless cause&.respond_to? :metadata
106
+ return nil unless cause.respond_to? :metadata
105
107
  cause.metadata
106
108
  end
107
109
 
@@ -114,10 +116,72 @@ module Google
114
116
  #
115
117
  # @return [Object, nil]
116
118
  def status_details
117
- return nil unless cause&.respond_to? :status_details
119
+ return nil unless cause.respond_to? :status_details
118
120
  cause.status_details
119
121
  end
120
122
 
123
+ ##
124
+ # Returns the `::Google::Rpc::ErrorInfo` object present in the `status_details`
125
+ # or `details` array, given that the following is true:
126
+ # * either `status_details` or `details` exists and is an array
127
+ # * there is exactly one `::Google::Rpc::ErrorInfo` object in that array.
128
+ # Looks in `status_details` first, then in `details`.
129
+ #
130
+ # @return [::Google::Rpc::ErrorInfo, nil]
131
+ def error_info
132
+ @error_info ||= begin
133
+ check_property = lambda do |prop|
134
+ if prop.is_a? Array
135
+ error_infos = prop.find_all { |status| status.is_a?(::Google::Rpc::ErrorInfo) }
136
+ if error_infos.length == 1
137
+ error_infos[0]
138
+ end
139
+ end
140
+ end
141
+
142
+ check_property.call(status_details) || check_property.call(details)
143
+ end
144
+ end
145
+
146
+ ##
147
+ # Returns the value of `domain` from the `::Google::Rpc::ErrorInfo`
148
+ # object, if it exists in the `status_details` array.
149
+ #
150
+ # This is typically present on errors originating from calls to an API
151
+ # over gRPC.
152
+ #
153
+ # @return [Object, nil]
154
+ def domain
155
+ return nil unless error_info.respond_to? :domain
156
+ error_info.domain
157
+ end
158
+
159
+ ##
160
+ # Returns the value of `reason` from the `::Google::Rpc::ErrorInfo`
161
+ # object, if it exists in the `status_details` array.
162
+ #
163
+ # This is typically present on errors originating from calls to an API
164
+ # over gRPC.
165
+ #
166
+ # @return [Object, nil]
167
+ def reason
168
+ return nil unless error_info.respond_to? :reason
169
+ error_info.reason
170
+ end
171
+
172
+ ##
173
+ # Returns the value of `metadata` from the `::Google::Rpc::ErrorInfo`
174
+ # object, if it exists in the `status_details` array.
175
+ #
176
+ # This is typically present on errors originating from calls to an API
177
+ # over gRPC.
178
+ #
179
+ # @return [Hash, nil]
180
+ def error_metadata
181
+ return nil unless error_info.respond_to? :metadata
182
+ error_info.metadata.to_h
183
+ end
184
+
121
185
  # @private Create a new error object from a client error
122
186
  def self.from_error error
123
187
  klass = if error.respond_to? :code
@@ -217,12 +281,6 @@ module Google
217
281
  class PermissionDeniedError < Error
218
282
  end
219
283
 
220
- ##
221
- # Unauthenticated indicates the request does not have valid
222
- # authentication credentials for the operation.
223
- class UnauthenticatedError < Error
224
- end
225
-
226
284
  ##
227
285
  # ResourceExhausted indicates some resource has been exhausted, perhaps
228
286
  # a per-user quota, or perhaps the entire file system is out of space.
@@ -308,5 +366,11 @@ module Google
308
366
  # DataLoss indicates unrecoverable data loss or corruption.
309
367
  class DataLossError < Error
310
368
  end
369
+
370
+ ##
371
+ # Unauthenticated indicates the request does not have valid
372
+ # authentication credentials for the operation.
373
+ class UnauthenticatedError < Error
374
+ end
311
375
  end
312
376
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-errors
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-05-28 00:00:00.000000000 Z
12
+ date: 2022-09-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: autotest-suffix
@@ -31,28 +31,28 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 1.24.0
34
+ version: 1.25.1
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 1.24.0
41
+ version: 1.25.1
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: minitest
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '5.10'
48
+ version: '5.14'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '5.10'
55
+ version: '5.14'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: minitest-autotest
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -179,14 +179,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
179
  requirements:
180
180
  - - ">="
181
181
  - !ruby/object:Gem::Version
182
- version: '2.4'
182
+ version: '2.5'
183
183
  required_rubygems_version: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  requirements: []
189
- rubygems_version: 3.0.6
189
+ rubygems_version: 3.3.14
190
190
  signing_key:
191
191
  specification_version: 4
192
192
  summary: Error classes for google-cloud-ruby