domain_name 0.5.0 → 0.5.1
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/VERSION +1 -1
- data/domain_name.gemspec +15 -11
- data/lib/domain_name.rb +5 -2
- data/test/test_domain_name.rb +20 -0
- metadata +25 -25
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.1
|
data/domain_name.gemspec
CHANGED
@@ -4,14 +4,18 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.5.
|
7
|
+
s.name = %q{domain_name}
|
8
|
+
s.version = "0.5.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
|
11
|
+
s.authors = [%q{Akinori MUSHA}]
|
12
|
+
s.date = %q{2011-11-09}
|
13
|
+
s.description = %q{This is a Domain Name manipulation library for Ruby.
|
14
|
+
|
15
|
+
It can also be used for cookie domain validation based on the Public
|
16
|
+
Suffix List.
|
17
|
+
}
|
18
|
+
s.email = %q{knu@idaemons.org}
|
15
19
|
s.extra_rdoc_files = [
|
16
20
|
"LICENSE.txt",
|
17
21
|
"README.md"
|
@@ -34,11 +38,11 @@ Gem::Specification.new do |s|
|
|
34
38
|
"test/test_domain_name.rb",
|
35
39
|
"tool/gen_etld_data.rb"
|
36
40
|
]
|
37
|
-
s.homepage =
|
38
|
-
s.licenses = [
|
39
|
-
s.require_paths = [
|
40
|
-
s.rubygems_version =
|
41
|
-
s.summary =
|
41
|
+
s.homepage = %q{http://github.com/knu/ruby-domain_name}
|
42
|
+
s.licenses = [%q{BSD + MPL 1.1/GPL 2.0/LGPL 2.1}]
|
43
|
+
s.require_paths = [%q{lib}]
|
44
|
+
s.rubygems_version = %q{1.8.5}
|
45
|
+
s.summary = %q{Domain Name manipulation library for Ruby}
|
42
46
|
|
43
47
|
if s.respond_to? :specification_version then
|
44
48
|
s.specification_version = 3
|
data/lib/domain_name.rb
CHANGED
@@ -58,6 +58,9 @@ class DomainName
|
|
58
58
|
# Parses _hostname_ into a DomainName object. An IP address is also
|
59
59
|
# accepted. An IPv6 address may be enclosed in square brackets.
|
60
60
|
def initialize(hostname)
|
61
|
+
hostname.is_a?(String) or
|
62
|
+
(hostname.respond_to?(:to_str) && (hostname = hostname.to_str).is_a?(String)) or
|
63
|
+
raise TypeError, "#{hostname.class} is not a String"
|
61
64
|
if hostname.start_with?(DOT)
|
62
65
|
raise ArgumentError, "domain name must not start with a dot: #{hostname}"
|
63
66
|
end
|
@@ -146,10 +149,10 @@ class DomainName
|
|
146
149
|
othername = other.hostname
|
147
150
|
if othername == @hostname
|
148
151
|
0
|
149
|
-
elsif @hostname.end_with?(othername) && @hostname[-othername.size - 1] ==
|
152
|
+
elsif @hostname.end_with?(othername) && @hostname[-othername.size - 1, 1] == DOT
|
150
153
|
# The other is higher
|
151
154
|
-1
|
152
|
-
elsif othername.end_with?(@hostname) && othername[-@hostname.size - 1] ==
|
155
|
+
elsif othername.end_with?(@hostname) && othername[-@hostname.size - 1, 1] == DOT
|
153
156
|
# The other is lower
|
154
157
|
1
|
155
158
|
else
|
data/test/test_domain_name.rb
CHANGED
@@ -14,6 +14,26 @@ class TestDomainName < Test::Unit::TestCase
|
|
14
14
|
}
|
15
15
|
end
|
16
16
|
|
17
|
+
should "accept a String-alike for initialization" do
|
18
|
+
Object.new.tap { |obj|
|
19
|
+
def obj.to_str
|
20
|
+
"Example.org"
|
21
|
+
end
|
22
|
+
assert_equal "example.org", DomainName.new(obj).hostname
|
23
|
+
}
|
24
|
+
|
25
|
+
Object.new.tap { |obj|
|
26
|
+
def obj.to_str
|
27
|
+
123
|
28
|
+
end
|
29
|
+
assert_raises(TypeError) { DomainName.new(obj) }
|
30
|
+
}
|
31
|
+
|
32
|
+
Object.new.tap { |obj|
|
33
|
+
assert_raises(TypeError) { DomainName.new(obj) }
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
17
37
|
should "parse canonical domain names correctly" do
|
18
38
|
[
|
19
39
|
# Mixed case.
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: domain_name
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 1
|
10
|
+
version: 0.5.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Akinori MUSHA
|
@@ -15,10 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-11-
|
18
|
+
date: 2011-11-09 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
name: unf
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
23
|
none: false
|
23
24
|
requirements:
|
24
25
|
- - ~>
|
@@ -29,12 +30,12 @@ dependencies:
|
|
29
30
|
- 0
|
30
31
|
- 3
|
31
32
|
version: 0.0.3
|
32
|
-
version_requirements: *id001
|
33
|
-
name: unf
|
34
|
-
prerelease: false
|
35
33
|
type: :runtime
|
34
|
+
requirement: *id001
|
35
|
+
prerelease: false
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
37
|
+
name: shoulda
|
38
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
39
|
none: false
|
39
40
|
requirements:
|
40
41
|
- - ">="
|
@@ -43,12 +44,12 @@ dependencies:
|
|
43
44
|
segments:
|
44
45
|
- 0
|
45
46
|
version: "0"
|
46
|
-
version_requirements: *id002
|
47
|
-
name: shoulda
|
48
|
-
prerelease: false
|
49
47
|
type: :development
|
48
|
+
requirement: *id002
|
49
|
+
prerelease: false
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
|
-
|
51
|
+
name: bundler
|
52
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
52
53
|
none: false
|
53
54
|
requirements:
|
54
55
|
- - ~>
|
@@ -59,12 +60,12 @@ dependencies:
|
|
59
60
|
- 0
|
60
61
|
- 0
|
61
62
|
version: 1.0.0
|
62
|
-
version_requirements: *id003
|
63
|
-
name: bundler
|
64
|
-
prerelease: false
|
65
63
|
type: :development
|
64
|
+
requirement: *id003
|
65
|
+
prerelease: false
|
66
66
|
- !ruby/object:Gem::Dependency
|
67
|
-
|
67
|
+
name: jeweler
|
68
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
68
69
|
none: false
|
69
70
|
requirements:
|
70
71
|
- - ~>
|
@@ -75,12 +76,12 @@ dependencies:
|
|
75
76
|
- 6
|
76
77
|
- 4
|
77
78
|
version: 1.6.4
|
78
|
-
version_requirements: *id004
|
79
|
-
name: jeweler
|
80
|
-
prerelease: false
|
81
79
|
type: :development
|
80
|
+
requirement: *id004
|
81
|
+
prerelease: false
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
|
83
|
+
name: rcov
|
84
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
84
85
|
none: false
|
85
86
|
requirements:
|
86
87
|
- - ">="
|
@@ -89,10 +90,9 @@ dependencies:
|
|
89
90
|
segments:
|
90
91
|
- 0
|
91
92
|
version: "0"
|
92
|
-
version_requirements: *id005
|
93
|
-
name: rcov
|
94
|
-
prerelease: false
|
95
93
|
type: :development
|
94
|
+
requirement: *id005
|
95
|
+
prerelease: false
|
96
96
|
description: |
|
97
97
|
This is a Domain Name manipulation library for Ruby.
|
98
98
|
|
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
153
|
requirements: []
|
154
154
|
|
155
155
|
rubyforge_project:
|
156
|
-
rubygems_version: 1.8.
|
156
|
+
rubygems_version: 1.8.5
|
157
157
|
signing_key:
|
158
158
|
specification_version: 3
|
159
159
|
summary: Domain Name manipulation library for Ruby
|