Sha256: 280de210c90a42c3de0d2c257dde9cb8d8d364a53dabfa7893a248a6ca848ab0

Contents?: true

Size: 559 Bytes

Versions: 3

Compression:

Stored size: 559 Bytes

Contents

# frozen_string_literal: true

module Kredis::Types::Proxy::Failsafe
  def initialize(*)
    super
    @fail_safe_suppressed = false
  end

  def failsafe
    yield
  rescue Redis::BaseError
    raise if fail_safe_suppressed?
  end

  def suppress_failsafe_with(returning: nil)
    old_fail_safe_suppressed, @fail_safe_suppressed = @fail_safe_suppressed, true
    yield
  rescue Redis::BaseError
    returning
  ensure
    @fail_safe_suppressed = old_fail_safe_suppressed
  end

  private
    def fail_safe_suppressed?
      @fail_safe_suppressed
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kredis-1.7.0 lib/kredis/types/proxy/failsafe.rb
kredis-1.6.1 lib/kredis/types/proxy/failsafe.rb
kredis-1.6.0 lib/kredis/types/proxy/failsafe.rb