Class: EventStore::HTTP::Retry::Substitute::Retry

Inherits:
EventStore::HTTP::Retry show all
Defined in:
lib/event_store/http/retry/substitute.rb

Constant Summary

Constants inherited from EventStore::HTTP::Retry

Trigger

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from EventStore::HTTP::Retry

#failed, #record_retry, register_telemetry_sink, #retry_duration, #retry_duration_seconds, #retry_limit

Instance Attribute Details

#errorObject

Returns the value of attribute error.



10
11
12
# File 'lib/event_store/http/retry/substitute.rb', line 10

def error
  @error
end

#telemetry_sinkObject

Returns the value of attribute telemetry_sink.



11
12
13
# File 'lib/event_store/http/retry/substitute.rb', line 11

def telemetry_sink
  @telemetry_sink
end

Class Method Details

.buildObject



13
14
15
16
17
18
19
20
21
22
# File 'lib/event_store/http/retry/substitute.rb', line 13

def self.build
  instance = new

  ::Telemetry.configure instance
  instance.telemetry_sink = Retry.register_telemetry_sink instance

  instance.retry_duration = 0
  instance.retry_limit = 1
  instance
end

Instance Method Details

#call(&block) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/event_store/http/retry/substitute.rb', line 24

def call(&block)
  super do |_, retries|
    return_value = block.(self, retries)

    if error = self.error
      self.error = nil
      raise error
    end

    return_value
  end
end

#set_error(error) ⇒ Object



37
38
39
# File 'lib/event_store/http/retry/substitute.rb', line 37

def set_error(error)
  self.error = error
end