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 +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +7 -0
- data/lib/retry_it.rb +4 -0
- data/lib/retry_it/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88ec936f85cef03d85a215785f910e9af3e4db879647f8b4e6eeba55ea7fd1cf
|
4
|
+
data.tar.gz: e70df0684d7088b952b6f316915cd39a5a45312eeffe7ec40bd29c203737e3e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9d790a6c0607579a563f7b0a980e37eb67115d808b5d7085b6e5be3c862487b81128fe4a83ba512b61c7fafdf858cbeaad865fbc172d123b2db214d3e6f0137
|
7
|
+
data.tar.gz: 6573f6019906d7095e6ddf8a823d6be5162d05ebc1f06b79516bf2996e680f59b661c441e004afc9070fd5cd069e6cff8e56b5263d68bacf6ddd9d173829bb60
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
|
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
|
-
|
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`:
|
data/lib/retry_it.rb
CHANGED
@@ -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
|
data/lib/retry_it/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2018-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|