whois 0.5.2 → 0.5.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/CHANGELOG.rdoc +7 -0
- data/lib/whois/server.rb +4 -4
- data/lib/whois/version.rb +1 -1
- data/test/server_test.rb +61 -19
- data/whois.gemspec +3 -3
- metadata +3 -3
data/CHANGELOG.rdoc
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
= Changelog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
== Release 0.5.3
|
|
5
|
+
|
|
6
|
+
FIXED: self.valid_ipv6?(addr) references valid_v4? instead of valid_ipv4? (closes #300)
|
|
7
|
+
|
|
8
|
+
FIXED: In some rare circumstances the server guessing fails to return the right server but returns an other server instead (closes #260).
|
|
9
|
+
|
|
10
|
+
|
|
4
11
|
== Release 0.5.2
|
|
5
12
|
|
|
6
13
|
* ADDED: Whois::Client.new now accepts a block and yields self.
|
data/lib/whois/server.rb
CHANGED
|
@@ -175,7 +175,7 @@ module Whois
|
|
|
175
175
|
|
|
176
176
|
def self.find_for_tld(qstring)
|
|
177
177
|
definitions(:tld).each do |definition|
|
|
178
|
-
return factory(:tld, *definition) if /#{definition.first}$/ =~ qstring
|
|
178
|
+
return factory(:tld, *definition) if /#{Regexp.escape(definition.first)}$/ =~ qstring
|
|
179
179
|
end
|
|
180
180
|
nil
|
|
181
181
|
end
|
|
@@ -193,9 +193,9 @@ module Whois
|
|
|
193
193
|
return true if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z/ =~ addr
|
|
194
194
|
return true if /\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z/ =~ addr
|
|
195
195
|
# IPv6 (IPv4 compat)
|
|
196
|
-
return true if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:/ =~ addr &&
|
|
197
|
-
return true if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/ =~ addr &&
|
|
198
|
-
return true if /\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/ =~ addr &&
|
|
196
|
+
return true if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:/ =~ addr && valid_ipv4?($')
|
|
197
|
+
return true if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/ =~ addr && valid_ipv4?($')
|
|
198
|
+
return true if /\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/ =~ addr && valid_ipv4?($')
|
|
199
199
|
false
|
|
200
200
|
end
|
|
201
201
|
|
data/lib/whois/version.rb
CHANGED
data/test/server_test.rb
CHANGED
|
@@ -1,57 +1,99 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
3
|
class ServerTest < Test::Unit::TestCase
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
Whois::Server.class_eval { class_variable_set("@@definitions", { :tld => [], :ipv4 =>[], :ipv6 => [] }) }
|
|
7
|
+
end
|
|
8
|
+
|
|
5
9
|
|
|
6
10
|
def test_guess_should_recognize_email
|
|
7
|
-
Server.expects(:find_for_email).with("email@example.org").returns(true)
|
|
8
|
-
assert Server.guess("email@example.org")
|
|
11
|
+
Whois::Server.expects(:find_for_email).with("email@example.org").returns(true)
|
|
12
|
+
assert Whois::Server.guess("email@example.org")
|
|
9
13
|
end
|
|
10
14
|
|
|
11
15
|
def test_guess_should_recognize_tld
|
|
12
|
-
Server.expects(:find_for_tld).with("google.com").returns(true)
|
|
13
|
-
assert Server.guess("google.com")
|
|
16
|
+
Whois::Server.expects(:find_for_tld).with("google.com").returns(true)
|
|
17
|
+
assert Whois::Server.guess("google.com")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_guess_should_recognize_ipv4
|
|
21
|
+
Whois::Server.expects(:find_for_ipv4).with("192.168.1.1").returns(true)
|
|
22
|
+
assert Whois::Server.guess("192.168.1.1")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_guess_should_recognize_ipv6
|
|
26
|
+
Whois::Server.expects(:find_for_ipv6).with("2001:0db8:85a3:0000:0000:8a2e:0370:7334").returns(true)
|
|
27
|
+
assert Whois::Server.guess("2001:0db8:85a3:0000:0000:8a2e:0370:7334")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_guess_should_recognize_ipv6_with_zeros_group
|
|
31
|
+
Whois::Server.expects(:find_for_ipv6).with("2002::1").returns(true)
|
|
32
|
+
assert Whois::Server.guess("2002::1")
|
|
14
33
|
end
|
|
15
34
|
|
|
16
35
|
def test_guess_should_raise_servernotfound_with_unrecognized_query
|
|
17
|
-
assert_raise(ServerNotFound){ Server.guess("xyz") }
|
|
36
|
+
assert_raise(Whois::ServerNotFound){ Whois::Server.guess("xyz") }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def test_find_for_tld_should_not_consider_dot_as_regexp_instruction
|
|
41
|
+
Whois::Server.define(:tld, ".no.com", "whois.no.com")
|
|
42
|
+
Whois::Server.define(:tld, ".com", "whois.com")
|
|
43
|
+
assert_equal "whois.com", Whois::Server.guess("antoniocangiano.com").host
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_find_for_ipv6_should_factory_ipv6_with_ipv4_compatibility
|
|
47
|
+
Whois::Server.define(:ipv6, "::192.168.1.1", "whois.foo")
|
|
48
|
+
Whois::Server.expects(:factory).with(:ipv6, any_parameters).returns(true)
|
|
49
|
+
assert Whois::Server.guess("::192.168.1.1")
|
|
18
50
|
end
|
|
19
51
|
|
|
20
52
|
|
|
21
53
|
def test_definitions
|
|
22
|
-
assert_instance_of Hash, Server.definitions
|
|
54
|
+
assert_instance_of Hash, Whois::Server.definitions
|
|
23
55
|
end
|
|
24
56
|
|
|
25
57
|
def test_definitions_with_key
|
|
26
|
-
assert_equal nil, Server.definitions(:foo)
|
|
27
|
-
Server.define(:foo, ".foo", "whois.foo")
|
|
28
|
-
assert_equal [[".foo", "whois.foo", {}]], Server.definitions(:foo)
|
|
58
|
+
assert_equal nil, Whois::Server.definitions(:foo)
|
|
59
|
+
Whois::Server.define(:foo, ".foo", "whois.foo")
|
|
60
|
+
assert_equal [[".foo", "whois.foo", {}]], Whois::Server.definitions(:foo)
|
|
29
61
|
end
|
|
30
62
|
|
|
31
63
|
|
|
32
64
|
def test_define_tld
|
|
33
|
-
Server.define(:tld, ".foo", "whois.foo")
|
|
34
|
-
assert_equal [".foo", "whois.foo", {}], Server.definitions[:tld].last
|
|
65
|
+
Whois::Server.define(:tld, ".foo", "whois.foo")
|
|
66
|
+
assert_equal [".foo", "whois.foo", {}], Whois::Server.definitions[:tld].last
|
|
35
67
|
end
|
|
36
68
|
|
|
37
69
|
def test_define_tld_with_options
|
|
38
|
-
Server.define(:tld, ".foo", "whois.foo", :foo => "bar")
|
|
39
|
-
assert_equal [".foo", "whois.foo", { :foo => "bar" }], Server.definitions[:tld].last
|
|
70
|
+
Whois::Server.define(:tld, ".foo", "whois.foo", :foo => "bar")
|
|
71
|
+
assert_equal [".foo", "whois.foo", { :foo => "bar" }], Whois::Server.definitions[:tld].last
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_define_ipv4
|
|
75
|
+
Whois::Server.define(:ipv4, ".foo", "whois.foo")
|
|
76
|
+
assert_equal [".foo", "whois.foo", {}], Whois::Server.definitions[:ipv4].last
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_define_ipv4_with_options
|
|
80
|
+
Whois::Server.define(:ipv4, ".foo", "whois.foo", :foo => "bar")
|
|
81
|
+
assert_equal [".foo", "whois.foo", { :foo => "bar" }], Whois::Server.definitions[:ipv4].last
|
|
40
82
|
end
|
|
41
83
|
|
|
42
84
|
|
|
43
85
|
def test_factory
|
|
44
|
-
server = Server.factory(:tld, ".foo", "whois.foo")
|
|
45
|
-
assert_instance_of Server::Adapters::Standard, server
|
|
86
|
+
server = Whois::Server.factory(:tld, ".foo", "whois.foo")
|
|
87
|
+
assert_instance_of Whois::Server::Adapters::Standard, server
|
|
46
88
|
end
|
|
47
89
|
|
|
48
90
|
def test_factory_with_adapter
|
|
49
|
-
server = Server.factory(:tld, ".foo", "whois.foo", :adapter => Server::Adapters::None)
|
|
50
|
-
assert_instance_of Server::Adapters::None, server
|
|
91
|
+
server = Whois::Server.factory(:tld, ".foo", "whois.foo", :adapter => Whois::Server::Adapters::None)
|
|
92
|
+
assert_instance_of Whois::Server::Adapters::None, server
|
|
51
93
|
end
|
|
52
94
|
|
|
53
95
|
def test_factory_with_adapter_should_delete_adapter_option
|
|
54
|
-
server = Server.factory(:tld, ".foo", "whois.foo", :adapter => Server::Adapters::None, :foo => "bar")
|
|
96
|
+
server = Whois::Server.factory(:tld, ".foo", "whois.foo", :adapter => Whois::Server::Adapters::None, :foo => "bar")
|
|
55
97
|
assert_equal server.options, { :foo => "bar" }
|
|
56
98
|
end
|
|
57
99
|
|
data/whois.gemspec
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = %q{whois}
|
|
5
|
-
s.version = "0.5.
|
|
5
|
+
s.version = "0.5.3"
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Simone Carletti"]
|
|
9
|
-
s.date = %q{2009-
|
|
9
|
+
s.date = %q{2009-09-18}
|
|
10
10
|
s.default_executable = %q{ruby-whois}
|
|
11
11
|
s.description = %q{ Whois is an intelligent WHOIS client written in pure Ruby. It enables you to query registry data for ipv4, ipv6 and top level domains.
|
|
12
12
|
}
|
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Whois", "--main", "README.rdoc"]
|
|
19
19
|
s.require_paths = ["lib"]
|
|
20
20
|
s.rubyforge_project = %q{whois}
|
|
21
|
-
s.rubygems_version = %q{1.3.
|
|
21
|
+
s.rubygems_version = %q{1.3.4}
|
|
22
22
|
s.summary = %q{An intelligent pure Ruby WHOIS client.}
|
|
23
23
|
s.test_files = ["test/adapters/afilias_test.rb", "test/adapters/none_test.rb", "test/adapters/not_implemented_test.rb", "test/adapters/pir_test.rb", "test/adapters/standard_test.rb", "test/adapters/verisign_test.rb", "test/adapters/web_test.rb", "test/client_test.rb", "test/deprecated_test.rb", "test/server_test.rb", "test/test_helper.rb", "test/whois_test.rb"]
|
|
24
24
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: whois
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Simone Carletti
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2009-
|
|
12
|
+
date: 2009-09-18 00:00:00 +02:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -161,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
161
161
|
requirements: []
|
|
162
162
|
|
|
163
163
|
rubyforge_project: whois
|
|
164
|
-
rubygems_version: 1.3.
|
|
164
|
+
rubygems_version: 1.3.4
|
|
165
165
|
signing_key:
|
|
166
166
|
specification_version: 3
|
|
167
167
|
summary: An intelligent pure Ruby WHOIS client.
|