stoplight 2.2.1 → 3.0.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/README.md +13 -15
- data/lib/stoplight/color.rb +4 -4
- data/lib/stoplight/data_store/base.rb +1 -1
- data/lib/stoplight/data_store/memory.rb +1 -1
- data/lib/stoplight/data_store/redis.rb +23 -25
- data/lib/stoplight/data_store.rb +1 -1
- data/lib/stoplight/default.rb +3 -3
- data/lib/stoplight/error.rb +1 -1
- data/lib/stoplight/failure.rb +2 -2
- data/lib/stoplight/light/runnable.rb +7 -5
- data/lib/stoplight/light.rb +1 -1
- data/lib/stoplight/notifier/base.rb +1 -1
- data/lib/stoplight/notifier/bugsnag.rb +1 -1
- data/lib/stoplight/notifier/generic.rb +1 -1
- data/lib/stoplight/notifier/hip_chat.rb +1 -1
- data/lib/stoplight/notifier/honeybadger.rb +2 -2
- data/lib/stoplight/notifier/io.rb +1 -1
- data/lib/stoplight/notifier/logger.rb +1 -1
- data/lib/stoplight/notifier/pagerduty.rb +1 -1
- data/lib/stoplight/notifier/raven.rb +2 -2
- data/lib/stoplight/notifier/rollbar.rb +1 -1
- data/lib/stoplight/notifier/slack.rb +1 -1
- data/lib/stoplight/notifier.rb +1 -1
- data/lib/stoplight/state.rb +4 -4
- data/lib/stoplight/version.rb +2 -2
- data/lib/stoplight.rb +1 -1
- data/spec/spec_helper.rb +2 -3
- data/spec/stoplight/color_spec.rb +1 -1
- data/spec/stoplight/data_store/base_spec.rb +1 -1
- data/spec/stoplight/data_store/memory_spec.rb +1 -1
- data/spec/stoplight/data_store/redis_spec.rb +1 -1
- data/spec/stoplight/data_store_spec.rb +1 -1
- data/spec/stoplight/default_spec.rb +1 -1
- data/spec/stoplight/error_spec.rb +1 -1
- data/spec/stoplight/failure_spec.rb +1 -1
- data/spec/stoplight/light/runnable_spec.rb +7 -9
- data/spec/stoplight/light_spec.rb +5 -5
- data/spec/stoplight/notifier/base_spec.rb +1 -1
- data/spec/stoplight/notifier/bugsnag_spec.rb +1 -1
- data/spec/stoplight/notifier/generic_spec.rb +1 -1
- data/spec/stoplight/notifier/hip_chat_spec.rb +2 -3
- data/spec/stoplight/notifier/honeybadger_spec.rb +1 -1
- data/spec/stoplight/notifier/io_spec.rb +1 -1
- data/spec/stoplight/notifier/logger_spec.rb +1 -1
- data/spec/stoplight/notifier/pagerduty_spec.rb +1 -1
- data/spec/stoplight/notifier/raven_spec.rb +1 -1
- data/spec/stoplight/notifier/rollbar_spec.rb +1 -1
- data/spec/stoplight/notifier/slack_spec.rb +2 -3
- data/spec/stoplight/notifier_spec.rb +1 -1
- data/spec/stoplight/state_spec.rb +1 -1
- data/spec/stoplight/version_spec.rb +1 -1
- data/spec/stoplight_spec.rb +1 -1
- metadata +56 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f7c163955f261ad3eeca89a851a06a15f5734d78d045695297f29c143532a58
|
4
|
+
data.tar.gz: 9ff3e5911bf7e9f198c714ce1eb0f10c6ba09834e96a8c8c2d16dd3e184ed0ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e42cd0050cdbf9440e80d68d70091e6c22c574c64cf06a29aa9dca320f5f4915dca48e5582ebf18db757fde4ad295c20af05bc6a879695d726afa65ff50dea8
|
7
|
+
data.tar.gz: a5088d9ba81a5578cbc078d0671c601fd13738f07f6a67dd12936df3e8a7927053314538d50c1e65ce6913607e9764ff09d6c05f931c4be8984e2e6744399288
|
data/README.md
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
[![Build badge][]][build]
|
5
5
|
[![Coverage badge][]][coverage]
|
6
6
|
[![Climate badge][]][climate]
|
7
|
-
[![Dependencies badge][]][dependencies]
|
8
7
|
|
9
8
|
Stoplight is traffic control for code. It's an implementation of the circuit
|
10
9
|
breaker pattern in Ruby.
|
@@ -495,24 +494,22 @@ stoplight = Stoplight("test-#{rand}") { ... }
|
|
495
494
|
|
496
495
|
## Credits
|
497
496
|
|
498
|
-
Stoplight is brought to you by [@camdez][] and [@tfausak][] from [@OrgSync][].
|
499
|
-
A [complete list of contributors][] is available on GitHub. We were inspired by
|
500
|
-
Martin Fowler's [CircuitBreaker][] article.
|
497
|
+
Stoplight is brought to you by [@camdez][] and [@tfausak][] from [@OrgSync][]. [@bolshakov][] is the current
|
498
|
+
maintainer of the gem. A [complete list of contributors][] is available on GitHub. We were inspired by
|
499
|
+
Martin Fowler's [CircuitBreaker][] article.
|
501
500
|
|
502
501
|
Stoplight is licensed under [the MIT License][].
|
503
502
|
|
504
|
-
[Stoplight]: https://github.com/
|
503
|
+
[Stoplight]: https://github.com/bolshakov/stoplight
|
505
504
|
[Version badge]: https://img.shields.io/gem/v/stoplight.svg?label=version
|
506
505
|
[version]: https://rubygems.org/gems/stoplight
|
507
|
-
[Build badge]: https://
|
508
|
-
[build]: https://
|
509
|
-
[Coverage badge]: https://img.shields.io/coveralls/
|
510
|
-
[coverage]: https://coveralls.io/r/
|
511
|
-
[Climate badge]: https://
|
512
|
-
[climate]: https://codeclimate.com/github/
|
513
|
-
[
|
514
|
-
[dependencies]: https://gemnasium.com/orgsync/stoplight
|
515
|
-
[stoplight-admin]: https://github.com/orgsync/stoplight-admin
|
506
|
+
[Build badge]: https://github.com/bolshakov/stoplight/workflows/Specs/badge.svg
|
507
|
+
[build]: https://github.com/bolshakov/stoplight/actions?query=branch%3Amaster
|
508
|
+
[Coverage badge]: https://img.shields.io/coveralls/bolshakov/stoplight/master.svg?label=coverage
|
509
|
+
[coverage]: https://coveralls.io/r/bolshakov/stoplight
|
510
|
+
[Climate badge]: https://api.codeclimate.com/v1/badges/3451c2d281ffa345441a/maintainability
|
511
|
+
[climate]: https://codeclimate.com/github/bolshakov/stoplight
|
512
|
+
[stoplight-admin]: https://github.com/bolshakov/stoplight-admin
|
516
513
|
[Semantic Versioning]: http://semver.org/spec/v2.0.0.html
|
517
514
|
[the change log]: CHANGELOG.md
|
518
515
|
[the notifiers section]: #notifiers
|
@@ -529,6 +526,7 @@ Stoplight is licensed under [the MIT License][].
|
|
529
526
|
[@camdez]: https://github.com/camdez
|
530
527
|
[@tfausak]: https://github.com/tfausak
|
531
528
|
[@orgsync]: https://github.com/OrgSync
|
532
|
-
[
|
529
|
+
[@bolshakov]: https://github.com/bolshakov
|
530
|
+
[complete list of contributors]: https://github.com/bolshakov/stoplight/graphs/contributors
|
533
531
|
[CircuitBreaker]: http://martinfowler.com/bliki/CircuitBreaker.html
|
534
532
|
[the MIT license]: LICENSE.md
|
data/lib/stoplight/color.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Stoplight
|
4
4
|
module DataStore
|
5
5
|
# @see Base
|
6
6
|
class Redis < Base
|
7
|
-
KEY_PREFIX = 'stoplight'
|
8
|
-
KEY_SEPARATOR = ':'
|
7
|
+
KEY_PREFIX = 'stoplight'
|
8
|
+
KEY_SEPARATOR = ':'
|
9
9
|
|
10
10
|
# @param redis [::Redis]
|
11
11
|
def initialize(redis)
|
@@ -25,9 +25,9 @@ module Stoplight
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def get_all(light)
|
28
|
-
failures, state = @redis.multi do
|
29
|
-
query_failures(light)
|
30
|
-
|
28
|
+
failures, state = @redis.multi do |transaction|
|
29
|
+
query_failures(light, transaction: transaction)
|
30
|
+
transaction.hget(states_key, light.name)
|
31
31
|
end
|
32
32
|
|
33
33
|
[
|
@@ -41,18 +41,18 @@ module Stoplight
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def record_failure(light, failure)
|
44
|
-
size, = @redis.multi do
|
45
|
-
|
46
|
-
|
44
|
+
size, = @redis.multi do |transaction|
|
45
|
+
transaction.lpush(failures_key(light), failure.to_json)
|
46
|
+
transaction.ltrim(failures_key(light), 0, light.threshold - 1)
|
47
47
|
end
|
48
48
|
|
49
49
|
size
|
50
50
|
end
|
51
51
|
|
52
52
|
def clear_failures(light)
|
53
|
-
failures, = @redis.multi do
|
54
|
-
query_failures(light)
|
55
|
-
|
53
|
+
failures, = @redis.multi do |transaction|
|
54
|
+
query_failures(light, transaction: transaction)
|
55
|
+
transaction.del(failures_key(light))
|
56
56
|
end
|
57
57
|
|
58
58
|
normalize_failures(failures, light.error_notifier)
|
@@ -68,9 +68,9 @@ module Stoplight
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def clear_state(light)
|
71
|
-
state, = @redis.multi do
|
72
|
-
query_state(light)
|
73
|
-
|
71
|
+
state, = @redis.multi do |transaction|
|
72
|
+
query_state(light, transaction: transaction)
|
73
|
+
transaction.hdel(states_key, light.name)
|
74
74
|
end
|
75
75
|
|
76
76
|
normalize_state(state)
|
@@ -78,23 +78,21 @@ module Stoplight
|
|
78
78
|
|
79
79
|
private
|
80
80
|
|
81
|
-
def query_failures(light)
|
82
|
-
|
81
|
+
def query_failures(light, transaction: @redis)
|
82
|
+
transaction.lrange(failures_key(light), 0, -1)
|
83
83
|
end
|
84
84
|
|
85
85
|
def normalize_failures(failures, error_notifier)
|
86
86
|
failures.map do |json|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
Failure.from_error(error)
|
92
|
-
end
|
87
|
+
Failure.from_json(json)
|
88
|
+
rescue StandardError => e
|
89
|
+
error_notifier.call(e)
|
90
|
+
Failure.from_error(e)
|
93
91
|
end
|
94
92
|
end
|
95
93
|
|
96
|
-
def query_state(light)
|
97
|
-
|
94
|
+
def query_state(light, transaction: @redis)
|
95
|
+
transaction.hget(states_key, light.name)
|
98
96
|
end
|
99
97
|
|
100
98
|
def normalize_state(state)
|
data/lib/stoplight/data_store.rb
CHANGED
data/lib/stoplight/default.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Stoplight
|
4
4
|
module Default
|
@@ -6,9 +6,9 @@ module Stoplight
|
|
6
6
|
|
7
7
|
DATA_STORE = DataStore::Memory.new
|
8
8
|
|
9
|
-
ERROR_HANDLER = ->
|
9
|
+
ERROR_HANDLER = ->(error, handler) { handler.call(error) }
|
10
10
|
|
11
|
-
ERROR_NOTIFIER = ->
|
11
|
+
ERROR_NOTIFIER = ->(error) { warn error }
|
12
12
|
|
13
13
|
FALLBACK = nil
|
14
14
|
|
data/lib/stoplight/error.rb
CHANGED
data/lib/stoplight/failure.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'json'
|
4
4
|
require 'time'
|
5
5
|
|
6
6
|
module Stoplight
|
7
7
|
class Failure # rubocop:disable Style/Documentation
|
8
|
-
TIME_FORMAT = '%Y-%m-%dT%H:%M:%S.%N%:z'
|
8
|
+
TIME_FORMAT = '%Y-%m-%dT%H:%M:%S.%N%:z'
|
9
9
|
|
10
10
|
# @return [String]
|
11
11
|
attr_reader :error_class
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Stoplight
|
4
4
|
class Light
|
@@ -44,23 +44,25 @@ module Stoplight
|
|
44
44
|
|
45
45
|
def run_red
|
46
46
|
raise Error::RedLight, name unless fallback
|
47
|
+
|
47
48
|
fallback.call(nil)
|
48
49
|
end
|
49
50
|
|
50
51
|
def run_code(on_success, on_failure)
|
51
52
|
result = code.call
|
52
53
|
failures = clear_failures
|
53
|
-
on_success
|
54
|
+
on_success&.call(failures)
|
54
55
|
result
|
55
|
-
rescue Exception =>
|
56
|
-
handle_error(
|
56
|
+
rescue Exception => e # rubocop:disable Lint/RescueException
|
57
|
+
handle_error(e, on_failure)
|
57
58
|
end
|
58
59
|
|
59
60
|
def handle_error(error, on_failure)
|
60
61
|
error_handler.call(error, Error::HANDLER)
|
61
62
|
size = record_failure(error)
|
62
|
-
on_failure
|
63
|
+
on_failure&.call(size, error)
|
63
64
|
raise error unless fallback
|
65
|
+
|
64
66
|
fallback.call(error)
|
65
67
|
end
|
66
68
|
|
data/lib/stoplight/light.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Stoplight
|
4
4
|
module Notifier
|
@@ -34,7 +34,7 @@ module Stoplight
|
|
34
34
|
h = options.merge(
|
35
35
|
api_key: api_key,
|
36
36
|
error_message: message,
|
37
|
-
backtrace:
|
37
|
+
backtrace: error&.backtrace
|
38
38
|
)
|
39
39
|
::Honeybadger.notify(h)
|
40
40
|
message
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Stoplight
|
4
4
|
module Notifier
|
@@ -30,7 +30,7 @@ module Stoplight
|
|
30
30
|
|
31
31
|
h = options.merge(
|
32
32
|
configuration: configuration,
|
33
|
-
backtrace:
|
33
|
+
backtrace: error&.backtrace
|
34
34
|
)
|
35
35
|
::Raven.capture_message(message, h)
|
36
36
|
message
|
data/lib/stoplight/notifier.rb
CHANGED
data/lib/stoplight/state.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Stoplight
|
4
4
|
module State
|
5
|
-
UNLOCKED = 'unlocked'
|
6
|
-
LOCKED_GREEN = 'locked_green'
|
7
|
-
LOCKED_RED = 'locked_red'
|
5
|
+
UNLOCKED = 'unlocked'
|
6
|
+
LOCKED_GREEN = 'locked_green'
|
7
|
+
LOCKED_RED = 'locked_red'
|
8
8
|
end
|
9
9
|
end
|
data/lib/stoplight/version.rb
CHANGED
data/lib/stoplight.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
require 'stringio'
|
@@ -8,7 +8,7 @@ RSpec.describe Stoplight::Light::Runnable do
|
|
8
8
|
|
9
9
|
let(:code) { -> { code_result } }
|
10
10
|
let(:code_result) { random_string }
|
11
|
-
let(:fallback) { ->
|
11
|
+
let(:fallback) { ->(_) { fallback_result } }
|
12
12
|
let(:fallback_result) { random_string }
|
13
13
|
let(:name) { random_string }
|
14
14
|
|
@@ -123,12 +123,10 @@ RSpec.describe Stoplight::Light::Runnable do
|
|
123
123
|
|
124
124
|
context 'with an error handler' do
|
125
125
|
let(:result) do
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
expect(true).to be(true)
|
131
|
-
end
|
126
|
+
subject.run
|
127
|
+
expect(false).to be(true)
|
128
|
+
rescue error.class
|
129
|
+
expect(true).to be(true)
|
132
130
|
end
|
133
131
|
|
134
132
|
it 'records the failure when the handler does nothing' do
|
@@ -171,7 +169,7 @@ RSpec.describe Stoplight::Light::Runnable do
|
|
171
169
|
|
172
170
|
context 'when the data store is failing' do
|
173
171
|
let(:data_store) { Object.new }
|
174
|
-
let(:error_notifier) { ->
|
172
|
+
let(:error_notifier) { ->(_) {} }
|
175
173
|
|
176
174
|
before do
|
177
175
|
subject
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
require 'stringio'
|
@@ -42,7 +42,7 @@ RSpec.describe Stoplight::Light do
|
|
42
42
|
after { described_class.default_error_notifier = @default_error_notifier }
|
43
43
|
|
44
44
|
it 'sets the error notifier' do
|
45
|
-
default_error_notifier = ->
|
45
|
+
default_error_notifier = ->(_) {}
|
46
46
|
described_class.default_error_notifier = default_error_notifier
|
47
47
|
expect(described_class.default_error_notifier)
|
48
48
|
.to eql(default_error_notifier)
|
@@ -140,7 +140,7 @@ RSpec.describe Stoplight::Light do
|
|
140
140
|
|
141
141
|
describe '#with_error_handler' do
|
142
142
|
it 'sets the error handler' do
|
143
|
-
error_handler = ->
|
143
|
+
error_handler = ->(_, _) {}
|
144
144
|
light.with_error_handler(&error_handler)
|
145
145
|
expect(light.error_handler).to eql(error_handler)
|
146
146
|
end
|
@@ -148,7 +148,7 @@ RSpec.describe Stoplight::Light do
|
|
148
148
|
|
149
149
|
describe '#with_error_notifier' do
|
150
150
|
it 'sets the error notifier' do
|
151
|
-
error_notifier = ->
|
151
|
+
error_notifier = ->(_) {}
|
152
152
|
light.with_error_notifier(&error_notifier)
|
153
153
|
expect(light.error_notifier).to eql(error_notifier)
|
154
154
|
end
|
@@ -156,7 +156,7 @@ RSpec.describe Stoplight::Light do
|
|
156
156
|
|
157
157
|
describe '#with_fallback' do
|
158
158
|
it 'sets the fallback' do
|
159
|
-
fallback = ->
|
159
|
+
fallback = ->(_) {}
|
160
160
|
light.with_fallback(&fallback)
|
161
161
|
expect(light.fallback).to eql(fallback)
|
162
162
|
end
|
data/spec/stoplight_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stoplight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cameron Desautels
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: benchmark-ips
|
@@ -40,20 +40,6 @@ dependencies:
|
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '4.0'
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: coveralls
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '0.8'
|
50
|
-
type: :development
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '0.8'
|
57
43
|
- !ruby/object:Gem::Dependency
|
58
44
|
name: fakeredis
|
59
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,14 +102,14 @@ dependencies:
|
|
116
102
|
requirements:
|
117
103
|
- - "~>"
|
118
104
|
- !ruby/object:Gem::Version
|
119
|
-
version: '
|
105
|
+
version: '13.0'
|
120
106
|
type: :development
|
121
107
|
prerelease: false
|
122
108
|
version_requirements: !ruby/object:Gem::Requirement
|
123
109
|
requirements:
|
124
110
|
- - "~>"
|
125
111
|
- !ruby/object:Gem::Version
|
126
|
-
version: '
|
112
|
+
version: '13.0'
|
127
113
|
- !ruby/object:Gem::Dependency
|
128
114
|
name: redis
|
129
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,14 +144,14 @@ dependencies:
|
|
158
144
|
requirements:
|
159
145
|
- - "~>"
|
160
146
|
- !ruby/object:Gem::Version
|
161
|
-
version: 0.
|
147
|
+
version: 1.0.0
|
162
148
|
type: :development
|
163
149
|
prerelease: false
|
164
150
|
version_requirements: !ruby/object:Gem::Requirement
|
165
151
|
requirements:
|
166
152
|
- - "~>"
|
167
153
|
- !ruby/object:Gem::Version
|
168
|
-
version: 0.
|
154
|
+
version: 1.0.0
|
169
155
|
- !ruby/object:Gem::Dependency
|
170
156
|
name: sentry-raven
|
171
157
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,6 +166,34 @@ dependencies:
|
|
180
166
|
- - "~>"
|
181
167
|
- !ruby/object:Gem::Version
|
182
168
|
version: '1.2'
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
name: simplecov
|
171
|
+
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - "~>"
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0.21'
|
176
|
+
type: :development
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - "~>"
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0.21'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: simplecov-lcov
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - "~>"
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0.8'
|
190
|
+
type: :development
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - "~>"
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0.8'
|
183
197
|
- !ruby/object:Gem::Dependency
|
184
198
|
name: slack-notifier
|
185
199
|
requirement: !ruby/object:Gem::Requirement
|
@@ -271,7 +285,7 @@ files:
|
|
271
285
|
- spec/stoplight/state_spec.rb
|
272
286
|
- spec/stoplight/version_spec.rb
|
273
287
|
- spec/stoplight_spec.rb
|
274
|
-
homepage: https://github.com/
|
288
|
+
homepage: https://github.com/bolshakov/stoplight
|
275
289
|
licenses:
|
276
290
|
- MIT
|
277
291
|
metadata: {}
|
@@ -283,41 +297,41 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
283
297
|
requirements:
|
284
298
|
- - ">="
|
285
299
|
- !ruby/object:Gem::Version
|
286
|
-
version: '2.
|
300
|
+
version: '2.6'
|
287
301
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
288
302
|
requirements:
|
289
303
|
- - ">="
|
290
304
|
- !ruby/object:Gem::Version
|
291
305
|
version: '0'
|
292
306
|
requirements: []
|
293
|
-
rubygems_version: 3.
|
307
|
+
rubygems_version: 3.2.3
|
294
308
|
signing_key:
|
295
309
|
specification_version: 4
|
296
310
|
summary: Traffic control for code.
|
297
311
|
test_files:
|
298
312
|
- spec/spec_helper.rb
|
299
|
-
- spec/
|
313
|
+
- spec/stoplight/color_spec.rb
|
314
|
+
- spec/stoplight/data_store/base_spec.rb
|
315
|
+
- spec/stoplight/data_store/memory_spec.rb
|
316
|
+
- spec/stoplight/data_store/redis_spec.rb
|
317
|
+
- spec/stoplight/data_store_spec.rb
|
318
|
+
- spec/stoplight/default_spec.rb
|
300
319
|
- spec/stoplight/error_spec.rb
|
301
320
|
- spec/stoplight/failure_spec.rb
|
302
|
-
- spec/stoplight/
|
303
|
-
- spec/stoplight/
|
304
|
-
- spec/stoplight/notifier/io_spec.rb
|
305
|
-
- spec/stoplight/notifier/logger_spec.rb
|
306
|
-
- spec/stoplight/notifier/honeybadger_spec.rb
|
307
|
-
- spec/stoplight/notifier/generic_spec.rb
|
308
|
-
- spec/stoplight/notifier/slack_spec.rb
|
309
|
-
- spec/stoplight/notifier/rollbar_spec.rb
|
321
|
+
- spec/stoplight/light/runnable_spec.rb
|
322
|
+
- spec/stoplight/light_spec.rb
|
310
323
|
- spec/stoplight/notifier/base_spec.rb
|
311
324
|
- spec/stoplight/notifier/bugsnag_spec.rb
|
325
|
+
- spec/stoplight/notifier/generic_spec.rb
|
312
326
|
- spec/stoplight/notifier/hip_chat_spec.rb
|
313
|
-
- spec/stoplight/
|
314
|
-
- spec/stoplight/
|
327
|
+
- spec/stoplight/notifier/honeybadger_spec.rb
|
328
|
+
- spec/stoplight/notifier/io_spec.rb
|
329
|
+
- spec/stoplight/notifier/logger_spec.rb
|
330
|
+
- spec/stoplight/notifier/pagerduty_spec.rb
|
331
|
+
- spec/stoplight/notifier/raven_spec.rb
|
332
|
+
- spec/stoplight/notifier/rollbar_spec.rb
|
333
|
+
- spec/stoplight/notifier/slack_spec.rb
|
315
334
|
- spec/stoplight/notifier_spec.rb
|
316
|
-
- spec/stoplight/
|
317
|
-
- spec/stoplight/
|
318
|
-
- spec/
|
319
|
-
- spec/stoplight/data_store/memory_spec.rb
|
320
|
-
- spec/stoplight/data_store/redis_spec.rb
|
321
|
-
- spec/stoplight/data_store/base_spec.rb
|
322
|
-
- spec/stoplight/light/runnable_spec.rb
|
323
|
-
- spec/stoplight/light_spec.rb
|
335
|
+
- spec/stoplight/state_spec.rb
|
336
|
+
- spec/stoplight/version_spec.rb
|
337
|
+
- spec/stoplight_spec.rb
|