Class: CircuitBreaker::Rules::RuleChain

Inherits:
Object
  • Object
show all
Defined in:
lib/circuit_breaker/rules.rb

Instance Method Summary collapse

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

#errorsObject



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