retriable 1.4.0 → 1.4.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 +7 -0
- data/.travis.yml +1 -5
- data/CHANGELOG.md +3 -0
- data/lib/retriable.rb +13 -1
- data/lib/retriable/core_ext/kernel.rb +1 -1
- data/lib/retriable/version.rb +1 -1
- data/retriable.gemspec +4 -4
- data/test/retriable_test.rb +27 -9
- metadata +13 -26
- data/lib/retriable/dsl.rb +0 -17
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 03ab323e10afdc5d56ba1cb8dafe474b384ebab4
|
4
|
+
data.tar.gz: b8018f10039fd5add022bd21bc89e3df94c742bf
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eb6d13ae6aef5945c071c28d122b2018c6faadc8a4567542a3b687e12905cd335c7542627b3be8d3d4b386189d31f9c0af0d3d214dc8d87047e0708d4606327b
|
7
|
+
data.tar.gz: 3446c5920eb959cb60bd7a5cf4de8ace6df8480fbe80b82b526676557f5e0316780544b8986fb022a44a6d679a7a515931c236e67805d335fbf47938bf831735
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/lib/retriable.rb
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
require 'retriable/retry'
|
2
|
-
require 'retriable/dsl'
|
3
2
|
|
4
3
|
module Retriable
|
4
|
+
extend self
|
5
|
+
|
6
|
+
def retriable(opts = {}, &block)
|
7
|
+
raise LocalJumpError unless block_given?
|
8
|
+
|
9
|
+
Retry.new do |r|
|
10
|
+
r.tries = opts[:tries] if opts[:tries]
|
11
|
+
r.on = opts[:on] if opts[:on]
|
12
|
+
r.interval = opts[:interval] if opts[:interval]
|
13
|
+
r.timeout = opts[:timeout] if opts[:timeout]
|
14
|
+
r.on_retry = opts[:on_retry] if opts[:on_retry]
|
15
|
+
end.perform(&block)
|
16
|
+
end
|
5
17
|
end
|
data/lib/retriable/version.rb
CHANGED
data/retriable.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require "retriable/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
@@ -22,5 +22,5 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
|
24
24
|
s.add_development_dependency 'rake'
|
25
|
-
s.add_development_dependency 'minitest'
|
25
|
+
s.add_development_dependency 'minitest', '>= 5.0'
|
26
26
|
end
|
data/test/retriable_test.rb
CHANGED
@@ -1,34 +1,33 @@
|
|
1
1
|
require 'retriable'
|
2
|
-
require 'retriable/core_ext/kernel'
|
3
2
|
require 'minitest/autorun'
|
4
3
|
|
5
4
|
class RetriableTest < Minitest::Test
|
6
5
|
def test_raise_no_block
|
7
6
|
assert_raises LocalJumpError do
|
8
|
-
retriable :on => StandardError
|
7
|
+
Retriable.retriable :on => StandardError
|
9
8
|
end
|
10
9
|
end
|
11
10
|
|
12
11
|
def test_without_arguments
|
13
12
|
i = 0
|
14
13
|
|
15
|
-
retriable do
|
14
|
+
Retriable.retriable do
|
16
15
|
i += 1
|
17
16
|
raise StandardError.new
|
18
17
|
end
|
19
|
-
|
18
|
+
rescue StandardError
|
20
19
|
assert_equal 3, i
|
21
20
|
end
|
22
21
|
|
23
22
|
def test_with_one_exception_and_two_tries
|
24
23
|
i = 0
|
25
24
|
|
26
|
-
retriable :on => EOFError, :tries => 2 do
|
25
|
+
Retriable.retriable :on => EOFError, :tries => 2 do
|
27
26
|
i += 1
|
28
27
|
raise EOFError.new
|
29
28
|
end
|
30
29
|
|
31
|
-
|
30
|
+
rescue EOFError
|
32
31
|
assert_equal i, 2
|
33
32
|
end
|
34
33
|
|
@@ -40,7 +39,7 @@ class RetriableTest < Minitest::Test
|
|
40
39
|
assert_equal i, tries
|
41
40
|
end
|
42
41
|
|
43
|
-
retriable :on => [EOFError, ArgumentError], :on_retry => on_retry, :tries => 5, :sleep => 0.2 do |h|
|
42
|
+
Retriable.retriable :on => [EOFError, ArgumentError], :on_retry => on_retry, :tries => 5, :sleep => 0.2 do |h|
|
44
43
|
i += 1
|
45
44
|
raise ArgumentError.new
|
46
45
|
end
|
@@ -57,10 +56,29 @@ class RetriableTest < Minitest::Test
|
|
57
56
|
attempts
|
58
57
|
end
|
59
58
|
|
60
|
-
retriable :on => EOFError, :interval => sleeper do |h|
|
59
|
+
Retriable.retriable :on => EOFError, :interval => sleeper do |h|
|
61
60
|
raise EOFError.new
|
62
61
|
end
|
63
|
-
|
62
|
+
rescue
|
64
63
|
assert_equal was_called, true
|
65
64
|
end
|
65
|
+
|
66
|
+
def test_kernel_ext
|
67
|
+
assert_raises NoMethodError do
|
68
|
+
retriable do
|
69
|
+
puts 'should raise NoMethodError'
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
require 'retriable/core_ext/kernel'
|
74
|
+
i = 0
|
75
|
+
|
76
|
+
retriable do
|
77
|
+
i += 1
|
78
|
+
raise StandardError.new
|
79
|
+
end
|
80
|
+
|
81
|
+
rescue StandardError
|
82
|
+
assert_equal 3, i
|
83
|
+
end
|
66
84
|
end
|
metadata
CHANGED
@@ -1,48 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: retriable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
5
|
-
prerelease:
|
4
|
+
version: 1.4.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jack Chu
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-06 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: minitest
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
33
|
+
version: '5.0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
40
|
+
version: '5.0'
|
46
41
|
description: Retriable is an simple DSL to retry a code block if an exception should
|
47
42
|
be raised. This is especially useful when interacting external api/services or file
|
48
43
|
system calls.
|
@@ -61,7 +56,6 @@ files:
|
|
61
56
|
- Rakefile
|
62
57
|
- lib/retriable.rb
|
63
58
|
- lib/retriable/core_ext/kernel.rb
|
64
|
-
- lib/retriable/dsl.rb
|
65
59
|
- lib/retriable/retry.rb
|
66
60
|
- lib/retriable/version.rb
|
67
61
|
- retriable.gemspec
|
@@ -69,33 +63,26 @@ files:
|
|
69
63
|
homepage: http://github.com/kamui/retriable
|
70
64
|
licenses:
|
71
65
|
- MIT
|
66
|
+
metadata: {}
|
72
67
|
post_install_message:
|
73
68
|
rdoc_options: []
|
74
69
|
require_paths:
|
75
70
|
- lib
|
76
71
|
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
72
|
requirements:
|
79
|
-
- -
|
73
|
+
- - '>='
|
80
74
|
- !ruby/object:Gem::Version
|
81
75
|
version: '0'
|
82
|
-
segments:
|
83
|
-
- 0
|
84
|
-
hash: -2391393966112040014
|
85
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
-
none: false
|
87
77
|
requirements:
|
88
|
-
- -
|
78
|
+
- - '>='
|
89
79
|
- !ruby/object:Gem::Version
|
90
80
|
version: '0'
|
91
|
-
segments:
|
92
|
-
- 0
|
93
|
-
hash: -2391393966112040014
|
94
81
|
requirements: []
|
95
82
|
rubyforge_project: retriable
|
96
|
-
rubygems_version:
|
83
|
+
rubygems_version: 2.0.7
|
97
84
|
signing_key:
|
98
|
-
specification_version:
|
85
|
+
specification_version: 4
|
99
86
|
summary: Retriable is an simple DSL to retry a code block if an exception should be
|
100
87
|
raised.
|
101
88
|
test_files:
|
data/lib/retriable/dsl.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'retriable/retry'
|
2
|
-
|
3
|
-
module Retriable
|
4
|
-
module DSL
|
5
|
-
def retriable(opts = {}, &block)
|
6
|
-
raise LocalJumpError unless block_given?
|
7
|
-
|
8
|
-
Retry.new do |r|
|
9
|
-
r.tries = opts[:tries] if opts[:tries]
|
10
|
-
r.on = opts[:on] if opts[:on]
|
11
|
-
r.interval = opts[:interval] if opts[:interval]
|
12
|
-
r.timeout = opts[:timeout] if opts[:timeout]
|
13
|
-
r.on_retry = opts[:on_retry] if opts[:on_retry]
|
14
|
-
end.perform(&block)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|