class Net::DNS::Resolver::DnsTimeout
Attributes
seconds[R]
Public Class Methods
new(seconds)
click to toggle source
# File lib/net/dns/resolver/timeouts.rb, line 12 def initialize(seconds) if seconds.is_a? Numeric and seconds >= 0 @seconds = seconds else raise ArgumentError, "Invalid value for tcp timeout" end end
Public Instance Methods
pretty_to_s()
click to toggle source
# File lib/net/dns/resolver/timeouts.rb, line 30 def pretty_to_s transform(@seconds) end
timeout(&block)
click to toggle source
Executes the method's block. If the block execution terminates before
sec
seconds has passed, it returns true. If not, it terminates
the execution and raises Timeout::Error. If @seconds is 0 or nil, no
timeout is set.
# File lib/net/dns/resolver/timeouts.rb, line 38 def timeout(&block) raise LocalJumpError, "no block given" unless block_given? Timeout.timeout(@seconds, &block) end
to_s()
click to toggle source
Returns a string representation of the timeout corresponding to the number
of @seconds
.
# File lib/net/dns/resolver/timeouts.rb, line 22 def to_s if @seconds == 0 @output.to_s else @seconds.to_s end end
Private Instance Methods
transform(secs)
click to toggle source
# File lib/net/dns/resolver/timeouts.rb, line 46 def transform(secs) case secs when 0 to_s when 1..59 "#{secs} seconds" when 60..3559 "#{secs / 60} minutes and #{secs % 60} seconds" else hours = secs / 3600 secs -= (hours * 3600) "#{hours} hours, #{secs / 60} minutes and #{secs % 60} seconds" end end