Class: BreakerMachines::CircuitGroup::DependencyWrapper

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/breaker_machines/circuit_group.rb

Overview

Wrapper to enforce dependencies

Instance Method Summary collapse

Constructor Details

#initialize(circuit, group, name) ⇒ DependencyWrapper



125
126
127
128
129
# File 'lib/breaker_machines/circuit_group.rb', line 125

def initialize(circuit, group, name)
  super(circuit)
  @group = group
  @name = name
end

Instance Method Details

#attempt_recovery!Object



140
141
142
143
144
# File 'lib/breaker_machines/circuit_group.rb', line 140

def attempt_recovery!
  return false unless @group.dependencies_met?(@name)

  __getobj__.attempt_recovery!
end

#callObject



131
132
133
134
135
136
137
138
# File 'lib/breaker_machines/circuit_group.rb', line 131

def call(&)
  unless @group.dependencies_met?(@name)
    raise BreakerMachines::CircuitDependencyError.new(__getobj__.name,
                                                      "Dependencies not met for circuit #{@name}")
  end

  __getobj__.call(&)
end

#reset!Object



146
147
148
149
150
# File 'lib/breaker_machines/circuit_group.rb', line 146

def reset!
  return false unless @group.dependencies_met?(@name)

  __getobj__.reset!
end