net-ping 1.4.1 → 1.5.0

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/CHANGES CHANGED
@@ -1,3 +1,9 @@
1
+ == 1.5.0 - 3-May-2011
2
+ * Added the Net::Ping::LDAP class which allows you to perform LDAP pings.
3
+ Thanks go to Paul Gallagher for adding this.
4
+ * The duration instance variable is now reset to nil on a failed ping. Again,
5
+ thanks go to Paul Gallagher.
6
+
1
7
  == 1.4.1 - 17-Mar-2011
2
8
  * Incorporated changes from Lukas Zapletal that alters the icmp tests to use
3
9
  your localhost instead of going outside the network.
data/MANIFEST CHANGED
@@ -9,6 +9,7 @@
9
9
  * examples/example_pingudp.rb
10
10
  * lib/net/ping.rb
11
11
  * lib/net/ping/icmp.rb
12
+ * lib/net/ping/ldap.rb
12
13
  * lib/net/ping/tcp.rb
13
14
  * lib/net/ping/udp.rb
14
15
  * lib/net/ping/wmi.rb
@@ -17,6 +18,7 @@
17
18
  * test/test_net_ping_external.rb
18
19
  * test/test_net_ping_http.rb
19
20
  * test/test_net_ping_icmp.rb
21
+ * test/test_net_ping_ldap.rb
20
22
  * test/test_net_ping_tcp.rb
21
23
  * test/test_net_ping_udp.rb
22
24
  * test/test_net_ping_wmi.rb
data/Rakefile CHANGED
@@ -39,6 +39,11 @@ namespace 'example' do
39
39
  task :udp do
40
40
  ruby '-Ilib examples/example_pingudp.rb'
41
41
  end
42
+
43
+ desc 'Run the ldap ping example program'
44
+ task :ldap do
45
+ ruby '-Ilib examples/example_pingldap.rb'
46
+ end
42
47
  end
43
48
 
44
49
  Rake::TestTask.new do |t|
@@ -84,6 +89,12 @@ namespace 'test' do
84
89
  t.verbose = true
85
90
  t.test_files = FileList['test/test_net_ping_wmi.rb']
86
91
  end
92
+
93
+ Rake::TestTask.new('ldap') do |t|
94
+ t.warning = true
95
+ t.verbose = true
96
+ t.test_files = FileList['test/test_net_ping_ldap.rb']
97
+ end
87
98
  end
88
99
 
89
100
  task :default => :test
data/doc/ping.txt CHANGED
@@ -43,6 +43,7 @@
43
43
  * Ping::HTTP
44
44
  * Ping::ICMP
45
45
  * Ping::WMI
46
+ * Ping::LDAP
46
47
 
47
48
  All Ping classes are children of the Ping parent class (which should
48
49
  never be instantiated directly).
@@ -135,6 +136,30 @@ Ping::WMI#ping(host, options={})
135
136
  Ping::WMI#ping?(host, options={})
136
137
  Returns whether or not the ping succeeded.
137
138
 
139
+ == Ping::LDAP
140
+ Ping::LDAP.new(uri=nil, timeout=5)
141
+ Performs a 'ping' to an LDAP server in the form of either an anonymous
142
+ or an authenticated LDAP bind.
143
+ Identical to Net::Ping.new except that, instead of a host, the first
144
+ argument is a URI.
145
+ The default +timeout+ is 5 seconds.
146
+
147
+ +uri+ string is expected to be a full URI with scheme (ldap/ldaps)
148
+ and optionally the port (else default port is assumed) e.g.
149
+ ldap://my.ldap.host.com
150
+ ldap://my.ldap.host.com:1389
151
+ ldaps://my.ldap.host.com
152
+ ldaps://my.ldap.host.com:6636
153
+
154
+ If a plain hostname is provided as the +uri+, a default port of 389 is assumed
155
+
156
+ Ping::LDAP#encryption
157
+ Set/get the encyption method. By default is nil, but may be set to :simple_tls
158
+
159
+ Ping::LDAP#username
160
+ Ping::LDAP#password
161
+ set/get the username and password for ping using and authenticated bind.
162
+
138
163
  = Common Instance Methods
139
164
  Ping#exception
140
165
  Returns the error string that was set if a ping call failed. If an exception
@@ -0,0 +1,22 @@
1
+ ########################################################################
2
+ # example_pingldap.rb
3
+ #
4
+ # A short sample program demonstrating an ldap ping. You can run
5
+ # this program via the example:ldap task. Modify as you see fit.
6
+ ########################################################################
7
+ require 'net/ping/ldap'
8
+
9
+ good = 'ldap://localhost'
10
+ bad = 'ldap://example.com'
11
+
12
+ puts "== Good ping (if you have an ldap server at #{good})"
13
+
14
+ p1 = Net::Ping::LDAP.new(good)
15
+ p p1.ping?
16
+
17
+ puts "== Bad ping"
18
+
19
+ p2 = Net::Ping::LDAP.new(bad)
20
+ p p2.ping?
21
+ p p2.warning
22
+ p p2.exception
data/lib/net/ping.rb CHANGED
@@ -9,6 +9,7 @@ require File.join(File.dirname(__FILE__), 'ping/udp')
9
9
  require File.join(File.dirname(__FILE__), 'ping/icmp')
10
10
  require File.join(File.dirname(__FILE__), 'ping/external')
11
11
  require File.join(File.dirname(__FILE__), 'ping/http')
12
+ require File.join(File.dirname(__FILE__), 'ping/ldap')
12
13
 
13
14
  if Config::CONFIG['host_os'] =~ /msdos|mswin|cygwin|mingw|win32|windows/i
14
15
  require File.join(File.dirname(__FILE__), 'ping/wmi')
@@ -0,0 +1,107 @@
1
+ require File.join(File.dirname(__FILE__), 'ping')
2
+ require 'net/ldap'
3
+ require 'uri'
4
+
5
+
6
+ # The Net module serves as a namespace only.
7
+ module Net
8
+
9
+ # The Ping::LDAP class encapsulates methods for LDAP pings.
10
+ class Ping::LDAP < Ping
11
+
12
+ # uri contains the URI object for the request
13
+ #
14
+ attr_accessor :uri
15
+
16
+ # username and password may be set for ping using
17
+ # an authenticated LDAP bind
18
+ #
19
+ attr_accessor :username
20
+ attr_accessor :password
21
+
22
+ # set/get the encryption method. By default nil,
23
+ # but may be set to :simple_tls
24
+ #
25
+ attr_accessor :encryption
26
+ def encryption=(value)
27
+ @encryption = (value.is_a? Symbol) ? value : value.to_sym
28
+ end
29
+
30
+ # Creates and returns a new Ping::LDAP object.
31
+ # The default +timeout+ is 5 seconds.
32
+ #
33
+ # +uri+ string is expected to be a full URI with scheme (ldap/ldaps)
34
+ # and optionally the port (else default port is assumed) e.g.
35
+ # ldap://my.ldap.host.com
36
+ # ldap://my.ldap.host.com:1389
37
+ # ldaps://my.ldap.host.com
38
+ # ldaps://my.ldap.host.com:6636
39
+ #
40
+ # If a plain hostname is provided as the +uri+, a default port of 389 is assumed
41
+ #
42
+ def initialize(uri=nil, timeout=5)
43
+ host, port = decode_uri(uri)
44
+ super(host, port, timeout)
45
+ end
46
+
47
+ # method used to decode uri string
48
+ #
49
+ def decode_uri(value)
50
+ @uri = URI.parse(value)
51
+ if uri.scheme =~ /ldap/
52
+ p = @port = uri.port
53
+ h = @host = uri.host
54
+ @encryption = uri.scheme=='ldaps' ? :simple_tls : nil
55
+ else
56
+ h = value
57
+ p = 389
58
+ end
59
+ [h, p]
60
+ end
61
+
62
+ # constructs the LDAP configuration structure
63
+ #
64
+ def config
65
+ {
66
+ :host => uri.host,
67
+ :port => uri.port,
68
+ :encryption => encryption
69
+ }.merge(
70
+ (username && password) ?
71
+ { :auth => {:method => :simple, :username => username, :password => password} } :
72
+ { :auth => {:method => :anonymous} }
73
+ )
74
+ end
75
+
76
+ # perform ping, optionally providing the ping destination uri
77
+ #
78
+ def ping(host = nil)
79
+ decode_uri(host) if host
80
+ super(@host)
81
+
82
+ bool = false
83
+
84
+ start_time = Time.now
85
+
86
+ begin
87
+ Timeout.timeout(@timeout) do
88
+ Net::LDAP.new( config ).bind
89
+ end
90
+ rescue Net::LDAP::LdapError => e
91
+ @exception = e.message
92
+ rescue Exception => e
93
+ @exception = e.message
94
+ else
95
+ bool = true
96
+ end
97
+
98
+ # There is no duration if the ping failed
99
+ @duration = Time.now - start_time if bool
100
+
101
+ bool
102
+ end
103
+
104
+ alias ping? ping
105
+ alias pingecho ping
106
+ end
107
+ end
data/lib/net/ping/ping.rb CHANGED
@@ -10,7 +10,7 @@ module Net
10
10
  #
11
11
  class Ping
12
12
  # The version of the net-ping library.
13
- VERSION = '1.4.1'
13
+ VERSION = '1.5.0'
14
14
 
15
15
  # The host to ping. In the case of Ping::HTTP, this is the URI.
16
16
  attr_accessor :host
@@ -80,6 +80,7 @@ module Net
80
80
  raise ArgumentError, 'no host specified' unless host
81
81
  @exception = nil
82
82
  @warning = nil
83
+ @duration = nil
83
84
  end
84
85
 
85
86
  alias ping? ping
data/net-ping.gemspec CHANGED
@@ -3,21 +3,22 @@ require 'rbconfig'
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.name = 'net-ping'
6
- gem.version = '1.4.1'
6
+ gem.version = '1.5.0'
7
7
  gem.license = 'Artistic 2.0'
8
8
  gem.author = 'Daniel J. Berger'
9
9
  gem.email = 'djberg96@gmail.com'
10
10
  gem.homepage = 'http://www.rubyforge.org/projects/shards'
11
11
  gem.summary = 'A ping interface for Ruby.'
12
12
  gem.test_file = 'test/test_net_ping.rb'
13
- gem.has_rdoc = true
14
13
  gem.files = Dir['**/*'].reject{ |f| f.include?('git') }
15
14
 
16
15
  gem.rubyforge_project = 'shards'
17
16
  gem.extra_rdoc_files = ['README', 'CHANGES', 'doc/ping.txt']
18
17
 
18
+ gem.add_dependency('net-ldap', '~> 0.2.2')
19
19
  gem.add_development_dependency('test-unit', '>= 2.1.2')
20
20
  gem.add_development_dependency('fakeweb', '>= 1.3.0')
21
+ gem.add_development_dependency('fakeldap', '~> 0.0.1')
21
22
 
22
23
  # These dependencies are for Net::Ping::External
23
24
  if File::ALT_SEPARATOR && RUBY_PLATFORM != 'java'
@@ -32,7 +33,7 @@ Gem::Specification.new do |gem|
32
33
 
33
34
  gem.description = <<-EOF
34
35
  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
+ separate TCP, HTTP, LDAP, ICMP, UDP, WMI (for Windows) and external ping
36
37
  classes.
37
38
  EOF
38
39
  end
@@ -30,7 +30,7 @@ end
30
30
 
31
31
  class TC_Net_Ping < Test::Unit::TestCase
32
32
  def test_net_ping_version
33
- assert_equal('1.4.1', Net::Ping::VERSION)
33
+ assert_equal('1.5.0', Net::Ping::VERSION)
34
34
  end
35
35
  end
36
36
 
@@ -59,6 +59,13 @@ class TC_Net_Ping_External < Test::Unit::TestCase
59
59
  assert_kind_of(Float, @pe.duration)
60
60
  end
61
61
 
62
+ test "duration is unset if a bad ping follows a good ping" do
63
+ assert_nothing_raised{ @pe.ping }
64
+ assert_not_nil(@pe.duration)
65
+ assert_false(@pe.ping?(@bogus))
66
+ assert_nil(@pe.duration)
67
+ end
68
+
62
69
  test "host getter basic functionality" do
63
70
  assert_respond_to(@pe, :host)
64
71
  assert_equal('www.ruby-lang.org', @pe.host)
@@ -0,0 +1,200 @@
1
+ #################################################################################
2
+ # test_net_ping_http.rb
3
+ #
4
+ # Test case for the Net::PingHTTP class. This should be run via the 'test' or
5
+ # 'test:http' Rake task.
6
+ #################################################################################
7
+ require 'rubygems'
8
+ gem 'test-unit'
9
+
10
+ require 'test/unit'
11
+ require 'net/ping/ldap'
12
+ require 'fakeldap'
13
+
14
+ class TC_Net_Ping_LDAP < Test::Unit::TestCase
15
+ class << self
16
+ def startup
17
+ @@host = 'localhost'
18
+ @@port = 2389
19
+ @@uri = "ldap://#{@@host}:#{@@port}"
20
+ @@timeout = 30
21
+ @@cn = 'el.Daper'
22
+ @@password = 'ldappassword'
23
+
24
+ @@ldap_server = FakeLDAP::Server.new(:port => @@port)
25
+ @@ldap_server.run_tcpserver
26
+ @@ldap_server.add_user("cn=#{@@cn},ou=USERS,dc=example,dc=com", @@password)
27
+ end
28
+ def shutdown
29
+ @@ldap_server.stop
30
+ end
31
+ end
32
+ def setup
33
+ @ldap = Net::Ping::LDAP.new(@@uri, @@timeout)
34
+ @ldap.username = @@cn
35
+ @ldap.password = @@password
36
+ @bogus = 'ldap://blabfoobarurghxxxx.com' # One hopes so
37
+ @bad = Net::Ping::LDAP.new(@bogus)
38
+ end
39
+
40
+ def teardown
41
+ @ldap = nil
42
+ end
43
+
44
+ test 'ping basic functionality' do
45
+ assert_respond_to(@ldap, :ping)
46
+ assert_nothing_raised{ @ldap.ping }
47
+ end
48
+
49
+ test 'ping returns a boolean value' do
50
+ assert_boolean(@ldap.ping?)
51
+ assert_boolean(@bad.ping?)
52
+ end
53
+
54
+ test 'ping? is an alias for ping' do
55
+ assert_alias_method(@ldap, :ping?, :ping)
56
+ end
57
+
58
+ test 'pingecho is an alias for ping' do
59
+ assert_alias_method(@ldap, :pingecho, :ping)
60
+ end
61
+
62
+ test 'ping should succeed for a valid website' do
63
+ assert_true(@ldap.ping?)
64
+ end
65
+
66
+ test 'ping should fail for an invalid website' do
67
+ assert_false(@bad.ping?)
68
+ end
69
+
70
+ test 'duration basic functionality' do
71
+ assert_respond_to(@ldap, :duration)
72
+ assert_nothing_raised{ @ldap.ping }
73
+ end
74
+
75
+ test 'duration returns a float value on a successful ping' do
76
+ assert_true(@ldap.ping)
77
+ assert_kind_of(Float, @ldap.duration)
78
+ end
79
+
80
+ test 'duration is nil on an unsuccessful ping' do
81
+ assert_false(@bad.ping)
82
+ assert_nil(@ldap.duration)
83
+ end
84
+
85
+ test "duration is unset if a bad ping follows a good ping" do
86
+ assert_true{ @ldap.ping }
87
+ assert_not_nil(@ldap.duration)
88
+ assert_false(@ldap.ping?(@bogus))
89
+ assert_nil(@ldap.duration)
90
+ end
91
+
92
+ test 'host attribute basic functionality' do
93
+ assert_respond_to(@ldap, :host)
94
+ assert_respond_to(@ldap, :host=)
95
+ assert_equal(@@host, @ldap.host)
96
+ end
97
+
98
+ test 'port attribute basic functionality' do
99
+ assert_respond_to(@ldap, :port)
100
+ assert_respond_to(@ldap, :port=)
101
+ end
102
+
103
+ test 'port attribute expected value' do
104
+ assert_equal(@@port, @ldap.port)
105
+ end
106
+
107
+ test 'timeout attribute basic functionality' do
108
+ assert_respond_to(@ldap, :timeout)
109
+ assert_respond_to(@ldap, :timeout=)
110
+ end
111
+
112
+ test 'timeout attribute expected values' do
113
+ assert_equal(@@timeout, @ldap.timeout)
114
+ assert_equal(5, @bad.timeout)
115
+ end
116
+
117
+ test 'exception attribute basic functionality' do
118
+ assert_respond_to(@ldap, :exception)
119
+ assert_nil(@ldap.exception)
120
+ end
121
+
122
+ test 'exception attribute is nil if the ping is successful' do
123
+ assert_true(@ldap.ping)
124
+ assert_nil(@ldap.exception)
125
+ end
126
+
127
+ test 'exception attribute is not nil if the ping is unsuccessful' do
128
+ assert_false(@bad.ping)
129
+ assert_not_nil(@bad.exception)
130
+ end
131
+
132
+ test 'warning attribute basic functionality' do
133
+ assert_respond_to(@ldap, :warning)
134
+ assert_nil(@ldap.warning)
135
+ end
136
+
137
+ test 'uri attribute basic functionality' do
138
+ assert_respond_to(@ldap, :uri)
139
+ assert_respond_to(@ldap, :uri=)
140
+ end
141
+
142
+ test 'username attribute basic functionality' do
143
+ assert_respond_to(@ldap, :username)
144
+ assert_respond_to(@ldap, :username=)
145
+ end
146
+
147
+ test 'password attribute basic functionality' do
148
+ assert_respond_to(@ldap, :password)
149
+ assert_respond_to(@ldap, :password=)
150
+ end
151
+
152
+ test 'encryption attribute basic functionality' do
153
+ assert_respond_to(@ldap, :encryption)
154
+ assert_respond_to(@ldap, :encryption=)
155
+ end
156
+
157
+ test 'encryption defaults to nil for ldap' do
158
+ assert_nil(Net::Ping::LDAP.new('ldap://somehost.example.net').encryption)
159
+ end
160
+
161
+ test 'encryption defaults to simple_tls for ldaps' do
162
+ assert_equal(:simple_tls, Net::Ping::LDAP.new('ldaps://somehost.example.net').encryption)
163
+ end
164
+
165
+ test 'port defaults to 389 for ldap' do
166
+ assert_equal(389, Net::Ping::LDAP.new('ldap://somehost.example.net').port)
167
+ end
168
+
169
+ test 'port defaults to 636 for ldaps' do
170
+ assert_equal(636, Net::Ping::LDAP.new('ldaps://somehost.example.net').port)
171
+ end
172
+
173
+ test 'port extracted from uri if provided' do
174
+ assert_equal(12345, Net::Ping::LDAP.new('ldap://somehost.example.net:12345').port)
175
+ assert_equal(12345, Net::Ping::LDAP.new('ldaps://somehost.example.net:12345').port)
176
+ end
177
+
178
+ test 'encryption setting is forced to symbol' do
179
+ @ldap.encryption = 'simple_tls'
180
+ assert_true( @ldap.encryption.is_a? Symbol )
181
+ assert_true( @ldap.config[:encryption].is_a? Symbol )
182
+ end
183
+
184
+ test 'username/password set in config auth section' do
185
+ @ldap.username, @ldap.password = 'fred', 'derf'
186
+ assert_equal('fred', @ldap.config[:auth][:username] )
187
+ assert_equal('derf', @ldap.config[:auth][:password] )
188
+ end
189
+
190
+ test 'auth method defaults to simple if username/password set' do
191
+ @ldap.username, @ldap.password = 'fred', 'derf'
192
+ assert_equal(:simple, @ldap.config[:auth][:method] )
193
+ end
194
+
195
+ test 'if no username/password then defaults to auth anonymous' do
196
+ @ldap.username = @ldap.password = nil
197
+ assert_equal({:method => :anonymous}, @ldap.config[:auth] )
198
+ end
199
+
200
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ping
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
5
- prerelease: false
4
+ hash: 3
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
- - 4
9
- - 1
10
- version: 1.4.1
8
+ - 5
9
+ - 0
10
+ version: 1.5.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel J. Berger
@@ -15,13 +15,29 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-17 00:00:00 -06:00
18
+ date: 2011-05-04 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: test-unit
22
+ name: net-ldap
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 19
30
+ segments:
31
+ - 0
32
+ - 2
33
+ - 2
34
+ version: 0.2.2
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: test-unit
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
25
41
  none: false
26
42
  requirements:
27
43
  - - ">="
@@ -33,11 +49,11 @@ dependencies:
33
49
  - 2
34
50
  version: 2.1.2
35
51
  type: :development
36
- version_requirements: *id001
52
+ version_requirements: *id002
37
53
  - !ruby/object:Gem::Dependency
38
54
  name: fakeweb
39
55
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
56
+ requirement: &id003 !ruby/object:Gem::Requirement
41
57
  none: false
42
58
  requirements:
43
59
  - - ">="
@@ -49,8 +65,24 @@ dependencies:
49
65
  - 0
50
66
  version: 1.3.0
51
67
  type: :development
52
- version_requirements: *id002
53
- description: " The net-ping library provides a ping interface for Ruby. It includes\n separate TCP, HTTP, ICMP, UDP, WMI (for Windows) and external ping\n classes.\n"
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: fakeldap
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 29
78
+ segments:
79
+ - 0
80
+ - 0
81
+ - 1
82
+ version: 0.0.1
83
+ type: :development
84
+ version_requirements: *id004
85
+ description: " The net-ping library provides a ping interface for Ruby. It includes\n separate TCP, HTTP, LDAP, ICMP, UDP, WMI (for Windows) and external ping\n classes.\n"
54
86
  email: djberg96@gmail.com
55
87
  executables: []
56
88
 
@@ -61,31 +93,34 @@ extra_rdoc_files:
61
93
  - CHANGES
62
94
  - doc/ping.txt
63
95
  files:
64
- - CHANGES
96
+ - Rakefile
97
+ - README
65
98
  - doc/ping.txt
66
- - examples/example_pingexternal.rb
67
- - examples/example_pinghttp.rb
68
- - examples/example_pingtcp.rb
69
- - examples/example_pingudp.rb
99
+ - lib/net/ping.rb
70
100
  - lib/net/ping/external.rb
71
- - lib/net/ping/http.rb
72
101
  - lib/net/ping/icmp.rb
102
+ - lib/net/ping/wmi.rb
103
+ - lib/net/ping/udp.rb
73
104
  - lib/net/ping/ping.rb
105
+ - lib/net/ping/ldap.rb
106
+ - lib/net/ping/http.rb
74
107
  - lib/net/ping/tcp.rb
75
- - lib/net/ping/udp.rb
76
- - lib/net/ping/wmi.rb
77
- - lib/net/ping.rb
78
- - MANIFEST
79
108
  - net-ping.gemspec
80
- - Rakefile
81
- - README
82
- - test/test_net_ping.rb
83
- - test/test_net_ping_external.rb
109
+ - CHANGES
110
+ - examples/example_pinghttp.rb
111
+ - examples/example_pingldap.rb
112
+ - examples/example_pingexternal.rb
113
+ - examples/example_pingtcp.rb
114
+ - examples/example_pingudp.rb
115
+ - test/test_net_ping_ldap.rb
84
116
  - test/test_net_ping_http.rb
85
117
  - test/test_net_ping_icmp.rb
86
- - test/test_net_ping_tcp.rb
87
118
  - test/test_net_ping_udp.rb
88
119
  - test/test_net_ping_wmi.rb
120
+ - test/test_net_ping_external.rb
121
+ - test/test_net_ping_tcp.rb
122
+ - test/test_net_ping.rb
123
+ - MANIFEST
89
124
  has_rdoc: true
90
125
  homepage: http://www.rubyforge.org/projects/shards
91
126
  licenses:
@@ -116,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
151
  requirements: []
117
152
 
118
153
  rubyforge_project: shards
119
- rubygems_version: 1.3.7
154
+ rubygems_version: 1.6.2
120
155
  signing_key:
121
156
  specification_version: 3
122
157
  summary: A ping interface for Ruby.