public_suffix 1.4.6 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.