desk 1.0.9 → 1.0.10

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
  SHA1:
3
- metadata.gz: cf6cdb20333938ba846729b567cb0a18297354f6
4
- data.tar.gz: 8a2b4d82b8e86a7fde28b53d6d9b56540c8469ba
3
+ metadata.gz: 42e1712d947838feea34f602ca87d2f773dba88c
4
+ data.tar.gz: 96e5918ca38eb81dd57f23ead92a21f590d99921
5
5
  SHA512:
6
- metadata.gz: 4df4acd8e57b70fccedbab77ff9f94a4e087c0775bfd88b3410bbd1791561365c1ca58fc7cab94d0f657cd841fcbaec3d71b50821680bd27d4023a7c43c24cc9
7
- data.tar.gz: f55c90b816664f3d557a299e05e6934ce3b7b2a663a543b0f1593979889feb73a986c849937cac60fc7456e143c9f9af4df2f8814dc20bd4081be7583cf258b0
6
+ metadata.gz: 6cf9add4e495307e8d2e69fad7dfd8cd83ad074d9ca4cc47f4bd1abc975e2d81e9792f47b7b1d6986193110126e1ffafd6d1c584f75b066d9c259ac25f5acdfd
7
+ data.tar.gz: f690dd4a4c8ea7ecf4e4599db7f7491b47d6f4fe0499474e32830f59758e2be205b1b8b03d7981e6caa9ec15a5f403ba5f9e9170e5a085fd2b131cbdc4488000
@@ -24,6 +24,7 @@ module Desk
24
24
  :support_email,
25
25
  :use_max_requests,
26
26
  :user_agent,
27
+ :timeout,
27
28
  :version].freeze
28
29
 
29
30
  # An array of valid request/response formats
@@ -92,6 +93,9 @@ module Desk
92
93
  # By default, don't set a support email address
93
94
  DEFAULT_SUPPORT_EMAIL = nil
94
95
 
96
+ # By default, don't set a default timeout
97
+ DEFAULT_TIMEOUT = nil
98
+
95
99
  attr_reader :DEFAULT_ADAPTER
96
100
  # @private
97
101
  attr_accessor *VALID_OPTIONS_KEYS
@@ -239,6 +243,14 @@ module Desk
239
243
  Thread.current[:version] = val
240
244
  end
241
245
 
246
+ def timeout
247
+ Thread.current[:timeout] ||= DEFAULT_TIMEOUT
248
+ end
249
+
250
+ def timeout=(val)
251
+ Thread.current[:timeout] = val
252
+ end
253
+
242
254
  # Reset all configuration options to defaults
243
255
  def reset
244
256
  self.adapter = DEFAULT_ADAPTER
@@ -259,6 +271,7 @@ module Desk
259
271
  self.use_max_requests = DEFAULT_USE_MAX_REQUESTS
260
272
  self.user_agent = DEFAULT_USER_AGENT
261
273
  self.version = DEFAULT_VERSION
274
+ self.timeout = DEFAULT_TIMEOUT
262
275
  self
263
276
  end
264
277
  end
@@ -15,8 +15,11 @@ module Desk
15
15
  :proxy => proxy,
16
16
  :ssl => {:verify => false, :version => 'SSLv23'},
17
17
  :url => api_endpoint,
18
+ :request => {},
18
19
  }
19
20
 
21
+ options[:request][:timeout] = timeout if timeout
22
+
20
23
  Faraday.new(options) do |builder|
21
24
  builder.use Faraday::Request::MultipartWithFile
22
25
  if authenticated?
@@ -1,4 +1,4 @@
1
1
  module Desk
2
2
  # The version of the gem
3
- VERSION = '1.0.9'.freeze unless defined?(::Desk::VERSION)
3
+ VERSION = '1.0.10'.freeze unless defined?(::Desk::VERSION)
4
4
  end
@@ -108,6 +108,19 @@ describe Desk do
108
108
  end
109
109
  end
110
110
 
111
+ describe ".timeout" do
112
+ it "should return the default timeout" do
113
+ Desk.timeout.should == Desk::Configuration::DEFAULT_TIMEOUT
114
+ end
115
+ end
116
+
117
+ describe ".timeout=" do
118
+ it "should set the timeout" do
119
+ Desk.timeout = 30
120
+ Desk.timeout.should == 30
121
+ end
122
+ end
123
+
111
124
  describe ".version=" do
112
125
  before do
113
126
  Desk.version = "v4"
@@ -134,7 +147,7 @@ describe Desk do
134
147
  Desk.format.should == 'xml'
135
148
  end
136
149
  end
137
-
150
+
138
151
  describe ".max_requests" do
139
152
  it "should return the default max requests" do
140
153
  Desk.max_requests.should == Desk::Configuration::DEFAULT_MAX_REQUESTS
@@ -186,30 +199,30 @@ describe Desk do
186
199
  end
187
200
  end
188
201
  end
189
-
202
+
190
203
  describe ".counter" do
191
204
  before do
192
205
  Desk.counter = 0
193
206
  stub_get("cases").
194
207
  to_return(:body => fixture("cases"), :headers => {:content_type => "application/json; charset=utf-8"})
195
208
  end
196
-
209
+
197
210
  it "should be 0 in the beginning" do
198
211
  Desk.counter.should == 0
199
212
  end
200
-
213
+
201
214
  it "should count the requests" do
202
215
  5.times {
203
216
  Desk.cases
204
217
  }
205
218
  Desk.counter.should == 5
206
219
  end
207
-
220
+
208
221
  context "max requests enabled" do
209
222
  before do
210
223
  Desk.use_max_requests = true
211
224
  end
212
-
225
+
213
226
  it "should only allow 60 requests" do
214
227
  expect {
215
228
  70.times {
@@ -217,7 +230,7 @@ describe Desk do
217
230
  }
218
231
  }.to raise_error
219
232
  end
220
-
233
+
221
234
  it "should only allow defined requests" do
222
235
  Desk.max_requests = 50
223
236
  expect {
@@ -226,14 +239,14 @@ describe Desk do
226
239
  }
227
240
  }.to raise_error
228
241
  end
229
-
242
+
230
243
  def make_request
231
244
  Desk.cases
232
245
  rescue Desk::TooManyRequests
233
246
  sleep(5)
234
247
  make_request
235
248
  end
236
-
249
+
237
250
  xit "should allow more requests after minute has passed" do
238
251
  70.times {
239
252
  make_request
@@ -242,12 +255,12 @@ describe Desk do
242
255
  end
243
256
  end
244
257
  end
245
-
258
+
246
259
  describe ".minute" do
247
260
  before do
248
261
  Desk.minute = Time.now.min
249
262
  end
250
-
263
+
251
264
  it "should be the current minute" do
252
265
  Desk.minute.should == Time.now.min
253
266
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: desk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Warren
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-20 00:00:00.000000000 Z
11
+ date: 2017-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri