greenjaguar 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: 5dd4f387ad0f79d53b1622d411199d55cb640d2c
4
- data.tar.gz: 46b57205cb9a7bbac6aa9df87f24d1d92f3243ba
3
+ metadata.gz: e4fc61d4fffe390ea3af3fabff9edd69042b4586
4
+ data.tar.gz: 64b48478ccdfa7af0887c669d969aa11865b135c
5
5
  SHA512:
6
- metadata.gz: e425dc9d9967cb79eef0d516e2fccb57c23613d259e0067b0d97c62e645029da63e23fc58623d7ce4f182dfeaf6e9ed17bc7927bc6584e3ca5331972dff12812
7
- data.tar.gz: ce72b91c424aea7cef0c52ba55230a05e7ed27e058022d4057f79da81e6db5ba2668e6c23fe035e9574798f7ab778d09b28515454f20096ea0a503f29aa9db7e
6
+ metadata.gz: e5fc9b39e21fbe19bc83d2bf767005614298df222cd990c8853bbcc987b37fa3b7bcd13ae1ca50c8fc23767a1e328c3700bfd85730709b69f2235fde25caaf92
7
+ data.tar.gz: 1d30022a6c2d4506cdf8c200aec18af14b3dfd598c84886e85804a6d776db767b00b8d38750a5b265cece72269af86d40d58ee005f09bc1f684c59eb128ca112
@@ -1,3 +1,3 @@
1
1
  module Greenjaguar
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/greenjaguar.rb CHANGED
@@ -8,18 +8,11 @@ require 'greenjaguar/policy_builder'
8
8
  require 'greenjaguar/retrier'
9
9
 
10
10
  module Greenjaguar
11
-
12
- def self.included(klass)
13
- klass.extend(ClassMethods)
11
+ def build_policy(&block)
12
+ PolicyBuilder.new(&block)
14
13
  end
15
14
 
16
- module ClassMethods
17
- def build_policy(&block)
18
- PolicyBuilder.new(&block)
19
- end
20
-
21
- def robust_retry(policy, &block)
22
- Retrier.new(policy, &block)
23
- end
15
+ def robust_retry(policy, &block)
16
+ Retrier.new(policy, &block)
24
17
  end
25
18
  end
@@ -1,12 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Specs
4
- include Greenjaguar
5
-
6
4
  describe Greenjaguar do
7
- let(:class_under_test) { Class.new { include Greenjaguar } }
5
+ class ObjectUnderTest
6
+ include Greenjaguar
7
+ end
8
8
 
9
9
  before do
10
+ @object_under_test = ObjectUnderTest.new
10
11
  @stub = stub_request(:get, "http://www.example.com").to_raise("some error")
11
12
  end
12
13
 
@@ -15,12 +16,12 @@ module Specs
15
16
  end
16
17
 
17
18
  it '#run should call the passed code block 4 times' do
18
- policy = class_under_test.build_policy do
19
+ policy = @object_under_test.build_policy do
19
20
  times 3
20
21
  end
21
22
 
22
23
  expect do
23
- class_under_test.robust_retry(policy) do
24
+ @object_under_test.robust_retry(policy) do
24
25
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
25
26
  end
26
27
  end.to raise_error
@@ -30,37 +31,37 @@ module Specs
30
31
  it '#run should call the passed code block only 1 time if successful response is received' do
31
32
  @stub = stub_request(:get, "http://www.example.com")
32
33
 
33
- policy = class_under_test.build_policy do
34
+ policy = @object_under_test.build_policy do
34
35
  times 3
35
36
  end
36
37
 
37
- class_under_test.robust_retry(policy) do
38
+ @object_under_test.robust_retry(policy) do
38
39
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
39
40
  end
40
41
  assert_requested :get, "http://www.example.com", :times => 1
41
42
  end
42
43
 
43
44
  it '#run should raise the error once retrying is completed' do
44
- policy = class_under_test.build_policy do
45
+ policy = @object_under_test.build_policy do
45
46
  times 3
46
47
  end
47
48
 
48
49
  expect do
49
- class_under_test.robust_retry(policy) do
50
+ @object_under_test.robust_retry(policy) do
50
51
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
51
52
  end
52
53
  end.to raise_error
53
54
  end
54
55
 
55
56
  it '#run should call the passed code block 4 times according to fibonacci sequence' do
56
- policy = class_under_test.build_policy do
57
+ policy = @object_under_test.build_policy do
57
58
  times 3
58
59
  with_strategy :fibonacci
59
60
  measure_time_in :ms
60
61
  end
61
62
 
62
63
  expect do
63
- class_under_test.robust_retry(policy) do
64
+ @object_under_test.robust_retry(policy) do
64
65
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
65
66
  end
66
67
  end.to raise_error
@@ -68,14 +69,14 @@ module Specs
68
69
  end
69
70
 
70
71
  it '#run should call the passed code block 4 times according to fixed interval strategy' do
71
- policy = class_under_test.build_policy do
72
+ policy = @object_under_test.build_policy do
72
73
  times 3
73
74
  with_strategy :fixed_interval, 2
74
75
  measure_time_in :ms
75
76
  end
76
77
 
77
78
  expect do
78
- class_under_test.robust_retry(policy) do
79
+ @object_under_test.robust_retry(policy) do
79
80
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
80
81
  end
81
82
  end.to raise_error
@@ -83,14 +84,14 @@ module Specs
83
84
  end
84
85
 
85
86
  it '#run should call the passed code block 4 times according to exponential backoff sequence' do
86
- policy = class_under_test.build_policy do
87
+ policy = @object_under_test.build_policy do
87
88
  times 5
88
89
  with_strategy :exponential_backoff
89
90
  measure_time_in :ms
90
91
  end
91
92
 
92
93
  expect do
93
- class_under_test.robust_retry(policy) do
94
+ @object_under_test.robust_retry(policy) do
94
95
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
95
96
  end
96
97
  end.to raise_error
@@ -99,14 +100,14 @@ module Specs
99
100
 
100
101
  it '#run does not call the passed code block if exception is not part of allowed exception(s)' do
101
102
  @stub = stub_request(:get, "www.example.com").to_raise(RegexpError)
102
- policy = class_under_test.build_policy do
103
+ policy = @object_under_test.build_policy do
103
104
  times 5
104
105
  with_strategy :fibonacci
105
106
  only_on_exceptions [ZeroDivisionError]
106
107
  end
107
108
 
108
109
  expect do
109
- class_under_test.robust_retry(policy) do
110
+ @object_under_test.robust_retry(policy) do
110
111
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
111
112
  end
112
113
  end.to raise_error
@@ -116,7 +117,7 @@ module Specs
116
117
  it '#run should call the passed code block if exception is part of allowed exception(s)' do
117
118
  @stub = stub_request(:get, "http://www.example.com").to_raise(ZeroDivisionError)
118
119
 
119
- policy = class_under_test.build_policy do
120
+ policy = @object_under_test.build_policy do
120
121
  times 10
121
122
  with_strategy :fibonacci
122
123
  measure_time_in :ms
@@ -124,7 +125,7 @@ module Specs
124
125
  end
125
126
 
126
127
  expect do
127
- class_under_test.robust_retry(policy) do
128
+ @object_under_test.robust_retry(policy) do
128
129
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
129
130
  end
130
131
  end.to raise_error
@@ -132,12 +133,12 @@ module Specs
132
133
  end
133
134
 
134
135
  it '#run should not raise the error if set to fail silently' do
135
- policy = class_under_test.build_policy do
136
+ policy = @object_under_test.build_policy do
136
137
  times 3
137
138
  fail_silently
138
139
  end
139
140
 
140
- class_under_test.robust_retry(policy) do
141
+ @object_under_test.robust_retry(policy) do
141
142
  Net::HTTP.get_response(URI.parse("http://www.example.com"))
142
143
  end
143
144
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greenjaguar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aniruddha Deshpande