Class: CircuitBreaker::Rules::RuleChain
- Inherits:
-
Object
- Object
- CircuitBreaker::Rules::RuleChain
- Defined in:
- lib/circuit_breaker/rules.rb
Instance Method Summary collapse
- #errors ⇒ Object
-
#initialize(dsl, token) ⇒ RuleChain
constructor
A new instance of RuleChain.
- #requires(*rule_names) ⇒ Object
- #requires_any(*rule_names) ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(dsl, token) ⇒ RuleChain
224 225 226 227 228 |
# File 'lib/circuit_breaker/rules.rb', line 224 def initialize(dsl, token) @dsl = dsl @token = token @result = RuleResult.new(true) end |
Instance Method Details
#errors ⇒ Object
246 247 248 |
# File 'lib/circuit_breaker/rules.rb', line 246 def errors @result.errors end |
#requires(*rule_names) ⇒ Object
230 231 232 233 234 |
# File 'lib/circuit_breaker/rules.rb', line 230 def requires(*rule_names) results = rule_names.map { |rule| RuleResult.new(@dsl.evaluate(rule, @token)) } @result = results.reduce(@result) { |acc, result| acc & result } self end |
#requires_any(*rule_names) ⇒ Object
236 237 238 239 240 |
# File 'lib/circuit_breaker/rules.rb', line 236 def requires_any(*rule_names) results = rule_names.map { |rule| RuleResult.new(@dsl.evaluate(rule, @token)) } @result = @result & results.reduce(RuleResult.new(false)) { |acc, result| acc | result } self end |
#valid? ⇒ Boolean
242 243 244 |
# File 'lib/circuit_breaker/rules.rb', line 242 def valid? @result.valid? end |