simple_circuit_breaker 0.2.1 → 0.2.2

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MGZjYzllMjEyYTA3YzliM2IxNjE3NGQ0MGQ2N2U4OGY2NWFhYjk5Yg==
4
+ ZDI0YTBhYjI4NTg5MDg3N2Q3N2EyNzIyOTcwNGVlZjVjNDA5NmZlYg==
5
5
  data.tar.gz: !binary |-
6
- ZDMzMWYzMDUxNDViYmVhMDg1MTQ4NWExMTFjNzk4NDQzNGY2MmM4MQ==
6
+ NDNhYmNkZTM4ZjI3OWQ0YmQ0OWU4YmJlNzM3ZTM1YjA5NWNjNTcwOQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NGM2NTI3YmJhNDFlY2U2ZDQ4ZWIyYWE4ZmJhOTlhMDQwMmZiOGUyODU4ZGU2
10
- MTgyMWRhYTNjNWIzNjA3OTE4ZDQ2MTZiNjM5NTdlZDJlMTQ3YjE3YTJhMDcz
11
- YmEzOWY5MzkyMDEzN2I1ZGIyMjAwNmFmOTA4MTBlMzE3NGYxMDQ=
9
+ OTQzMTViNjQ4NTg1YmE0OGE5OTBhNGUwYTYwNzMyNWIxN2FiNGY3Y2MzYmU4
10
+ N2Y5NjFlYTgyOTRkYmIwMjEwMTk4YTk0MThiYjc4ZjBmNWYxODlmZmNiMDM3
11
+ OTQ3YjUyMjUyZTUxZjAxYzIxY2UyYmZlYzVjNjM3NGJiMDU2MTk=
12
12
  data.tar.gz: !binary |-
13
- YmQyYTRjZWU5MjVjNWEzYThjNGJjYzU1ODY5ZTJiZGZjZDZjNmVmMDlhOGJi
14
- NmFkYjk1M2Y2ZmM0NTg1OWFmODY4ZTY2ZGJhN2NlMmUyNzM1OTljNzk1Nzkw
15
- ZGE1NzgxOGM2YWQ4MjA2MDZhZTJmMTUxNDMzMDExOTI4MTZiYmE=
13
+ NWY5ZjBjMDM4ZDA5MTk4YTY4YWFhMWM4MDVjODkzMDBmYWM0YzE5YThkMTFh
14
+ MWM1ZjEwZjYyZjUxNWI5ZmJjZTcwYjhmYTM3ZDliOTAyOTlkYjgxYTdjY2Yw
15
+ ZmUwN2JkYjMwNzlkMDg3ZjM2YjBhNDNkY2U4ZjgwZTM5ODQ3NjM=
@@ -1,5 +1,5 @@
1
1
  class SimpleCircuitBreaker
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
 
4
4
  class CircuitOpenError < StandardError
5
5
  end
@@ -23,14 +23,14 @@ class SimpleCircuitBreaker
23
23
  protected
24
24
 
25
25
  def execute(exceptions, &block)
26
- begin
27
- yield.tap { reset! }
28
- rescue Exception => exception
29
- if exceptions.empty? || exceptions.include?(exception.class)
30
- fail!
31
- end
32
- raise
26
+ result = yield
27
+ reset!
28
+ result
29
+ rescue Exception => exception
30
+ if exceptions.empty? || exceptions.include?(exception.class)
31
+ fail!
33
32
  end
33
+ raise
34
34
  end
35
35
 
36
36
  def fail!
@@ -9,6 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.authors = ['Julius Volz', 'Tobias Schmidt']
10
10
  s.email = 'julius@soundcloud.com ts@soundcloud.com'
11
11
  s.homepage = 'http://github.com/soundcloud/simple_circuit_breaker'
12
+ s.licenses = ['MIT']
12
13
 
13
14
  s.files = `git ls-files`.split("\n")
14
15
  s.test_files = `git ls-files -- test/*`.split("\n")
@@ -32,6 +32,15 @@ describe SimpleCircuitBreaker do
32
32
  foo.must_equal 42
33
33
  end
34
34
 
35
+ it 'works with BasicObject return values' do
36
+ object = BasicObject.new
37
+ foo = @breaker.handle do
38
+ object
39
+ end
40
+
41
+ assert foo.equal?(object)
42
+ end
43
+
35
44
  it 'opens after 3 consecutive failures with no explicit handled exceptions' do
36
45
  3.times do
37
46
  begin
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_circuit_breaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julius Volz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-19 00:00:00.000000000 Z
12
+ date: 2015-09-21 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Simple Ruby implementation of the Circuit Breaker design pattern
15
15
  email: julius@soundcloud.com ts@soundcloud.com
@@ -25,7 +25,8 @@ files:
25
25
  - simple_circuit_breaker.gemspec
26
26
  - test/simple_circuit_breaker_test.rb
27
27
  homepage: http://github.com/soundcloud/simple_circuit_breaker
28
- licenses: []
28
+ licenses:
29
+ - MIT
29
30
  metadata: {}
30
31
  post_install_message:
31
32
  rdoc_options: []