public_suffix 3.0.3 → 3.1.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/lib/public_suffix.rb CHANGED
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # = Public Suffix
2
4
  #
3
5
  # Domain name parser based on the Public Suffix List.
4
6
  #
5
- # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2019 Simone Carletti <weppos@weppos.net>
6
8
 
7
9
  require_relative "public_suffix/domain"
8
10
  require_relative "public_suffix/version"
@@ -20,9 +22,9 @@ require_relative "public_suffix/list"
20
22
  # but was originally created to meet the needs of browser manufacturers.
21
23
  module PublicSuffix
22
24
 
23
- DOT = ".".freeze
24
- BANG = "!".freeze
25
- STAR = "*".freeze
25
+ DOT = "."
26
+ BANG = "!"
27
+ STAR = "*"
26
28
 
27
29
  # Parses +name+ and returns the {PublicSuffix::Domain} instance.
28
30
  #
@@ -77,6 +79,7 @@ module PublicSuffix
77
79
  if rule.decompose(what).last.nil?
78
80
  raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy"
79
81
  end
82
+
80
83
  # rubocop:enable Style/IfUnlessModifier
81
84
 
82
85
  decompose(what, rule)
@@ -169,6 +172,7 @@ module PublicSuffix
169
172
  return DomainInvalid.new("Name is blank") if name.empty?
170
173
  return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT)
171
174
  return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://")
175
+
172
176
  name
173
177
  end
174
178
 
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # = Public Suffix
2
4
  #
3
5
  # Domain name parser based on the Public Suffix List.
4
6
  #
5
- # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2019 Simone Carletti <weppos@weppos.net>
6
8
 
7
9
  module PublicSuffix
8
10
 
@@ -43,7 +45,7 @@ module PublicSuffix
43
45
  # Initializes with a +tld+, +sld+ and +trd+.
44
46
  # @param [String] tld The TLD (extension)
45
47
  # @param [String] sld The SLD (domain)
46
- # @param [String] tld The TRD (subdomain)
48
+ # @param [String] trd The TRD (subdomain)
47
49
  #
48
50
  # @yield [self] Yields on self.
49
51
  # @yieldparam [PublicSuffix::Domain] self The newly creates instance
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # = Public Suffix
2
4
  #
3
5
  # Domain name parser based on the Public Suffix List.
4
6
  #
5
- # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2019 Simone Carletti <weppos@weppos.net>
6
8
 
7
9
  module PublicSuffix
8
10
 
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # = Public Suffix
2
4
  #
3
5
  # Domain name parser based on the Public Suffix List.
4
6
  #
5
- # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2019 Simone Carletti <weppos@weppos.net>
6
8
 
7
9
  module PublicSuffix
8
10
 
@@ -65,8 +67,8 @@ module PublicSuffix
65
67
  # @param private_domains [Boolean] whether to ignore the private domains section
66
68
  # @return [PublicSuffix::List]
67
69
  def self.parse(input, private_domains: true)
68
- comment_token = "//".freeze
69
- private_token = "===BEGIN PRIVATE DOMAINS===".freeze
70
+ comment_token = "//"
71
+ private_token = "===BEGIN PRIVATE DOMAINS==="
70
72
  section = nil # 1 == ICANN, 2 == PRIVATE
71
73
 
72
74
  new do |list|
@@ -81,6 +83,7 @@ module PublicSuffix
81
83
  # include private domains or stop scanner
82
84
  when line.include?(private_token)
83
85
  break if !private_domains
86
+
84
87
  section = 2
85
88
 
86
89
  # skip comments
@@ -116,6 +119,7 @@ module PublicSuffix
116
119
  # @return [Boolean]
117
120
  def ==(other)
118
121
  return false unless other.is_a?(List)
122
+
119
123
  equal?(other) || @rules == other.rules
120
124
  end
121
125
  alias eql? ==
@@ -170,6 +174,7 @@ module PublicSuffix
170
174
  def find(name, default: default_rule, **options)
171
175
  rule = select(name, **options).inject do |l, r|
172
176
  return r if r.class == Rule::Exception
177
+
173
178
  l.length > r.length ? l : r
174
179
  end
175
180
  rule || default
@@ -201,12 +206,11 @@ module PublicSuffix
201
206
 
202
207
  loop do
203
208
  match = @rules[query]
204
- if !match.nil? && (ignore_private == false || match.private == false)
205
- rules << entry_to_rule(match, query)
206
- end
209
+ rules << entry_to_rule(match, query) if !match.nil? && (ignore_private == false || match.private == false)
207
210
 
208
211
  index += 1
209
212
  break if index >= parts.size
213
+
210
214
  query = parts[index] + DOT + query
211
215
  end
212
216
 
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # = Public Suffix
2
4
  #
3
5
  # Domain name parser based on the Public Suffix List.
4
6
  #
5
- # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2019 Simone Carletti <weppos@weppos.net>
6
8
 
7
9
  module PublicSuffix
8
10
 
@@ -1,10 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ #
1
4
  # = Public Suffix
2
5
  #
3
6
  # Domain name parser based on the Public Suffix List.
4
7
  #
5
- # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
8
+ # Copyright (c) 2009-2019 Simone Carletti <weppos@weppos.net>
6
9
 
7
10
  module PublicSuffix
8
11
  # The current library version.
9
- VERSION = "3.0.3".freeze
12
+ VERSION = "3.1.0"
10
13
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains."
13
13
  s.licenses = ["MIT"]
14
14
 
15
- s.required_ruby_version = ">= 2.1"
15
+ s.required_ruby_version = ">= 2.3"
16
16
 
17
17
  s.require_paths = ["lib"]
18
18
  s.files = `git ls-files`.split("\n")
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "test_helper"
2
4
 
3
5
  class AcceptanceTest < Minitest::Test
data/test/psl_test.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "test_helper"
2
4
  require "public_suffix"
3
5
 
@@ -13,6 +15,7 @@ class PslTest < Minitest::Test
13
15
  line = line.strip
14
16
  next if line.empty?
15
17
  next if line.start_with?("//")
18
+
16
19
  input, output = line.split(", ")
17
20
 
18
21
  # handle the case of eval("null"), it must be eval("nil")
data/test/test_helper.rb CHANGED
@@ -1,6 +1,11 @@
1
- if ENV["COVERALL"]
2
- require "coveralls"
3
- Coveralls.wear!
1
+ # frozen_string_literal: true
2
+
3
+ if ENV["COVERAGE"]
4
+ require "simplecov"
5
+ SimpleCov.start
6
+
7
+ require "codecov"
8
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
4
9
  end
5
10
 
6
11
  require "minitest/autorun"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "test_helper"
2
4
 
3
5
  class PublicSuffix::DomainTest < Minitest::Test
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "test_helper"
2
4
 
3
5
  class ErrorsTest < Minitest::Test
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "test_helper"
2
4
 
3
5
  class PublicSuffix::ListTest < Minitest::Test
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "test_helper"
2
4
 
3
5
  class PublicSuffixTest < Minitest::Test
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "test_helper"
2
4
 
3
5
  class PublicSuffix::RuleTest < Minitest::Test
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: public_suffix
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.1.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: 2018-08-15 00:00:00.000000000 Z
11
+ date: 2019-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -116,15 +116,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: '2.1'
119
+ version: '2.3'
120
120
  required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubyforge_project:
127
- rubygems_version: 2.7.3
126
+ rubygems_version: 3.0.3
128
127
  signing_key:
129
128
  specification_version: 4
130
129
  summary: Domain name parser based on the Public Suffix List.