perfect_retry 0.4.0 → 0.5.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 +4 -4
- data/NEWS.md +4 -0
- data/README.md +9 -0
- data/lib/perfect_retry.rb +11 -1
- data/lib/perfect_retry/config.rb +1 -1
- data/lib/perfect_retry/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8740ad7912179f8d22f7887f9f5e0999be1fbda8
|
4
|
+
data.tar.gz: 85eea90f46f97ca8fbdbf27118e9d75c4f0c067a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e88c3b13ca2c1a075da4d67a8de3409731903ee585b9247da0391525093f615e5744037f2e11209d1a67c55e144caf1da385345b9fe0fb75281c03aa374aaff
|
7
|
+
data.tar.gz: 5024c04e1744a705f12aab36cfd121ac0dbd97f5d35197faa78f6dbcc103b742e1f66652a8ed025179a31414a14c37d63efd6b60dc3634ecf8e5892cff99b58a
|
data/NEWS.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# 0.5.0 2016-04-14
|
2
|
+
|
3
|
+
- [enhancement] Add `prefer_original_backtrace` and `raise_original_error` options. [#6](https://github.com/uu59/perfect_retry/pull/6)
|
4
|
+
|
1
5
|
# 0.4.0 2016-01-19
|
2
6
|
|
3
7
|
- [enhancement] Add `PerfectRetry.disable!` and `PerfectRetry.enable!` for testing. [#5](https://github.com/uu59/perfect_retry/pull/5)
|
data/README.md
CHANGED
@@ -49,6 +49,15 @@ PerfectRetry.register(:timeout_handling) do |config|
|
|
49
49
|
# Ensure block. Call this block after with_retry block finished with and without any errors.
|
50
50
|
# default: proc {}
|
51
51
|
config.ensure = proc { puts "finished" }
|
52
|
+
|
53
|
+
# (v0.5) Raise original error when too many retried (if true). Otherwise PerfectRetry::TooManyRetry raised (if false).
|
54
|
+
# default: false
|
55
|
+
config.raise_original_error = true
|
56
|
+
|
57
|
+
# (v0.5) Raised exception has original backtrace (if true). Otherwise PerfectRetry internally backtrace (if false).
|
58
|
+
# If raise_original_error = true, this option do nothing.
|
59
|
+
# default: false
|
60
|
+
config.prefer_original_backtrace = false
|
52
61
|
end
|
53
62
|
|
54
63
|
# in main.rb
|
data/lib/perfect_retry.rb
CHANGED
@@ -14,6 +14,8 @@ class PerfectRetry
|
|
14
14
|
log_level: :info, # CHANGE(1.0): to be `nil`
|
15
15
|
sleep: lambda{|n| n ** 2}, # CHANGE(1.0): to be exponential backoff algorithm
|
16
16
|
ensure: lambda{},
|
17
|
+
raise_original_error: false, # false for TooManyRetry, true for original error
|
18
|
+
prefer_original_backtrace: false, # CHANGE(1.0): to be `true`
|
17
19
|
}.freeze
|
18
20
|
|
19
21
|
def self.with_retry(config_key = nil, &block)
|
@@ -82,7 +84,15 @@ class PerfectRetry
|
|
82
84
|
retry
|
83
85
|
end
|
84
86
|
|
85
|
-
|
87
|
+
if config.raise_original_error
|
88
|
+
raise e
|
89
|
+
else
|
90
|
+
error = TooManyRetry.new("too many retry (#{config.limit} times)")
|
91
|
+
if config.prefer_original_backtrace
|
92
|
+
error.set_backtrace(e.backtrace)
|
93
|
+
end
|
94
|
+
raise error
|
95
|
+
end
|
86
96
|
ensure
|
87
97
|
config.ensure.call
|
88
98
|
end
|
data/lib/perfect_retry/config.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require "logger"
|
2
2
|
|
3
3
|
class PerfectRetry
|
4
|
-
class Config < Struct.new(:limit, :rescues, :dont_rescues, :logger, :sleep, :ensure, :log_level)
|
4
|
+
class Config < Struct.new(:limit, :rescues, :dont_rescues, :logger, :sleep, :ensure, :log_level, :raise_original_error, :prefer_original_backtrace)
|
5
5
|
def self.create_from_hash(hash)
|
6
6
|
config = new
|
7
7
|
hash.each do |k, v|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perfect_retry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- uu59
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.
|
110
|
+
rubygems_version: 2.5.1
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: Retry handling kit
|