Class: ResilientCall::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/resilient_call/configuration.rb

Overview

Holds the global defaults and the registry of named profiles.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/resilient_call/configuration.rb', line 15

def initialize
  @retries       = 3
  @wait          = :exponential
  @base_wait     = 0.5
  @max_wait      = 30.0
  @jitter        = true
  @on            = [StandardError]

  @threshold     = 5
  @reset_timeout = 60

  @on_retry      = nil
  @on_failure    = nil
  @on_success    = nil

  @profiles      = {}
end

Instance Attribute Details

#base_waitObject

retry



7
8
9
# File 'lib/resilient_call/configuration.rb', line 7

def base_wait
  @base_wait
end

#jitterObject

retry



7
8
9
# File 'lib/resilient_call/configuration.rb', line 7

def jitter
  @jitter
end

#max_waitObject

retry



7
8
9
# File 'lib/resilient_call/configuration.rb', line 7

def max_wait
  @max_wait
end

#onObject

retry



7
8
9
# File 'lib/resilient_call/configuration.rb', line 7

def on
  @on
end

#on_failureObject

callbacks



11
12
13
# File 'lib/resilient_call/configuration.rb', line 11

def on_failure
  @on_failure
end

#on_retryObject

callbacks



11
12
13
# File 'lib/resilient_call/configuration.rb', line 11

def on_retry
  @on_retry
end

#on_successObject

callbacks



11
12
13
# File 'lib/resilient_call/configuration.rb', line 11

def on_success
  @on_success
end

#profilesObject

named profiles registry



13
14
15
# File 'lib/resilient_call/configuration.rb', line 13

def profiles
  @profiles
end

#reset_timeoutObject

circuit breaker



9
10
11
# File 'lib/resilient_call/configuration.rb', line 9

def reset_timeout
  @reset_timeout
end

#retriesObject

retry



7
8
9
# File 'lib/resilient_call/configuration.rb', line 7

def retries
  @retries
end

#thresholdObject

circuit breaker



9
10
11
# File 'lib/resilient_call/configuration.rb', line 9

def threshold
  @threshold
end

#waitObject

retry



7
8
9
# File 'lib/resilient_call/configuration.rb', line 7

def wait
  @wait
end

Instance Method Details

#to_hObject

Every default except the profiles registry, ready to be merged in ‘.call`.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/resilient_call/configuration.rb', line 34

def to_h
  {
    retries:       @retries,
    wait:          @wait,
    base_wait:     @base_wait,
    max_wait:      @max_wait,
    jitter:        @jitter,
    on:            @on,
    threshold:     @threshold,
    reset_timeout: @reset_timeout,
    on_retry:      @on_retry,
    on_failure:    @on_failure,
    on_success:    @on_success
  }
end