Sha256: e1a4799ee83f4483c92c39aab9e208cf3c0016aead8c47226d47281e521d8595

Contents?: true

Size: 401 Bytes

Versions: 3

Compression:

Stored size: 401 Bytes

Contents

module OneWire
  module Retry
    def with_retry
      errors_counts = Config.retries.map { |err, count| { Errno::const_get(err) => count } }.inject { |hash, h| hash.merge h }
      begin
        yield
      rescue *(errors_counts.map { |error, count| error if count > 0 }.compact) => e
        errors_counts[e.class] -= 1
        sleep Config.retry_interval
        retry
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
mholling-one_wire-0.1.0 lib/one_wire/retry.rb
one_wire-0.1.1 lib/one_wire/retry.rb
one_wire-0.1.0 lib/one_wire/retry.rb