faraday_middleware-circuit_breaker 0.2.0 → 0.3.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/CHANGELOG.md +4 -0
- data/faraday_middleware-circuit_breaker.gemspec +3 -3
- data/lib/faraday_middleware/circuit_breaker/middleware.rb +6 -1
- data/lib/faraday_middleware/circuit_breaker/option_set.rb +7 -6
- data/lib/faraday_middleware/circuit_breaker/version.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8deaaad1b7866b3bb93efe91ae63f492e446f382
|
4
|
+
data.tar.gz: 4c79b86afe36d6ae42733d83ff21beac8365284c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a1267f7b41141ff8f6c02dc96a5ae199d2ff5b2cc6b3e83e242d1eade766a0a24de721c3602525fd38867cf192df2ebb627fca73cd376d4d1b745ce31eb7387
|
7
|
+
data.tar.gz: 2361860fcffd409f10db8ac07265116bedd52c0bc2947645ae4f00c2e4b802936679cbced2faf4f74a7c0d6b1688cf5737625df2910384658a227c5fb94ab2d8
|
data/CHANGELOG.md
CHANGED
@@ -15,14 +15,14 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir = "
|
19
|
-
spec.executables = spec.files.grep(%r{^
|
18
|
+
spec.bindir = "bin"
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
22
|
spec.add_dependency 'faraday', '~> 0.9'
|
23
23
|
spec.add_dependency 'stoplight', '~> 2.1'
|
24
24
|
|
25
25
|
spec.add_development_dependency 'bundler', '~> 1.10'
|
26
|
-
spec.add_development_dependency 'rake', '~>
|
26
|
+
spec.add_development_dependency 'rake', '~> 11.2'
|
27
27
|
spec.add_development_dependency 'rspec'
|
28
28
|
end
|
@@ -12,6 +12,7 @@ module FaradayMiddleware
|
|
12
12
|
|
13
13
|
@option_set = OptionSet.new(options)
|
14
14
|
|
15
|
+
setup_data_store
|
15
16
|
setup_notifiers
|
16
17
|
end
|
17
18
|
|
@@ -29,6 +30,10 @@ module FaradayMiddleware
|
|
29
30
|
|
30
31
|
attr_reader :option_set
|
31
32
|
|
33
|
+
def setup_data_store
|
34
|
+
Stoplight::Light.default_data_store = option_set.data_store.call
|
35
|
+
end
|
36
|
+
|
32
37
|
def setup_notifiers
|
33
38
|
option_set.notifiers.each do |notifier, value|
|
34
39
|
case notifier.to_sym
|
@@ -36,7 +41,7 @@ module FaradayMiddleware
|
|
36
41
|
Stoplight::Light.default_notifiers += [Stoplight::Notifier::Logger.new(value)]
|
37
42
|
when :honeybadger
|
38
43
|
Stoplight::Light.default_notifiers += [Stoplight::Notifier::Honeybadger.new(value)]
|
39
|
-
when :raven
|
44
|
+
when :raven, :sentry
|
40
45
|
Stoplight::Light.default_notifiers += [Stoplight::Notifier::Raven.new(value)]
|
41
46
|
when :hip_chat
|
42
47
|
Stoplight::Light.default_notifiers += [Stoplight::Notifier::HipChat.new(value[:client], value[:room])]
|
@@ -6,15 +6,16 @@ module FaradayMiddleware
|
|
6
6
|
module CircuitBreaker
|
7
7
|
class OptionSet
|
8
8
|
|
9
|
-
VALID_OPTIONS = %w(timeout threshold fallback notifiers)
|
9
|
+
VALID_OPTIONS = %w(timeout threshold fallback notifiers data_store)
|
10
10
|
|
11
|
-
attr_accessor :timeout, :threshold, :fallback, :notifiers
|
11
|
+
attr_accessor :timeout, :threshold, :fallback, :notifiers, :data_store
|
12
12
|
|
13
13
|
def initialize(options = {})
|
14
|
-
@timeout
|
15
|
-
@threshold
|
16
|
-
@fallback
|
17
|
-
@notifiers
|
14
|
+
@timeout = options[:timeout] || 60.0
|
15
|
+
@threshold = options[:threshold] || 3
|
16
|
+
@fallback = options[:fallback] || proc { Faraday::Response.new(status: 503, response_headers: {}) }
|
17
|
+
@notifiers = options[:notifiers] || {}
|
18
|
+
@data_store = options[:data_store] || proc { Stoplight::Light.default_data_store }
|
18
19
|
end
|
19
20
|
|
20
21
|
def self.validate!(options)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday_middleware-circuit_breaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre-Louis Gottfrois
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '11.2'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '11.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,7 +83,9 @@ dependencies:
|
|
83
83
|
description: A Faraday Middleware to handle spotty web services.
|
84
84
|
email:
|
85
85
|
- pierre-louis@textmaster.com
|
86
|
-
executables:
|
86
|
+
executables:
|
87
|
+
- console
|
88
|
+
- setup
|
87
89
|
extensions: []
|
88
90
|
extra_rdoc_files: []
|
89
91
|
files:
|
@@ -122,9 +124,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
124
|
version: '0'
|
123
125
|
requirements: []
|
124
126
|
rubyforge_project:
|
125
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.6.13
|
126
128
|
signing_key:
|
127
129
|
specification_version: 4
|
128
130
|
summary: Middleware to apply circuit breaker pattern.
|
129
131
|
test_files: []
|
130
|
-
has_rdoc:
|