saddle 0.0.36 → 0.0.37

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.
@@ -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