saddle 0.0.36 → 0.0.37

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,7 +8,7 @@ module Saddle
8
8
 
9
9
  # Catches exceptions and retries each request a limited number of times.
10
10
  #
11
- # By default, it retries 2 times and performs exponential backoff, starting
11
+ # By default, it retries 0 times and performs exponential backoff, starting
12
12
  # at 50ms
13
13
  class Retry < Faraday::Middleware
14
14
  def initialize(app, ignored_exceptions=[])
@@ -17,7 +17,7 @@ module Saddle
17
17
  end
18
18
 
19
19
  def call(env)
20
- retries = env[:request][:num_retries] || 2
20
+ retries = env[:request][:num_retries] || 0
21
21
  backoff = env[:request][:retry_backoff] || 0.050 # in seconds
22
22
  begin
23
23
  @app.call(self.class.deep_copy(env))
@@ -0,0 +1,29 @@
1
+ require 'faraday'
2
+
3
+
4
+ module Saddle
5
+ module Middleware
6
+ module Response
7
+ class RaiseError < Faraday::Middleware
8
+
9
+ def call(env)
10
+ result = @app.call(env)
11
+
12
+ case result.status
13
+ when 404
14
+ raise Faraday::Error::ResourceNotFound, response_values(result)
15
+ when 400...600
16
+ raise Faraday::Error::ClientError, response_values(result)
17
+ end
18
+
19
+ result
20
+ end
21
+
22
+ def response_values(result)
23
+ {:status => result.status, :headers => result.headers, :body => result.body}
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+ end
@@ -47,7 +47,7 @@ module Saddle
47
47
 
48
48
  # Default number of retries per request
49
49
  def num_retries
50
- 3
50
+ 1
51
51
  end
52
52
 
53
53
  # Default timeout per request (in seconds)
@@ -12,6 +12,7 @@ require 'saddle/middleware/request/user_agent'
12
12
 
13
13
  require 'saddle/middleware/response/default_response'
14
14
  require 'saddle/middleware/response/parse_json'
15
+ require 'saddle/middleware/response/raise_error'
15
16
 
16
17
  require 'saddle/middleware/ruby_timeout'
17
18
 
@@ -154,7 +155,7 @@ module Saddle
154
155
  builder.use(Saddle::Middleware::Request::Retry)
155
156
 
156
157
  # Raise exceptions on 4xx and 5xx errors
157
- builder.use(Faraday::Response::RaiseError)
158
+ builder.use(Saddle::Middleware::Response::RaiseError)
158
159
 
159
160
  # Handle parsing out the response if it's JSON
160
161
  builder.use(Saddle::Middleware::Response::ParseJson)
@@ -1,3 +1,3 @@
1
1
  module Saddle
2
- VERSION = '0.0.36'
2
+ VERSION = '0.0.37'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saddle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.36
4
+ version: 0.0.37
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-26 00:00:00.000000000 Z
12
+ date: 2013-07-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -90,6 +90,7 @@ files:
90
90
  - lib/saddle/middleware/request/user_agent.rb
91
91
  - lib/saddle/middleware/response/default_response.rb
92
92
  - lib/saddle/middleware/response/parse_json.rb
93
+ - lib/saddle/middleware/response/raise_error.rb
93
94
  - lib/saddle/middleware/ruby_timeout.rb
94
95
  - lib/saddle/options.rb
95
96
  - lib/saddle/requester.rb