public_suffix 1.4.6 → 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.
@@ -1,21 +1,21 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: public_suffix 1.4.5 ruby lib
2
+ # stub: public_suffix 1.4.6 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "public_suffix"
6
- s.version = "1.4.5"
6
+ s.version = "1.4.6"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib"]
10
10
  s.authors = ["Simone Carletti"]
11
- s.date = "2014-08-18"
11
+ s.date = "2015-03-24"
12
12
  s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains."
13
13
  s.email = "weppos@weppos.net"
14
- s.files = [".gemtest", ".gitignore", ".travis.yml", ".yardopts", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "lib/definitions.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"]
14
+ s.files = [".gemtest", ".gitignore", ".ruby-gemset", ".travis.yml", ".yardopts", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/definitions.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"]
15
15
  s.homepage = "http://simonecarletti.com/code/publicsuffix"
16
16
  s.licenses = ["MIT"]
17
- s.required_ruby_version = Gem::Requirement.new(">= 1.9.3")
18
- s.rubygems_version = "2.2.2"
17
+ s.required_ruby_version = Gem::Requirement.new(">= 2.0")
18
+ s.rubygems_version = "2.4.5"
19
19
  s.summary = "Domain name parser based on the Public Suffix List."
20
20
  s.test_files = ["test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"]
21
21
 
@@ -2,16 +2,16 @@ require 'test_helper'
2
2
 
3
3
  class AcceptanceTest < Test::Unit::TestCase
4
4
 
5
- ValidCases = {
6
- "google.com" => [nil, "google", "com"],
7
- "foo.google.com" => ["foo", "google", "com"],
5
+ ValidCases = [
6
+ ["google.com", [nil, "google", "com"]],
7
+ ["foo.google.com", ["foo", "google", "com"]],
8
8
 
9
- "verybritish.co.uk" => [nil, "verybritish", "co.uk"],
10
- "foo.verybritish.co.uk" => ["foo", "verybritish", "co.uk"],
9
+ ["verybritish.co.uk", [nil, "verybritish", "co.uk"]],
10
+ ["foo.verybritish.co.uk", ["foo", "verybritish", "co.uk"]],
11
11
 
12
- "parliament.uk" => [nil, "parliament", "uk"],
13
- "foo.parliament.uk" => ["foo", "parliament", "uk"],
14
- }
12
+ ["parliament.uk", [nil, "parliament", "uk"]],
13
+ ["foo.parliament.uk", ["foo", "parliament", "uk"]],
14
+ ]
15
15
 
16
16
  def test_valid
17
17
  ValidCases.each do |name, results|
@@ -24,19 +24,55 @@ class AcceptanceTest < Test::Unit::TestCase
24
24
  end
25
25
  end
26
26
 
27
+
27
28
  InvalidCases = [
28
- ["nic.ke", PublicSuffix::DomainNotAllowed],
29
- ["http://www.google.com", PublicSuffix::DomainInvalid],
30
- [nil, PublicSuffix::DomainInvalid],
31
- ["", PublicSuffix::DomainInvalid],
32
- [" ", PublicSuffix::DomainInvalid],
29
+ ["nic.ke", PublicSuffix::DomainNotAllowed],
30
+ [nil, PublicSuffix::DomainInvalid],
31
+ ["", PublicSuffix::DomainInvalid],
32
+ [" ", PublicSuffix::DomainInvalid],
33
33
  ]
34
34
 
35
35
  def test_invalid
36
36
  InvalidCases.each do |(name, error)|
37
- assert_raise(error) { PublicSuffix.parse(name) }
37
+ assert_raises(error) { PublicSuffix.parse(name) }
38
38
  assert !PublicSuffix.valid?(name)
39
39
  end
40
40
  end
41
41
 
42
+
43
+ RejectedCases = [
44
+ ["www. .com", true],
45
+ ["foo.co..uk", true],
46
+ ["goo,gle.com", true],
47
+ ["-google.com", true],
48
+ ["google-.com", true],
49
+
50
+ # This case was covered in GH-15.
51
+ # I decide to cover this case because it's not easily reproducible with URI.parse
52
+ # and can lead to several false positives.
53
+ ["http://google.com", false],
54
+ ]
55
+
56
+ def test_rejected
57
+ RejectedCases.each do |name, expected|
58
+ assert_equal expected, PublicSuffix.valid?(name)
59
+ assert !valid_domain?(name), "#{name} expected to be invalid"
60
+ end
61
+ end
62
+
63
+
64
+ def valid_uri?(name)
65
+ uri = URI.parse(name)
66
+ uri.host != nil
67
+ rescue
68
+ false
69
+ end
70
+
71
+ def valid_domain?(name)
72
+ uri = URI.parse(name)
73
+ uri.host != nil && uri.scheme.nil?
74
+ rescue
75
+ false
76
+ end
77
+
42
78
  end
@@ -89,11 +89,6 @@ class PublicSuffix::ListTest < Test::Unit::TestCase
89
89
  assert_equal 2, list.select("british-library.uk").size
90
90
  end
91
91
 
92
- def test_select_returns_empty_when_domain_has_scheme
93
- assert_equal [], list.select("http://google.com")
94
- assert_not_equal [], list.select("google.com")
95
- end
96
-
97
92
  def test_select_returns_empty_when_domain_is_nil
98
93
  assert_equal [], list.select(nil)
99
94
  end
@@ -103,6 +98,11 @@ class PublicSuffix::ListTest < Test::Unit::TestCase
103
98
  assert_equal [], list.select(" ")
104
99
  end
105
100
 
101
+ def test_select_returns_empty_when_domain_has_scheme
102
+ assert_equal [], list.select("http://google.com")
103
+ assert_not_equal [], list.select("google.com")
104
+ end
105
+
106
106
 
107
107
  def test_self_default_getter
108
108
  assert_equal nil, PublicSuffix::List.class_eval { @default }
@@ -78,17 +78,17 @@ class PublicSuffixTest < Test::Unit::TestCase
78
78
  end
79
79
 
80
80
  def test_self_parse_raises_with_invalid_domain
81
- error = assert_raise(PublicSuffix::DomainInvalid) { PublicSuffix.parse("example.qqq") }
81
+ error = assert_raises(PublicSuffix::DomainInvalid) { PublicSuffix.parse("example.qqq") }
82
82
  assert_match %r{example\.qqq}, error.message
83
83
  end
84
84
 
85
85
  def test_self_parse_raises_with_unallowed_domain
86
- error = assert_raise(PublicSuffix::DomainNotAllowed) { PublicSuffix.parse("example.ke") }
86
+ error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.parse("example.ke") }
87
87
  assert_match %r{example\.ke}, error.message
88
88
  end
89
89
 
90
90
  def test_self_raises_with_uri
91
- error = assert_raise(PublicSuffix::DomainInvalid) { PublicSuffix.parse("http://google.com") }
91
+ error = assert_raises(PublicSuffix::DomainInvalid) { PublicSuffix.parse("http://google.com") }
92
92
  assert_match %r{http://google\.com}, error.message
93
93
  end
94
94
 
@@ -74,15 +74,15 @@ class PublicSuffix::RuleBaseTest < Test::Unit::TestCase
74
74
  end
75
75
 
76
76
  def test_length
77
- assert_raise(NotImplementedError) { @klass.new("com").length }
77
+ assert_raises(NotImplementedError) { @klass.new("com").length }
78
78
  end
79
79
 
80
80
  def test_parts
81
- assert_raise(NotImplementedError) { @klass.new("com").parts }
81
+ assert_raises(NotImplementedError) { @klass.new("com").parts }
82
82
  end
83
83
 
84
84
  def test_decompose
85
- assert_raise(NotImplementedError) { @klass.new("com").decompose("google.com") }
85
+ assert_raises(NotImplementedError) { @klass.new("com").decompose("google.com") }
86
86
  end
87
87
 
88
88
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: public_suffix
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.6
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simone Carletti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-10 00:00:00.000000000 Z
11
+ date: 2015-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mocha
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: yard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: PublicSuffix can parse and decompose a domain name into top level domain,
@@ -59,16 +59,17 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gemtest
63
- - .gitignore
64
- - .travis.yml
65
- - .yardopts
62
+ - ".gemtest"
63
+ - ".gitignore"
64
+ - ".ruby-gemset"
65
+ - ".travis.yml"
66
+ - ".yardopts"
66
67
  - CHANGELOG.md
67
68
  - Gemfile
68
69
  - LICENSE.txt
69
70
  - README.md
70
71
  - Rakefile
71
- - lib/definitions.txt
72
+ - data/definitions.txt
72
73
  - lib/public_suffix.rb
73
74
  - lib/public_suffix/domain.rb
74
75
  - lib/public_suffix/errors.rb
@@ -93,17 +94,17 @@ require_paths:
93
94
  - lib
94
95
  required_ruby_version: !ruby/object:Gem::Requirement
95
96
  requirements:
96
- - - '>='
97
+ - - ">="
97
98
  - !ruby/object:Gem::Version
98
- version: 1.9.3
99
+ version: '2.0'
99
100
  required_rubygems_version: !ruby/object:Gem::Requirement
100
101
  requirements:
101
- - - '>='
102
+ - - ">="
102
103
  - !ruby/object:Gem::Version
103
104
  version: '0'
104
105
  requirements: []
105
106
  rubyforge_project:
106
- rubygems_version: 2.2.2
107
+ rubygems_version: 2.4.5
107
108
  signing_key:
108
109
  specification_version: 4
109
110
  summary: Domain name parser based on the Public Suffix List.