retry_it 0.1.0 → 0.1.1

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