faraday_middleware-request-retry 0.0.2 → 0.1.0

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: 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