public_suffix 3.0.3 → 3.1.0

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