retry_it 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 3133fcf53875f5554c5fbdbb62f7e0cd413efd2db0ad11e30afa99e06be263b3
4
- data.tar.gz: 4bb4e6ce29a77b4f3b3bd816bf0766b58540641894b4298ee86b2534f3867771
3
+ metadata.gz: 88ec936f85cef03d85a215785f910e9af3e4db879647f8b4e6eeba55ea7fd1cf
4
+ data.tar.gz: e70df0684d7088b952b6f316915cd39a5a45312eeffe7ec40bd29c203737e3e3
5
5
  SHA512:
6
- metadata.gz: a7f5dd9a4ffa9728d2ff13b6f2f898ebe9762c9a2f9801c140025b3a8f52363a3e966298bded772382cd1756941908917362ec1aa2f54ab5901299456a90016d
7
- data.tar.gz: 98571c88ef2f8758d45f71965d1c2607eeeb00e4f0f8775509207d97129edbc74608042d7c65cea4f642530df6adf9544040d10e86bd271c82228280f3521a27
6
+ metadata.gz: c9d790a6c0607579a563f7b0a980e37eb67115d808b5d7085b6e5be3c862487b81128fe4a83ba512b61c7fafdf858cbeaad865fbc172d123b2db214d3e6f0137
7
+ data.tar.gz: 6573f6019906d7095e6ddf8a823d6be5162d05ebc1f06b79516bf2996e680f59b661c441e004afc9070fd5cd069e6cff8e56b5263d68bacf6ddd9d173829bb60
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- retryable (0.1.0)
4
+ retry_it (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -16,7 +16,7 @@ DEPENDENCIES
16
16
  bundler (~> 1.16)
17
17
  minitest (~> 5.0)
18
18
  rake (~> 10.0)
19
- retryable!
19
+ retry_it!
20
20
 
21
21
  BUNDLED WITH
22
22
  1.16.5
data/README.md CHANGED
@@ -57,6 +57,8 @@ the last error it received.
57
57
  RetryIt::DEFAULT_TIMEOUT_S
58
58
  * `logger`: A Logger object. If provided, when a retry occurs, an info-level
59
59
  message will be logged.
60
+ * `on_error`: A Proc that is called whenever a retryable error occurs. The Proc
61
+ is passed the raised error object.
60
62
  * `should_retry_proc`: A Proc that can be used to more finely control when a
61
63
  retry occurs. The Proc is given one parameter: the
62
64
  Exception object. The Proc must return a boolean value.
@@ -82,6 +84,11 @@ logger = Logger.new STDOUT
82
84
  retry_it(max_runs: 100, timeout: 60, errors: [Error], logger: logger) do
83
85
  some_api_request
84
86
  end
87
+
88
+ # Log a custom warning whenever a retry happens
89
+ retry_it(errors: [Error], on_error: Proc.new {|e| Rollbar.warning(e)}) do
90
+ some_api_request
91
+ end
85
92
  ```
86
93
 
87
94
  Keep in mind that you can pass methods as parameters using `method`:
@@ -7,6 +7,7 @@ module RetryIt
7
7
 
8
8
  def retry_it(max_runs: MAX_RUNS,
9
9
  errors: DEFAULT_EXCEPTIONS,
10
+ on_error: nil,
10
11
  timeout: DEFAULT_TIMEOUT_S,
11
12
  should_retry_proc: nil,
12
13
  logger: nil)
@@ -19,6 +20,9 @@ module RetryIt
19
20
  if logger
20
21
  logger.info "Error (#{e.class}), retrying ##{retries} of #{max_runs}. Sleeping for #{timeout}"
21
22
  end
23
+ if on_error && on_error.is_a?(Proc)
24
+ on_error.call e
25
+ end
22
26
  if timeout > 0
23
27
  sleep timeout
24
28
  end
@@ -1,3 +1,3 @@
1
1
  module RetryIt
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: retry_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - rgould
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-26 00:00:00.000000000 Z
11
+ date: 2018-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler