google-gax 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/google/gax.rb +32 -10
- data/lib/google/gax/api_callable.rb +53 -56
- data/lib/google/gax/path_template.rb +4 -4
- data/lib/google/gax/settings.rb +9 -4
- data/lib/google/gax/version.rb +1 -1
- data/spec/google/gax/api_callable_spec.rb +6 -1
- data/spec/google/gax/settings_spec.rb +7 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f00dba40d04710327a4348f2b0919f423b81ab3d
|
4
|
+
data.tar.gz: 16ebb311b89300f865849238f840acedd3aec149
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 128e33ba96e202d5abf7b941d922737fc56115cd3c4d82b9fe3b331beb7639704f9ac1e86980f64757c2169b0fdee8e9668b985d8a81cb2f9c4aee46c3eb1255
|
7
|
+
data.tar.gz: 234a0c126f754c7db3690f53aeda09a689143cc52e141d787b3cd17259c7bc0db371cca13544a85253a450ed11178a45e8b05c0c06c3c342f84ceabacab465f9
|
data/lib/google/gax.rb
CHANGED
@@ -49,9 +49,11 @@ module Google
|
|
49
49
|
# @return [Object]
|
50
50
|
# @!attribute [r] bundle_descriptor
|
51
51
|
# @return [BundleDescriptor]
|
52
|
+
# @!attribute [r] kwargs
|
53
|
+
# @return [Hash]
|
52
54
|
class CallSettings
|
53
55
|
attr_reader :timeout, :retry_options, :page_descriptor, :page_token,
|
54
|
-
:bundler, :bundle_descriptor
|
56
|
+
:bundler, :bundle_descriptor, :kwargs, :errors
|
55
57
|
|
56
58
|
# @param timeout [Numeric] The client-side timeout for API calls. This
|
57
59
|
# parameter is ignored for retrying calls.
|
@@ -67,14 +69,21 @@ module Google
|
|
67
69
|
# performed.
|
68
70
|
# @param bundle_descriptor [BundleDescriptor] indicates the structure of
|
69
71
|
# the bundle. If nil, bundling is not performed.
|
72
|
+
# @param kwargs [Hash]
|
73
|
+
# Additional keyword argments to be passed to the API call.
|
74
|
+
# @param errors [Array<Exception>]
|
75
|
+
# Configures the exceptions to wrap with GaxError.
|
70
76
|
def initialize(timeout: 30, retry_options: nil, page_descriptor: nil,
|
71
|
-
page_token: nil, bundler: nil, bundle_descriptor: nil
|
77
|
+
page_token: nil, bundler: nil, bundle_descriptor: nil,
|
78
|
+
kwargs: {}, errors: [])
|
72
79
|
@timeout = timeout
|
73
80
|
@retry_options = retry_options
|
74
81
|
@page_descriptor = page_descriptor
|
75
82
|
@page_token = page_token
|
76
83
|
@bundler = bundler
|
77
84
|
@bundle_descriptor = bundle_descriptor
|
85
|
+
@kwargs = kwargs
|
86
|
+
@errors = errors
|
78
87
|
end
|
79
88
|
|
80
89
|
# @return true when it has retry codes.
|
@@ -98,7 +107,9 @@ module Google
|
|
98
107
|
page_descriptor: @page_descriptor,
|
99
108
|
page_token: @page_token,
|
100
109
|
bundler: @bundler,
|
101
|
-
bundle_descriptor: @bundle_descriptor
|
110
|
+
bundle_descriptor: @bundle_descriptor,
|
111
|
+
kwargs: @kwargs,
|
112
|
+
errors: @errors)
|
102
113
|
end
|
103
114
|
|
104
115
|
timeout = if options.timeout == :OPTION_INHERIT
|
@@ -117,12 +128,17 @@ module Google
|
|
117
128
|
options.page_token
|
118
129
|
end
|
119
130
|
|
131
|
+
kwargs = @kwargs.dup
|
132
|
+
kwargs.update(options.kwargs) if options.kwargs != :OPTION_INHERIT
|
133
|
+
|
120
134
|
CallSettings.new(timeout: timeout,
|
121
135
|
retry_options: retry_options,
|
122
136
|
page_descriptor: @page_descriptor,
|
123
137
|
page_token: page_token,
|
124
138
|
bundler: @bundler,
|
125
|
-
bundle_descriptor: @bundle_descriptor
|
139
|
+
bundle_descriptor: @bundle_descriptor,
|
140
|
+
kwargs: kwargs,
|
141
|
+
errors: @errors)
|
126
142
|
end
|
127
143
|
end
|
128
144
|
|
@@ -133,8 +149,10 @@ module Google
|
|
133
149
|
# @return [RetryOptions, :OPTION_INHERIT]
|
134
150
|
# @!attribute [r] page_token
|
135
151
|
# @return [Object, :OPTION_INHERIT, :INITIAL_PAGE]
|
152
|
+
# @!attribute [r] kwargs
|
153
|
+
# @return [Hash, :OPTION_INHERIT]
|
136
154
|
class CallOptions
|
137
|
-
attr_reader :timeout, :retry_options, :page_token
|
155
|
+
attr_reader :timeout, :retry_options, :page_token, :kwargs
|
138
156
|
|
139
157
|
# @param timeout [Numeric, :OPTION_INHERIT]
|
140
158
|
# The client-side timeout for API calls.
|
@@ -144,12 +162,16 @@ module Google
|
|
144
162
|
# @param page_token [Object, :OPTION_INHERIT]
|
145
163
|
# If set and the call is configured for page streaming, page streaming
|
146
164
|
# is starting with this page_token.
|
165
|
+
# @param kwargs [Hash, :OPTION_INHERIT]
|
166
|
+
# Additional keyword argments to be passed to the API call.
|
147
167
|
def initialize(timeout: :OPTION_INHERIT,
|
148
168
|
retry_options: :OPTION_INHERIT,
|
149
|
-
page_token: :OPTION_INHERIT
|
169
|
+
page_token: :OPTION_INHERIT,
|
170
|
+
kwargs: :OPTION_INHERIT)
|
150
171
|
@timeout = timeout
|
151
172
|
@retry_options = retry_options
|
152
173
|
@page_token = page_token
|
174
|
+
@kwargs = kwargs
|
153
175
|
end
|
154
176
|
end
|
155
177
|
|
@@ -243,7 +265,7 @@ module Google
|
|
243
265
|
:element_count_limit,
|
244
266
|
:request_byte_threshold,
|
245
267
|
:request_byte_limit,
|
246
|
-
:
|
268
|
+
:delay_threshold_millis)
|
247
269
|
# @!attribute element_count_threshold
|
248
270
|
# @return [Numeric] the bundled request will be sent once the
|
249
271
|
# count of outstanding elements in the repeated field
|
@@ -269,7 +291,7 @@ module Google
|
|
269
291
|
# pessimistically approximated by summing the bytesizes of
|
270
292
|
# the elements in the repeated field, with a buffer applied
|
271
293
|
# to correspond to the resulting under-approximation.
|
272
|
-
# @!attribute
|
294
|
+
# @!attribute delay_threshold_millis
|
273
295
|
# @return [Numeric] the bundled request will be sent this
|
274
296
|
# amount of time after the first element in the bundle was
|
275
297
|
# added to it.
|
@@ -277,13 +299,13 @@ module Google
|
|
277
299
|
element_count_limit: 0,
|
278
300
|
request_byte_threshold: 0,
|
279
301
|
request_byte_limit: 0,
|
280
|
-
|
302
|
+
delay_threshold_millis: 0)
|
281
303
|
super(
|
282
304
|
element_count_threshold,
|
283
305
|
element_count_limit,
|
284
306
|
request_byte_threshold,
|
285
307
|
request_byte_limit,
|
286
|
-
|
308
|
+
delay_threshold_millis)
|
287
309
|
end
|
288
310
|
end
|
289
311
|
end
|
@@ -30,7 +30,6 @@
|
|
30
30
|
require 'time'
|
31
31
|
|
32
32
|
require 'google/gax/errors'
|
33
|
-
require 'google/gax/grpc'
|
34
33
|
|
35
34
|
# rubocop:disable Metrics/ModuleLength
|
36
35
|
|
@@ -45,16 +44,16 @@ module Google
|
|
45
44
|
# PagedEnumerable provides the enumerations over the resource data,
|
46
45
|
# and also provides the enumerations over the pages themselves.
|
47
46
|
#
|
48
|
-
#
|
47
|
+
# @example normal iteration over resources.
|
49
48
|
# paged_enumerable.each { |resource| puts resource }
|
50
49
|
#
|
51
|
-
#
|
50
|
+
# @example per-page iteration.
|
52
51
|
# paged_enumerable.each_page { |page| puts page }
|
53
52
|
#
|
54
|
-
#
|
53
|
+
# @example Enumerable over pages.
|
55
54
|
# pages = paged_enumerable.enum_for(:each_page).to_a
|
56
55
|
#
|
57
|
-
#
|
56
|
+
# @example more exact operations over pages.
|
58
57
|
# while some_condition()
|
59
58
|
# page = paged_enumerable.page
|
60
59
|
# do_something(page)
|
@@ -120,35 +119,33 @@ module Google
|
|
120
119
|
include Enumerable
|
121
120
|
attr_reader :page
|
122
121
|
|
123
|
-
# @param a_func [Proc]
|
124
|
-
# A proc to update the response object.
|
125
122
|
# @param request_page_token_field [String]
|
126
123
|
# The name of the field in request which will have the page token.
|
127
124
|
# @param response_page_token_field [String]
|
128
125
|
# The name of the field in the response which holds the next page token.
|
129
126
|
# @param resource_field [String]
|
130
127
|
# The name of the field in the response which holds the resources.
|
131
|
-
def initialize(
|
128
|
+
def initialize(request_page_token_field,
|
132
129
|
response_page_token_field, resource_field)
|
133
|
-
@func = a_func
|
134
130
|
@request_page_token_field = request_page_token_field
|
135
131
|
@page = Page.new(nil, response_page_token_field, resource_field)
|
136
132
|
end
|
137
133
|
|
138
134
|
# Initiate the streaming with the requests and keywords.
|
139
|
-
# @param
|
140
|
-
#
|
135
|
+
# @param api_call [Proc]
|
136
|
+
# A proc to update the response object.
|
141
137
|
# @param request [Object]
|
142
138
|
# The initial request object.
|
143
|
-
# @param
|
144
|
-
#
|
139
|
+
# @param settings [CallSettings]
|
140
|
+
# The call settings to enumerate pages.
|
145
141
|
# @return [PagedEnumerable]
|
146
142
|
# returning self for further uses.
|
147
|
-
def start(
|
143
|
+
def start(api_call, request, settings)
|
144
|
+
@func = api_call
|
148
145
|
@request = request
|
146
|
+
page_token = settings.page_token
|
149
147
|
@request[@request_page_token_field] = page_token if page_token
|
150
|
-
@
|
151
|
-
@page = @page.dup_with(@func.call(@request, **@kwargs))
|
148
|
+
@page = @page.dup_with(@func.call(@request))
|
152
149
|
self
|
153
150
|
end
|
154
151
|
|
@@ -190,7 +187,7 @@ module Google
|
|
190
187
|
def next_page
|
191
188
|
return unless next_page?
|
192
189
|
@request[@request_page_token_field] = @page.next_page_token
|
193
|
-
@page = @page.dup_with(@func.call(@request
|
190
|
+
@page = @page.dup_with(@func.call(@request))
|
194
191
|
end
|
195
192
|
|
196
193
|
def response
|
@@ -219,47 +216,51 @@ module Google
|
|
219
216
|
# does the signature change.
|
220
217
|
#
|
221
218
|
# @param func [Proc] used to make a bare rpc call
|
222
|
-
# @param settings [CallSettings provides the settings for this call
|
219
|
+
# @param settings [CallSettings] provides the settings for this call
|
223
220
|
# @return [Proc] a bound method on a request stub used to make an rpc call
|
224
221
|
# @raise [StandardError] if +settings+ has incompatible values,
|
225
222
|
# e.g, if bundling and page_streaming are both configured
|
226
223
|
def create_api_call(func, settings)
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
add_timeout_arg(func, settings.timeout)
|
231
|
-
end
|
224
|
+
api_caller = proc do |api_call, request|
|
225
|
+
api_call.call(request)
|
226
|
+
end
|
232
227
|
|
233
228
|
if settings.page_descriptor
|
234
229
|
if settings.bundler?
|
235
230
|
raise 'ApiCallable has incompatible settings: ' \
|
236
231
|
'bundling and page streaming'
|
237
232
|
end
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
)
|
245
|
-
end
|
246
|
-
if settings.bundler?
|
247
|
-
return bundleable(api_call, settings.bundle_descriptor,
|
248
|
-
settings.bundler)
|
233
|
+
page_descriptor = settings.page_descriptor
|
234
|
+
api_caller = page_streamable(page_descriptor.request_page_token_field,
|
235
|
+
page_descriptor.response_page_token_field,
|
236
|
+
page_descriptor.resource_field)
|
237
|
+
elsif settings.bundler?
|
238
|
+
api_caller = bundleable(settings.bundle_descriptor)
|
249
239
|
end
|
250
240
|
|
251
|
-
|
241
|
+
proc do |request, options = nil|
|
242
|
+
this_settings = settings.merge(options)
|
243
|
+
api_call = if settings.retry_codes?
|
244
|
+
retryable(func, this_settings.retry_options,
|
245
|
+
this_settings.kwargs)
|
246
|
+
else
|
247
|
+
add_timeout_arg(func, this_settings.timeout,
|
248
|
+
this_settings.kwargs)
|
249
|
+
end
|
250
|
+
api_call = catch_errors(api_call, settings.errors)
|
251
|
+
api_caller.call(api_call, request, this_settings)
|
252
|
+
end
|
252
253
|
end
|
253
254
|
|
254
255
|
# Updates a_func to wrap exceptions with GaxError
|
255
256
|
#
|
256
257
|
# @param a_func [Proc]
|
257
258
|
# @param errors [Array<Exception>] Configures the exceptions to wrap.
|
258
|
-
# @return [Proc] A proc that will wrap certain exceptions with GaxError
|
259
|
-
def catch_errors(a_func, errors
|
260
|
-
proc do |request
|
259
|
+
# @return [Proc] A proc that will wrap certain exceptions with GaxError.
|
260
|
+
def catch_errors(a_func, errors)
|
261
|
+
proc do |request|
|
261
262
|
begin
|
262
|
-
a_func.call(request
|
263
|
+
a_func.call(request)
|
263
264
|
rescue *errors
|
264
265
|
raise GaxError, 'RPC failed'
|
265
266
|
end
|
@@ -281,11 +282,12 @@ module Google
|
|
281
282
|
# @param bundler orchestrates bundling.
|
282
283
|
# @return [Proc] A proc takes the API call's request and returns
|
283
284
|
# an Event object.
|
284
|
-
def bundleable(
|
285
|
-
proc do |request|
|
285
|
+
def bundleable(desc)
|
286
|
+
proc do |api_call, request, settings|
|
287
|
+
return api_call(request) unless settings.bundler
|
286
288
|
the_id = bundling.compute_bundle_id(request,
|
287
289
|
desc.request_discriminator_fields)
|
288
|
-
return bundler.schedule(
|
290
|
+
return bundler.schedule(api_call, the_id, desc, request)
|
289
291
|
end
|
290
292
|
end
|
291
293
|
|
@@ -300,18 +302,13 @@ module Google
|
|
300
302
|
# @param page_token [Object] The page_token for the first page to be
|
301
303
|
# streamed, or nil.
|
302
304
|
# @return [Proc] A proc that returns an iterable over the specified field.
|
303
|
-
def page_streamable(
|
304
|
-
request_page_token_field,
|
305
|
+
def page_streamable(request_page_token_field,
|
305
306
|
response_page_token_field,
|
306
|
-
resource_field
|
307
|
-
|
308
|
-
enumerable = PagedEnumerable.new(a_func,
|
309
|
-
request_page_token_field,
|
307
|
+
resource_field)
|
308
|
+
enumerable = PagedEnumerable.new(request_page_token_field,
|
310
309
|
response_page_token_field,
|
311
310
|
resource_field)
|
312
|
-
|
313
|
-
enumerable.start(page_token, request, **kwargs)
|
314
|
-
end
|
311
|
+
enumerable.method(:start)
|
315
312
|
end
|
316
313
|
|
317
314
|
# rubocop:disable Metrics/MethodLength
|
@@ -324,7 +321,7 @@ module Google
|
|
324
321
|
# upon which the proc should retry, and the parameters to the
|
325
322
|
# exponential backoff retry algorithm.
|
326
323
|
# @return [Proc] A proc that will retry on exception.
|
327
|
-
def retryable(a_func, retry_options)
|
324
|
+
def retryable(a_func, retry_options, kwargs)
|
328
325
|
delay_mult = retry_options.backoff_settings.retry_delay_multiplier
|
329
326
|
max_delay = (retry_options.backoff_settings.max_retry_delay_millis /
|
330
327
|
MILLIS_PER_SECOND)
|
@@ -334,7 +331,7 @@ module Google
|
|
334
331
|
total_timeout = (retry_options.backoff_settings.total_timeout_millis /
|
335
332
|
MILLIS_PER_SECOND)
|
336
333
|
|
337
|
-
proc do |request
|
334
|
+
proc do |request|
|
338
335
|
delay = retry_options.backoff_settings.initial_retry_delay_millis
|
339
336
|
timeout = (retry_options.backoff_settings.initial_rpc_timeout_millis /
|
340
337
|
MILLIS_PER_SECOND)
|
@@ -344,7 +341,7 @@ module Google
|
|
344
341
|
|
345
342
|
loop do
|
346
343
|
begin
|
347
|
-
result = add_timeout_arg(a_func, timeout).call(request
|
344
|
+
result = add_timeout_arg(a_func, timeout, kwargs).call(request)
|
348
345
|
break
|
349
346
|
rescue => exception
|
350
347
|
unless exception.respond_to?(:code) &&
|
@@ -374,8 +371,8 @@ module Google
|
|
374
371
|
# @param timeout [Numeric] to be added to the original proc as it
|
375
372
|
# final positional arg.
|
376
373
|
# @return [Proc] the original proc updated to the timeout arg
|
377
|
-
def add_timeout_arg(a_func, timeout)
|
378
|
-
proc do |request
|
374
|
+
def add_timeout_arg(a_func, timeout, kwargs)
|
375
|
+
proc do |request|
|
379
376
|
kwargs[:timeout] = timeout
|
380
377
|
a_func.call(request, **kwargs)
|
381
378
|
end
|
@@ -80,13 +80,13 @@ module Google
|
|
80
80
|
rule 'bound_segments : bound_segment FORWARD_SLASH bound_segments
|
81
81
|
| bound_segment' do |segs, a_seg, _, more_segs|
|
82
82
|
segs.value = a_seg.value
|
83
|
-
segs.value.
|
83
|
+
segs.value.concat(more_segs.value) unless more_segs.nil?
|
84
84
|
end
|
85
85
|
|
86
86
|
rule 'unbound_segments : unbound_terminal FORWARD_SLASH unbound_segments
|
87
87
|
| unbound_terminal' do |segs, a_term, _, more_segs|
|
88
88
|
segs.value = a_term.value
|
89
|
-
segs.value.
|
89
|
+
segs.value.concat(more_segs.value) unless more_segs.nil?
|
90
90
|
end
|
91
91
|
|
92
92
|
rule 'bound_segment : bound_terminal
|
@@ -118,7 +118,7 @@ module Google
|
|
118
118
|
| LEFT_BRACE LITERAL RIGHT_BRACE' do |variable, *args|
|
119
119
|
variable.value = [Segment.new(BINDING, args[1].value)]
|
120
120
|
if args.size > 3
|
121
|
-
variable.value.
|
121
|
+
variable.value.concat(args[3].value)
|
122
122
|
else
|
123
123
|
variable.value.push(Segment.new(TERMINAL, '*'))
|
124
124
|
@segment_count += 1
|
@@ -178,7 +178,7 @@ module Google
|
|
178
178
|
msg = "Value for key #{segment.literal} is not provided"
|
179
179
|
raise(ArgumentError, msg)
|
180
180
|
end
|
181
|
-
out.
|
181
|
+
out.concat(PathTemplate.new(bindings[literal_sym]).segments)
|
182
182
|
binding = true
|
183
183
|
elsif segment.kind == END_BINDING
|
184
184
|
binding = false
|
data/lib/google/gax/settings.rb
CHANGED
@@ -183,11 +183,15 @@ module Google
|
|
183
183
|
# @param page_descriptors [Hash{String => PageDescriptor}] A
|
184
184
|
# dictionary of method names to PageDescriptor objects for
|
185
185
|
# methods that are page streaming-enabled.
|
186
|
+
# @param kwargs [Hash]
|
187
|
+
# Additional keyword argments to be passed to the API call.
|
188
|
+
# @param errors [Array<Exception>]
|
189
|
+
# Configures the exceptions to wrap with GaxError.
|
186
190
|
# @return [CallSettings, nil] A CallSettings, or nil if the
|
187
191
|
# service is not found in the config.
|
188
192
|
def construct_settings(service_name, client_config, config_overrides,
|
189
193
|
retry_names, timeout, bundle_descriptors: {},
|
190
|
-
page_descriptors: {})
|
194
|
+
page_descriptors: {}, kwargs: {}, errors: [])
|
191
195
|
defaults = {}
|
192
196
|
|
193
197
|
service_config = client_config.fetch('interfaces', {})[service_name]
|
@@ -220,9 +224,10 @@ module Google
|
|
220
224
|
retry_names)
|
221
225
|
),
|
222
226
|
page_descriptor: page_descriptors[snake_name],
|
223
|
-
bundler: construct_bundling(bundling_config,
|
224
|
-
|
225
|
-
|
227
|
+
bundler: construct_bundling(bundling_config, bundle_descriptor),
|
228
|
+
bundle_descriptor: bundle_descriptor,
|
229
|
+
kwargs: kwargs,
|
230
|
+
errors: errors
|
226
231
|
)
|
227
232
|
end
|
228
233
|
|
data/lib/google/gax/version.rb
CHANGED
@@ -56,6 +56,11 @@ describe Google::Gax do
|
|
56
56
|
my_callable = Google::Gax.create_api_call(func, settings)
|
57
57
|
expect(my_callable.call(nil)).to eq(42)
|
58
58
|
expect(timeout_arg).to_not be_nil
|
59
|
+
|
60
|
+
new_timeout = timeout_arg + 20
|
61
|
+
options = Google::Gax::CallOptions.new(timeout: new_timeout)
|
62
|
+
expect(my_callable.call(nil, options)).to eq(42)
|
63
|
+
expect(timeout_arg).to eq(new_timeout)
|
59
64
|
end
|
60
65
|
end
|
61
66
|
|
@@ -112,7 +117,7 @@ describe Google::Gax do
|
|
112
117
|
|
113
118
|
describe 'failures without retry' do
|
114
119
|
it 'simply fails' do
|
115
|
-
settings = CallSettings.new
|
120
|
+
settings = CallSettings.new(errors: [GRPC::Cancelled])
|
116
121
|
timeout_arg = nil
|
117
122
|
call_count = 0
|
118
123
|
func = proc do |timeout: nil|
|
@@ -90,7 +90,9 @@ describe Google::Gax do
|
|
90
90
|
defaults = Google::Gax.construct_settings(
|
91
91
|
SERVICE_NAME, A_CONFIG, {}, RETRY_DICT, 30,
|
92
92
|
bundle_descriptors: BUNDLE_DESCRIPTORS,
|
93
|
-
page_descriptors: PAGE_DESCRIPTORS
|
93
|
+
page_descriptors: PAGE_DESCRIPTORS,
|
94
|
+
kwargs: { 'key' => 'value' },
|
95
|
+
errors: [StandardError]
|
94
96
|
)
|
95
97
|
settings = defaults['bundling_method']
|
96
98
|
expect(settings.timeout).to be(30)
|
@@ -103,6 +105,8 @@ describe Google::Gax do
|
|
103
105
|
expect(settings.retry_options.backoff_settings).to be_a(
|
104
106
|
Google::Gax::BackoffSettings
|
105
107
|
)
|
108
|
+
expect(settings.kwargs).to match('key' => 'value')
|
109
|
+
expect(settings.errors).to match_array([StandardError])
|
106
110
|
|
107
111
|
settings = defaults['page_streaming_method']
|
108
112
|
expect(settings.timeout).to be(30)
|
@@ -114,6 +118,8 @@ describe Google::Gax do
|
|
114
118
|
expect(settings.retry_options.backoff_settings).to be_a(
|
115
119
|
Google::Gax::BackoffSettings
|
116
120
|
)
|
121
|
+
expect(settings.kwargs).to match('key' => 'value')
|
122
|
+
expect(settings.errors).to match_array([StandardError])
|
117
123
|
end
|
118
124
|
|
119
125
|
it 'overrides settings' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-gax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google API Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: googleauth
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.14.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.14.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rly
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|