Class: DnsTimeout

Inherits:
Object
  • Object
show all
Includes:
SecondsHandle
Defined in:
lib/net/dns/resolver/timeouts.rb

Overview

:nodoc: all

Direct Known Subclasses

TcpTimeout, UdpTimeout

Instance Method Summary collapse

Methods included from SecondsHandle

#transform

Constructor Details

#initialize(seconds) ⇒ DnsTimeout

Returns a new instance of DnsTimeout.



24
25
26
27
28
29
30
# File 'lib/net/dns/resolver/timeouts.rb', line 24

def initialize(seconds)
  if seconds.is_a? Numeric and seconds >= 0
    @timeout = seconds
  else
    raise DnsTimeoutArgumentError, "Invalid value for tcp timeout"
  end    
end

Instance Method Details

#pretty_to_sObject



40
41
42
# File 'lib/net/dns/resolver/timeouts.rb', line 40

def pretty_to_s
  transform(@timeout)
end

#timeoutObject



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/net/dns/resolver/timeouts.rb', line 44

def timeout
  unless block_given?
    raise DnsTimeoutArgumentError, "Block required but missing"
  end
  if @timeout == 0
    yield
  else
    return Timeout.timeout(@timeout) do
      yield
    end
  end
end

#to_sObject



32
33
34
35
36
37
38
# File 'lib/net/dns/resolver/timeouts.rb', line 32

def to_s
  if @timeout == 0 
    @output
  else
    @timeout.to_s
  end
end