Class: Faulty::Storage::CircuitProxy::Options

Inherits:
Struct
  • Object
show all
Includes:
ImmutableOptions
Defined in:
lib/faulty/storage/circuit_proxy.rb

Overview

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ImmutableOptions

#defaults, #dup_with, #initialize, #required, #setup

Instance Attribute Details

#circuitCircuit (readonly)

Returns A replacement for the internal circuit. When modifying this, be careful to use only a reliable storage backend so that you don't introduce cascading failures.

Returns:

  • (Circuit)

    A replacement for the internal circuit. When modifying this, be careful to use only a reliable storage backend so that you don't introduce cascading failures.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/faulty/storage/circuit_proxy.rb', line 23

Options = Struct.new(
  :circuit,
  :notifier
) do
  include ImmutableOptions

  def finalize
    raise ArgumentError, 'The circuit or notifier option must be given' unless notifier || circuit

    self.circuit ||= Circuit.new(
      Faulty::Storage::CircuitProxy.name,
      notifier: Events::FilterNotifier.new(notifier, exclude: %i[circuit_success]),
      cache: Cache::Null.new
    )
  end
end

#notifierEvents::Notifier (readonly)

Returns A Faulty notifier to use for circuit notifications. If circuit is given, this is ignored.

Returns:

  • (Events::Notifier)

    A Faulty notifier to use for circuit notifications. If circuit is given, this is ignored.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/faulty/storage/circuit_proxy.rb', line 23

Options = Struct.new(
  :circuit,
  :notifier
) do
  include ImmutableOptions

  def finalize
    raise ArgumentError, 'The circuit or notifier option must be given' unless notifier || circuit

    self.circuit ||= Circuit.new(
      Faulty::Storage::CircuitProxy.name,
      notifier: Events::FilterNotifier.new(notifier, exclude: %i[circuit_success]),
      cache: Cache::Null.new
    )
  end
end

Instance Method Details

#finalizeObject

Raises:

  • (ArgumentError)


29
30
31
32
33
34
35
36
37
# File 'lib/faulty/storage/circuit_proxy.rb', line 29

def finalize
  raise ArgumentError, 'The circuit or notifier option must be given' unless notifier || circuit

  self.circuit ||= Circuit.new(
    Faulty::Storage::CircuitProxy.name,
    notifier: Events::FilterNotifier.new(notifier, exclude: %i[circuit_success]),
    cache: Cache::Null.new
  )
end