net-ping 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/net/ping/ping.rb CHANGED
@@ -10,12 +10,12 @@ module Net
10
10
  #
11
11
  class Ping
12
12
  # The version of the net-ping library.
13
- VERSION = '1.3.2'
13
+ VERSION = '1.3.3'
14
14
 
15
- # The host to ping. In the case of Ping::HTTP, this is the URI.
15
+ # The host to ping. In the case of Ping::HTTP, this is the URI.
16
16
  attr_accessor :host
17
17
 
18
- # The port to ping. This is set to the echo port (7) by default. The
18
+ # The port to ping. This is set to the echo port (7) by default. The
19
19
  # Ping::HTTP class defaults to port 80.
20
20
  #
21
21
  attr_accessor :port
data/lib/net/ping/tcp.rb CHANGED
@@ -3,81 +3,81 @@ require File.join(File.dirname(__FILE__), 'ping')
3
3
  # The Net module serves as a namespace only.
4
4
  module Net
5
5
 
6
- # With a TCP ping simply try to open a connection. If we are successful,
7
- # assume success. In either case close the connection to be polite.
8
- #
9
- class Ping::TCP < Ping
10
- @@service_check = false
6
+ # With a TCP ping simply try to open a connection. If we are successful,
7
+ # assume success. In either case close the connection to be polite.
8
+ #
9
+ class Ping::TCP < Ping
10
+ @@service_check = false
11
11
 
12
- # Returns whether or not Errno::ECONNREFUSED is considered a successful
13
- # ping. The default is false.
14
- #
15
- def self.service_check
16
- @@service_check
17
- end
12
+ # Returns whether or not Errno::ECONNREFUSED is considered a successful
13
+ # ping. The default is false.
14
+ #
15
+ def self.service_check
16
+ @@service_check
17
+ end
18
18
 
19
- # Sets whether or not an Errno::ECONNREFUSED should be considered a
20
- # successful ping.
21
- #
22
- def self.service_check=(bool)
23
- unless bool.kind_of?(TrueClass) || bool.kind_of?(FalseClass)
24
- raise ArgumentError, 'argument must be true or false'
25
- end
26
- @@service_check = bool
19
+ # Sets whether or not an Errno::ECONNREFUSED should be considered a
20
+ # successful ping.
21
+ #
22
+ def self.service_check=(bool)
23
+ unless bool.kind_of?(TrueClass) || bool.kind_of?(FalseClass)
24
+ raise ArgumentError, 'argument must be true or false'
27
25
  end
26
+ @@service_check = bool
27
+ end
28
28
 
29
- # This method attempts to ping a host and port using a TCPSocket with
30
- # the host, port and timeout values passed in the constructor. Returns
31
- # true if successful, or false otherwise.
32
- #
33
- # Note that, by default, an Errno::ECONNREFUSED return result will be
34
- # considered a failed ping. See the documentation for the
35
- # Ping::TCP.service_check= method if you wish to change this behavior.
36
- #
37
- def ping(host=@host)
38
- super(host)
29
+ # This method attempts to ping a host and port using a TCPSocket with
30
+ # the host, port and timeout values passed in the constructor. Returns
31
+ # true if successful, or false otherwise.
32
+ #
33
+ # Note that, by default, an Errno::ECONNREFUSED return result will be
34
+ # considered a failed ping. See the documentation for the
35
+ # Ping::TCP.service_check= method if you wish to change this behavior.
36
+ #
37
+ def ping(host=@host)
38
+ super(host)
39
39
 
40
- bool = false
41
- tcp = nil
42
- start_time = Time.now
40
+ bool = false
41
+ tcp = nil
42
+ start_time = Time.now
43
43
 
44
- begin
45
- Timeout.timeout(@timeout){
46
- begin
47
- tcp = TCPSocket.new(host, @port)
48
- rescue Errno::ECONNREFUSED => err
49
- if @@service_check
50
- bool = true
51
- else
52
- @exception = err
53
- end
54
- rescue Exception => err
55
- @exception = err
56
- else
57
- bool = true
58
- end
59
- }
60
- rescue Timeout::Error => err
44
+ begin
45
+ Timeout.timeout(@timeout){
46
+ begin
47
+ tcp = TCPSocket.new(host, @port)
48
+ rescue Errno::ECONNREFUSED => err
49
+ if @@service_check
50
+ bool = true
51
+ else
52
+ @exception = err
53
+ end
54
+ rescue Exception => err
61
55
  @exception = err
62
- ensure
63
- tcp.close if tcp
64
- end
56
+ else
57
+ bool = true
58
+ end
59
+ }
60
+ rescue Timeout::Error => err
61
+ @exception = err
62
+ ensure
63
+ tcp.close if tcp
64
+ end
65
65
 
66
- # There is no duration if the ping failed
67
- @duration = Time.now - start_time if bool
66
+ # There is no duration if the ping failed
67
+ @duration = Time.now - start_time if bool
68
68
 
69
- bool
70
- end
69
+ bool
70
+ end
71
71
 
72
- alias ping? ping
73
- alias pingecho ping
72
+ alias ping? ping
73
+ alias pingecho ping
74
74
 
75
- # Class method aliases. DEPRECATED.
76
- class << self
77
- alias econnrefused service_check
78
- alias econnrefused= service_check=
79
- alias ecr service_check
80
- alias ecr= service_check=
81
- end
82
- end
75
+ # Class method aliases. DEPRECATED.
76
+ class << self
77
+ alias econnrefused service_check
78
+ alias econnrefused= service_check=
79
+ alias ecr service_check
80
+ alias ecr= service_check=
81
+ end
82
+ end
83
83
  end
data/lib/net/ping/udp.rb CHANGED
@@ -3,117 +3,117 @@ require File.join(File.dirname(__FILE__), 'ping')
3
3
  # The Net module serves as a namespace only.
4
4
  module Net
5
5
 
6
- # The Ping::UDP class encapsulates methods for UDP pings.
7
- class Ping::UDP < Ping
8
- @@service_check = true
6
+ # The Ping::UDP class encapsulates methods for UDP pings.
7
+ class Ping::UDP < Ping
8
+ @@service_check = true
9
9
 
10
- # Returns whether or not the connect behavior should enforce remote
11
- # service availability as well as reachability. The default is true.
12
- #
13
- def self.service_check
14
- @@service_check
15
- end
10
+ # Returns whether or not the connect behavior should enforce remote
11
+ # service availability as well as reachability. The default is true.
12
+ #
13
+ def self.service_check
14
+ @@service_check
15
+ end
16
16
 
17
- # Set whether or not the connect behavior should enforce remote
18
- # service availability as well as reachability. If set to false
19
- # then Errno::ECONNREFUSED or Errno::ECONNRESET will be considered
20
- # a successful ping, meaning no actual data handshaking is required.
21
- # By default, if either of those errors occurs it is considered a failed
22
- # ping.
23
- #
24
- def self.service_check=(bool)
25
- unless bool.kind_of?(TrueClass) || bool.kind_of?(FalseClass)
26
- raise ArgumentError, 'argument must be true or false'
27
- end
28
- @@service_check = bool
17
+ # Set whether or not the connect behavior should enforce remote
18
+ # service availability as well as reachability. If set to false
19
+ # then Errno::ECONNREFUSED or Errno::ECONNRESET will be considered
20
+ # a successful ping, meaning no actual data handshaking is required.
21
+ # By default, if either of those errors occurs it is considered a failed
22
+ # ping.
23
+ #
24
+ def self.service_check=(bool)
25
+ unless bool.kind_of?(TrueClass) || bool.kind_of?(FalseClass)
26
+ raise ArgumentError, 'argument must be true or false'
29
27
  end
28
+ @@service_check = bool
29
+ end
30
30
 
31
- # The maximum data size that can be sent in a UDP ping.
32
- MAX_DATA = 64
31
+ # The maximum data size that can be sent in a UDP ping.
32
+ MAX_DATA = 64
33
33
 
34
- # The data to send to the remote host. By default this is 'ping'.
35
- # This should be MAX_DATA size characters or less.
36
- #
37
- attr_reader :data
34
+ # The data to send to the remote host. By default this is 'ping'.
35
+ # This should be MAX_DATA size characters or less.
36
+ #
37
+ attr_reader :data
38
38
 
39
- # Creates and returns a new Ping::UDP object. This is effectively
40
- # identical to its superclass constructor.
41
- #
42
- def initialize(host=nil, port=nil, timeout=5)
43
- @data = 'ping'
39
+ # Creates and returns a new Ping::UDP object. This is effectively
40
+ # identical to its superclass constructor.
41
+ #
42
+ def initialize(host=nil, port=nil, timeout=5)
43
+ @data = 'ping'
44
44
 
45
- super(host, port, timeout)
45
+ super(host, port, timeout)
46
46
 
47
- @bind_host = nil
48
- @bind_port = nil
49
- end
47
+ @bind_host = nil
48
+ @bind_port = nil
49
+ end
50
50
 
51
- # Sets the data string sent to the remote host. This value cannot have
52
- # a size greater than MAX_DATA.
53
- #
54
- def data=(string)
55
- if string.size > MAX_DATA
56
- err = "cannot set data string larger than #{MAX_DATA} characters"
57
- raise ArgumentError, err
58
- end
51
+ # Sets the data string sent to the remote host. This value cannot have
52
+ # a size greater than MAX_DATA.
53
+ #
54
+ def data=(string)
55
+ if string.size > MAX_DATA
56
+ err = "cannot set data string larger than #{MAX_DATA} characters"
57
+ raise ArgumentError, err
58
+ end
59
59
 
60
- @data = string
61
- end
60
+ @data = string
61
+ end
62
62
 
63
- # Associates the local end of the UDP connection with the given +host+
64
- # and +port+. This is essentially a wrapper for UDPSocket#bind.
65
- #
66
- def bind(host, port)
67
- @bind_host = host
68
- @bind_port = port
69
- end
63
+ # Associates the local end of the UDP connection with the given +host+
64
+ # and +port+. This is essentially a wrapper for UDPSocket#bind.
65
+ #
66
+ def bind(host, port)
67
+ @bind_host = host
68
+ @bind_port = port
69
+ end
70
70
 
71
- # Sends a simple text string to the host and checks the return string. If
72
- # the string sent and the string returned are a match then the ping was
73
- # successful and true is returned. Otherwise, false is returned.
74
- #
75
- def ping(host = @host)
76
- super(host)
71
+ # Sends a simple text string to the host and checks the return string. If
72
+ # the string sent and the string returned are a match then the ping was
73
+ # successful and true is returned. Otherwise, false is returned.
74
+ #
75
+ def ping(host = @host)
76
+ super(host)
77
77
 
78
- bool = false
79
- udp = UDPSocket.open
80
- array = []
78
+ bool = false
79
+ udp = UDPSocket.open
80
+ array = []
81
81
 
82
- if @bind_host
83
- udp.bind(@bind_host, @bind_port)
84
- end
82
+ if @bind_host
83
+ udp.bind(@bind_host, @bind_port)
84
+ end
85
85
 
86
- start_time = Time.now
86
+ start_time = Time.now
87
87
 
88
- begin
89
- Timeout.timeout(@timeout){
90
- udp.connect(host, @port)
91
- udp.send(@data, 0)
92
- array = udp.recvfrom(MAX_DATA)
93
- }
94
- rescue Errno::ECONNREFUSED, Errno::ECONNRESET => err
95
- if @@service_check
96
- @exception = err
97
- else
98
- bool = true
99
- end
100
- rescue Exception => err
101
- @exception = err
102
- else
103
- if array[0] == @data
104
- bool = true
105
- end
106
- ensure
107
- udp.close if udp
108
- end
88
+ begin
89
+ Timeout.timeout(@timeout){
90
+ udp.connect(host, @port)
91
+ udp.send(@data, 0)
92
+ array = udp.recvfrom(MAX_DATA)
93
+ }
94
+ rescue Errno::ECONNREFUSED, Errno::ECONNRESET => err
95
+ if @@service_check
96
+ @exception = err
97
+ else
98
+ bool = true
99
+ end
100
+ rescue Exception => err
101
+ @exception = err
102
+ else
103
+ if array[0] == @data
104
+ bool = true
105
+ end
106
+ ensure
107
+ udp.close if udp
108
+ end
109
109
 
110
- # There is no duration if the ping failed
111
- @duration = Time.now - start_time if bool
110
+ # There is no duration if the ping failed
111
+ @duration = Time.now - start_time if bool
112
112
 
113
- bool
114
- end
113
+ bool
114
+ end
115
115
 
116
- alias ping? ping
117
- alias pingecho ping
118
- end
116
+ alias ping? ping
117
+ alias pingecho ping
118
+ end
119
119
  end
data/net-ping.gemspec CHANGED
@@ -2,35 +2,37 @@ require 'rubygems'
2
2
  require 'rbconfig'
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.name = 'net-ping'
6
- gem.version = '1.3.2'
7
- gem.license = 'Artistic 2.0'
8
- gem.author = 'Daniel J. Berger'
9
- gem.email = 'djberg96@gmail.com'
10
- gem.homepage = 'http://www.rubyforge.org/projects/shards'
11
- gem.summary = 'A ping interface for Ruby.'
12
- gem.test_file = 'test/test_net_ping.rb'
13
- gem.has_rdoc = true
14
- gem.files = Dir['**/*'].reject{ |f| f.include?('CVS') }
5
+ gem.name = 'net-ping'
6
+ gem.version = '1.3.3'
7
+ gem.license = 'Artistic 2.0'
8
+ gem.author = 'Daniel J. Berger'
9
+ gem.email = 'djberg96@gmail.com'
10
+ gem.homepage = 'http://www.rubyforge.org/projects/shards'
11
+ gem.summary = 'A ping interface for Ruby.'
12
+ gem.test_file = 'test/test_net_ping.rb'
13
+ gem.has_rdoc = true
14
+ gem.files = Dir['**/*'].reject{ |f| f.include?('git') }
15
15
 
16
- gem.rubyforge_project = 'shards'
17
- gem.extra_rdoc_files = ['README', 'CHANGES', 'doc/ping.txt']
16
+ gem.rubyforge_project = 'shards'
17
+ gem.extra_rdoc_files = ['README', 'CHANGES', 'doc/ping.txt']
18
18
 
19
- gem.add_development_dependency('test-unit', '>= 2.0.3')
19
+ gem.add_development_dependency('test-unit', '>= 2.0.9')
20
20
 
21
- # These dependencies are for Net::Ping::External
22
- if Config::CONFIG['host_os'] =~ /mswin|dos|win32|cygwin|mingw/i
23
- gem.platform = Gem::Platform::CURRENT
24
- gem.add_dependency('windows-pr', '>= 1.0.8')
21
+ # These dependencies are for Net::Ping::External
22
+ if Config::CONFIG['host_os'] =~ /mswin|dos|win32|cygwin|mingw/i &&
23
+ RUBY_PLATFORM != 'java'
24
+ then
25
+ gem.platform = Gem::Platform::CURRENT
26
+ gem.add_dependency('windows-pr', '>= 1.0.8')
25
27
 
26
- if RUBY_VERSION.to_f < 1.9
27
- gem.add_dependency('win32-open3', '>= 0.3.1')
28
- end
29
- end
28
+ if RUBY_VERSION.to_f < 1.9
29
+ gem.add_dependency('win32-open3', '>= 0.3.1')
30
+ end
31
+ end
30
32
 
31
- gem.description = <<-EOF
32
- The net-ping library provides a ping interface for Ruby. It includes
33
- separate TCP, HTTP, ICMP, UDP, WMI (for Windows) and external ping
34
- classes.
35
- EOF
33
+ gem.description = <<-EOF
34
+ The net-ping library provides a ping interface for Ruby. It includes
35
+ separate TCP, HTTP, ICMP, UDP, WMI (for Windows) and external ping
36
+ classes.
37
+ EOF
36
38
  end
@@ -10,9 +10,17 @@ require 'test_net_ping_tcp'
10
10
  require 'test_net_ping_udp'
11
11
 
12
12
  if Process.euid == 0
13
- require 'test_net_ping_icmp'
13
+ require 'test_net_ping_icmp'
14
14
  end
15
15
 
16
- if Config::CONFIG['host_os'] =~ /mswin|win32|dos|cygwin|mingw/i
17
- require 'test_net_ping_wmi'
16
+ if Config::CONFIG['host_os'] =~ /mswin|win32|dos|cygwin|mingw/i &&
17
+ RUBY_PLATFORM != 'java'
18
+ then
19
+ require 'test_net_ping_wmi'
20
+ end
21
+
22
+ class TC_Net_Ping < Test::Unit::TestCase
23
+ def test_net_ping_version
24
+ assert_equal('1.3.3', Net::Ping::VERSION)
25
+ end
18
26
  end