Class: Net::Ping
- Inherits:
-
Object
- Object
- Net::Ping
- Defined in:
- lib/net/ping/ping.rb
Direct Known Subclasses
Defined Under Namespace
Classes: External, HTTP, ICMP, TCP, UDP
Constant Summary collapse
- VERSION =
'1.2.2'
Instance Attribute Summary collapse
-
#duration ⇒ Object
readonly
The number of seconds (returned as a Float) that it took to ping the host.
-
#exception ⇒ Object
readonly
If a ping fails, this value is set to the error that occurred which caused it to fail.
-
#host ⇒ Object
The host to ping.
-
#port ⇒ Object
The port to ping.
-
#timeout ⇒ Object
The maximum time a ping attempt is made.
-
#warning ⇒ Object
readonly
This value is set if a ping succeeds, but some other condition arose during the ping attempt which merits warning, e.g a redirect in the case of Ping::HTTP#ping.
Instance Method Summary collapse
-
#initialize(host = nil, port = nil, timeout = 5) {|_self| ... } ⇒ Ping
constructor
The default constructor for the Net::Ping class.
-
#ping(host = @host) ⇒ Object
(also: #ping?, #pingecho)
The default interface for the Net::Ping#ping method.
Constructor Details
#initialize(host = nil, port = nil, timeout = 5) {|_self| ... } ⇒ Ping
The default constructor for the Net::Ping class. Accepts an optional host
, port
and timeout
. The port defaults to your echo port, or 7 if that happens to be undefined. The default timeout is 5 seconds.
The host, although optional in the constructor, must be specified at some point before the Net::Ping#ping method is called, or else an ArgumentError will be raised.
Yields self
in block context.
This class is not meant to be instantiated directly. It is strictly meant as an interface for subclasses.
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/net/ping/ping.rb', line 50 def initialize(host=nil, port=nil, timeout=5) @host = host @port = port || Socket.getservbyname('echo') || 7 @timeout = timeout @exception = nil @warning = nil @duration = nil yield self if block_given? end |
Instance Attribute Details
#duration ⇒ Object (readonly)
The number of seconds (returned as a Float) that it took to ping the host. This is not a precise value, but rather a good estimate since there is a small amount of internal calculation that is added to the overall time.
35 36 37 |
# File 'lib/net/ping/ping.rb', line 35 def duration @duration end |
#exception ⇒ Object (readonly)
If a ping fails, this value is set to the error that occurred which caused it to fail.
22 23 24 |
# File 'lib/net/ping/ping.rb', line 22 def exception @exception end |
#host ⇒ Object
The host to ping. In the case of Ping::HTTP, this is the URI.
9 10 11 |
# File 'lib/net/ping/ping.rb', line 9 def host @host end |
#port ⇒ Object
The port to ping. This is set to the echo port (7) by default. The Ping::HTTP class defaults to port 80.
14 15 16 |
# File 'lib/net/ping/ping.rb', line 14 def port @port end |
#timeout ⇒ Object
The maximum time a ping attempt is made.
17 18 19 |
# File 'lib/net/ping/ping.rb', line 17 def timeout @timeout end |
#warning ⇒ Object (readonly)
This value is set if a ping succeeds, but some other condition arose during the ping attempt which merits warning, e.g a redirect in the case of Ping::HTTP#ping.
28 29 30 |
# File 'lib/net/ping/ping.rb', line 28 def warning @warning end |
Instance Method Details
#ping(host = @host) ⇒ Object Also known as: ping?, pingecho
The default interface for the Net::Ping#ping method. Each subclass should call super() before continuing with their own implementation in order to ensure that the @exception and @warning instance variables are reset.
If host
is nil here, then it will use the host specified in the constructor. If the host
is nil and there was no host specified in the constructor then an ArgumentError is raised. – The @duration should be set in the subclass’ ping method.
72 73 74 75 76 |
# File 'lib/net/ping/ping.rb', line 72 def ping(host = @host) raise ArgumentError, 'no host specified' unless host @exception = nil @warning = nil end |