Sha256: 7a6c29cd4e7d6c5f6d0c4ff406bf2dbc075b0cddf4e5462093ec168c574fd9ee

Contents?: true

Size: 593 Bytes

Versions: 49

Compression:

Stored size: 593 Bytes

Contents

# frozen_string_literal: true

module Truemail
  class Wrapper
    attr_reader :timeout
    attr_accessor :attempts

    def self.call(configuration:, &block)
      new(configuration).call(&block)
    end

    def initialize(configuration)
      @attempts = configuration.connection_attempts
      @timeout = configuration.connection_timeout
    end

    def call(&block)
      ::Timeout.timeout(timeout, &block)
    rescue ::Resolv::ResolvError, ::IPAddr::InvalidAddressError
      false
    rescue ::Timeout::Error
      retry unless (self.attempts -= 1).zero?
      false
    end
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
truemail-3.3.1 lib/truemail/wrapper.rb
truemail-3.3.0 lib/truemail/wrapper.rb
truemail-3.2.0 lib/truemail/wrapper.rb
truemail-3.1.2 lib/truemail/wrapper.rb
truemail-3.1.1 lib/truemail/wrapper.rb
truemail-3.1.0 lib/truemail/wrapper.rb
truemail-3.0.9 lib/truemail/wrapper.rb
truemail-3.0.8 lib/truemail/wrapper.rb
truemail-3.0.7 lib/truemail/wrapper.rb
truemail-3.0.6 lib/truemail/wrapper.rb
truemail-3.0.5 lib/truemail/wrapper.rb
truemail-3.0.4 lib/truemail/wrapper.rb
truemail-3.0.3 lib/truemail/wrapper.rb
truemail-3.0.2 lib/truemail/wrapper.rb
truemail-3.0.1 lib/truemail/wrapper.rb
truemail-3.0.0 lib/truemail/wrapper.rb
truemail-2.7.5 lib/truemail/wrapper.rb
truemail-2.7.4 lib/truemail/wrapper.rb
truemail-2.7.3 lib/truemail/wrapper.rb
truemail-2.7.2 lib/truemail/wrapper.rb