Sha256: 2013c1b7e78f3620e9ff6893607c709cd08fa896ac4db420817fa0307617676a

Contents?: true

Size: 585 Bytes

Versions: 22

Compression:

Stored size: 585 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

22 entries across 22 versions & 1 rubygems

Version Path
truemail-2.2.3 lib/truemail/wrapper.rb
truemail-2.2.2 lib/truemail/wrapper.rb
truemail-2.2.1 lib/truemail/wrapper.rb
truemail-2.2.0 lib/truemail/wrapper.rb
truemail-2.1.0 lib/truemail/wrapper.rb
truemail-2.0.2 lib/truemail/wrapper.rb
truemail-2.0.1 lib/truemail/wrapper.rb
truemail-2.0.0 lib/truemail/wrapper.rb
truemail-1.9.2 lib/truemail/wrapper.rb
truemail-1.9.1 lib/truemail/wrapper.rb
truemail-1.9.0 lib/truemail/wrapper.rb
truemail-1.8.0 lib/truemail/wrapper.rb
truemail-1.7.1 lib/truemail/wrapper.rb
truemail-1.7.0 lib/truemail/wrapper.rb
truemail-1.6.1 lib/truemail/wrapper.rb
truemail-1.6.0 lib/truemail/wrapper.rb
truemail-1.5.1 lib/truemail/wrapper.rb
truemail-1.5.0 lib/truemail/wrapper.rb
truemail-1.4.2 lib/truemail/wrapper.rb
truemail-1.4.1 lib/truemail/wrapper.rb