faraday_middleware-request-retry 0.0.2 → 0.1.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
  SHA1:
3
- metadata.gz: c95fc8ef595dda3ae855d1b4bed6a349d0f57845
4
- data.tar.gz: c8383acba9bda0678b6bc3def6b77f9ad4676c02
3
+ metadata.gz: 7aa9342c9636f4ecd594b79f8bbf40efe64c5092
4
+ data.tar.gz: ae7a148dcce1ecbcb12e5801f66f2242f997b4bf
5
5
  SHA512:
6
- metadata.gz: 25e1867ae59320f8855934866be27e7ff2d137c8720b6bad4f58a92441def75aacf69ff2271e910ea2dee5f4e3f6418aa4563124aa497fefc42ed2c29398f4d4
7
- data.tar.gz: 7d004ca6238f6da7e18335c9cce576d0904d1997f3ed62d262335880a90484edfcd256427400efadc3b5873f26f9b56439659935e83a46d33c30c8b820e5be29
6
+ metadata.gz: 9febff9858f8c17495793773ebc4d75c1469c959f47d1813dedee59f75ae60a77d266848aca3938492d5736b457cee14ad8a3a1270c5cbba05fc149888923f74
7
+ data.tar.gz: 1d7cd9529a89f91b0ac492bc367da09e85db67a83322d4347afcf53c28885bce7c8dcd6a13bd275c3426649f0d6023c0755c1f147e3ed54fb0704c5fc0475d30
@@ -1,5 +1,9 @@
1
1
  CHANGELOG
2
2
  ---------
3
+ - **2016-12-28**: 0.1.0
4
+ - Add custom retry time support
5
+ - Add custom status code support
6
+ - Add Codacy analysis
3
7
  - **2016-11-09**: 0.0.2
4
8
  - Update license in `.gemspec`
5
9
  - **2016-11-09**: 0.0.1
data/README.md CHANGED
@@ -5,6 +5,7 @@ FaradayMiddleware::Request::Retry
5
5
  [![Build Status][build-status-svg]][build-status-link]
6
6
  [![Coverage Status][coverage-status-svg]][coverage-status-link]
7
7
  [![Dependency Status][dependency-status-svg]][dependency-status-link]
8
+ [![Codacy Badge][codacy-svg]][codacy-link]
8
9
  [![Code Climate][codeclimate-status-svg]][codeclimate-status-link]
9
10
  [![Scrutinizer Code Quality][scrutinizer-status-svg]][scrutinizer-status-link]
10
11
  [![Downloads][downloads-svg]][downloads-link]
@@ -45,13 +46,21 @@ require 'faraday_middleware-request-retry'
45
46
  require 'logger'
46
47
 
47
48
  conn = Faraday.new(url: "http://example.com") do |builder|
48
- builder.use FaradayMiddleware::Refresh::Retry, logger: Logger.new(STDOUT)
49
+ builder.use FaradayMiddleware::Refresh::Retry, logger: Logger.new(STDOUT), retry_after: 15
49
50
  builder.adapter Faraday.default_adapter
50
51
  end
51
52
 
52
53
  conn.get "/foo" # sends token
53
54
  ```
54
55
 
56
+ Options include:
57
+
58
+ | Option | Values | Optional | Default |
59
+ |--------|--------|----------|---------|
60
+ | `:logger` | `Logger` object | optional |
61
+ | `:retry_after` | Default retry seconds | optional | `10` seconds |
62
+ | `:error_codes` | Array of error codes, e.g. `[429, 503, 504]` | optional | `[429, 503]` |
63
+
55
64
  ## Change Log
56
65
 
57
66
  See [CHANGELOG.md](CHANGELOG.md)
@@ -70,7 +79,7 @@ Please report these on [Github](https://github.com/grokify/faraday_middleware-re
70
79
 
71
80
  ## Credits
72
81
 
73
- This code is extracted from the Zendesk Ruby SDK's `ZendeskAPI::Middleware::Request::Retry` class.
82
+ This library is originally based on code extracted from the Zendesk Ruby SDK's `ZendeskAPI::Middleware::Request::Retry` class, in [v1.14.0](https://github.com/zendesk/zendesk_api_client_rb/releases/tag/v1.14.0) (commit [2c2b52e](https://github.com/zendesk/zendesk_api_client_rb/blob/2c2b52ea390b3641d4af383759217fda75bc74ec/LICENSE)) available under the Apache 2.0 license.
74
83
 
75
84
  ## Copyright and license
76
85
 
@@ -94,6 +103,8 @@ Unless required by applicable law or agreed to in writing, software distributed
94
103
  [coverage-status-link]: https://coveralls.io/r/grokify/faraday_middleware-request-retry?branch=master
95
104
  [dependency-status-svg]: https://gemnasium.com/grokify/faraday_middleware-request-retry.svg
96
105
  [dependency-status-link]: https://gemnasium.com/grokify/faraday_middleware-request-retry
106
+ [codacy-svg]: https://api.codacy.com/project/badge/Grade/d2c515165a60402eb10410cf4bd51f50
107
+ [codacy-link]: https://www.codacy.com/app/grokify/faraday_middleware-request-retry
97
108
  [codeclimate-status-svg]: https://codeclimate.com/github/grokify/faraday_middleware-request-retry/badges/gpa.svg
98
109
  [codeclimate-status-link]: https://codeclimate.com/github/grokify/faraday_middleware-request-retry
99
110
  [scrutinizer-status-svg]: https://scrutinizer-ci.com/g/grokify/faraday_middleware-request-retry/badges/quality-score.png?b=master
@@ -1 +1 @@
1
- require 'faraday_middleware-request-retry/retry'
1
+ require 'faraday_middleware-request-retry/retry'
@@ -7,17 +7,22 @@ module FaradayMiddleware
7
7
  DEFAULT_RETRY_AFTER = 10
8
8
  ERROR_CODES = [429, 503]
9
9
 
10
+ attr_reader :error_codes
11
+ attr_reader :retry_after
12
+
10
13
  def initialize(app, options = {})
11
- super(app)
14
+ super app
12
15
  @logger = options[:logger]
16
+ @error_codes = options[:error_codes] || ERROR_CODES
17
+ @retry_after = options[:retry_after] || DEFAULT_RETRY_AFTER
13
18
  end
14
19
 
15
20
  def call(env)
16
21
  original_env = env.dup
17
- response = @app.call(env)
22
+ response = @app.call env
18
23
 
19
- if ERROR_CODES.include?(response.env[:status])
20
- seconds_left = (response.env[:response_headers][:retry_after] || DEFAULT_RETRY_AFTER).to_i
24
+ if @error_codes.include? response.env[:status]
25
+ seconds_left = (response.env[:response_headers][:retry_after] || @retry_after).to_i
21
26
  @logger.warn "You have been rate limited. Retrying in #{seconds_left} seconds..." if @logger
22
27
 
23
28
  seconds_left.times do |i|
@@ -26,9 +31,8 @@ module FaradayMiddleware
26
31
  @logger.warn "#{time_left}..." if time_left > 0 && time_left % 5 == 0 && @logger
27
32
  end
28
33
 
29
- @logger.warn "" if @logger
30
-
31
- @app.call(original_env)
34
+ @logger.warn 'Retrying...' if @logger
35
+ @app.call original_env
32
36
  else
33
37
  response
34
38
  end
@@ -1,17 +1,16 @@
1
1
  require 'coveralls'
2
2
  Coveralls.wear!
3
3
 
4
- require 'test/unit'
5
4
  require 'faraday'
6
5
  require 'faraday_middleware'
7
6
  require 'faraday_middleware-request-retry'
7
+ require 'test/unit'
8
8
 
9
9
  class RetryTest < Test::Unit::TestCase
10
- def testSetup
11
-
10
+ def test_setup
12
11
  @conn = Faraday.new 'http://example.com/api' do |builder|
13
12
  builder.use FaradayMiddleware::Request::Retry
14
13
  end
15
-
14
+ assert_equal 'FaradayMiddleware::Request::Retry', @conn.builder.app.class.name
16
15
  end
17
- end
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday_middleware-request-retry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Wang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-09 00:00:00.000000000 Z
11
+ date: 2016-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.9'
19
+ version: '0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '0.9'
22
+ version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.9'
29
+ version: '0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '0.9'
32
+ version: '0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: faraday_middleware
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -121,7 +121,7 @@ files:
121
121
  - test/test_setup.rb
122
122
  homepage: https://github.com/grokify/
123
123
  licenses:
124
- - Apache License Version 2.0
124
+ - Apache-2.0
125
125
  metadata: {}
126
126
  post_install_message:
127
127
  rdoc_options: []
@@ -139,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  version: '0'
140
140
  requirements: []
141
141
  rubyforge_project:
142
- rubygems_version: 2.6.7
142
+ rubygems_version: 2.5.2
143
143
  signing_key:
144
144
  specification_version: 4
145
145
  summary: Faraday request middleware with retry