public_suffix 4.0.7 → 5.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +17 -6
- data/.github/workflows/psl-update.yml +38 -0
- data/.github/workflows/release.yml +5 -3
- data/.github/workflows/tests.yml +9 -7
- data/.rubocop.yml +1 -0
- data/.rubocop_opinionated.yml +0 -28
- data/CHANGELOG.md +27 -0
- data/Gemfile +2 -2
- data/LICENSE.txt +1 -1
- data/README.md +10 -3
- data/Rakefile +3 -3
- data/data/list.txt +613 -821
- data/lib/public_suffix/domain.rb +1 -1
- data/lib/public_suffix/errors.rb +1 -1
- data/lib/public_suffix/list.rb +2 -2
- data/lib/public_suffix/rule.rb +6 -6
- data/lib/public_suffix/version.rb +3 -4
- data/lib/public_suffix.rb +2 -2
- data/public_suffix.gemspec +1 -1
- data/test/acceptance_test.rb +4 -4
- data/test/psl_test.rb +1 -1
- data/test/unit/domain_test.rb +3 -3
- data/test/unit/list_test.rb +1 -1
- data/test/unit/rule_test.rb +15 -15
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e1af6bf3459567ad50f3e92f35193b0950f65126fb70eefb3b996857e27355b
|
4
|
+
data.tar.gz: 37035f8608cf236276841847274d5a44ae6e648de84a682fbf4d6b3b0e55911e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9e211288208da6264e7ea5cb66098a19a07a26754d9c9f3a038c2a557306fb697ce4e325fb70e3d3806771e84491b3e6f35861670f6582b3ea0ed901234eef8
|
7
|
+
data.tar.gz: f01180755194f5c30dd49025dac3794c7ad5287dc5ef49129b27521aba03361efc1e6ab4f7f0e9474a391db83dd8498455b5e2537f78f64158a52de12e518065
|
data/.github/dependabot.yml
CHANGED
@@ -1,8 +1,19 @@
|
|
1
1
|
version: 2
|
2
2
|
updates:
|
3
|
-
- package-ecosystem: bundler
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
- package-ecosystem: bundler
|
4
|
+
directory: "/"
|
5
|
+
schedule:
|
6
|
+
interval: daily
|
7
|
+
time: "04:00"
|
8
|
+
open-pull-requests-limit: 10
|
9
|
+
labels:
|
10
|
+
- dependencies
|
11
|
+
|
12
|
+
- package-ecosystem: "github-actions"
|
13
|
+
directory: "/"
|
14
|
+
schedule:
|
15
|
+
interval: "daily"
|
16
|
+
time: "04:00"
|
17
|
+
open-pull-requests-limit: 10
|
18
|
+
labels:
|
19
|
+
- dependencies
|
@@ -0,0 +1,38 @@
|
|
1
|
+
name: PSL Update
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
schedule:
|
6
|
+
- cron: '40 6 * * *'
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
update:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
steps:
|
12
|
+
|
13
|
+
- name: Checkout
|
14
|
+
uses: actions/checkout@v3
|
15
|
+
|
16
|
+
- name: Set up Ruby
|
17
|
+
uses: ruby/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
ruby-version: "3.1"
|
20
|
+
bundler-cache: true
|
21
|
+
|
22
|
+
- name: Update PSL
|
23
|
+
run: bundle exec rake update-list
|
24
|
+
|
25
|
+
- name: Create Pull Request
|
26
|
+
uses: peter-evans/create-pull-request@v5
|
27
|
+
with:
|
28
|
+
title: PSL auto-update
|
29
|
+
commit-message: Updated list from source
|
30
|
+
reviewers: weppos
|
31
|
+
add-paths: |
|
32
|
+
data/list.txt
|
33
|
+
|
34
|
+
- name: Check Pull Request
|
35
|
+
if: ${{ steps.cpr.outputs.pull-request-number }}
|
36
|
+
run: |
|
37
|
+
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
|
38
|
+
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
|
@@ -1,16 +1,18 @@
|
|
1
|
-
name:
|
1
|
+
name: Release
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
5
|
tags:
|
6
6
|
- v*.*.*
|
7
|
+
|
7
8
|
jobs:
|
8
9
|
release:
|
9
10
|
runs-on: ubuntu-latest
|
10
11
|
steps:
|
11
|
-
-
|
12
|
+
- name: Checkout
|
13
|
+
uses: actions/checkout@v3
|
12
14
|
- name: Release Gem
|
13
|
-
uses: cadwallion/publish-rubygems-action@
|
15
|
+
uses: cadwallion/publish-rubygems-action@94a6f4cd5350581749c569b5001eecc864e3ad0b
|
14
16
|
env:
|
15
17
|
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
16
18
|
RELEASE_COMMAND: rake release
|
data/.github/workflows/tests.yml
CHANGED
@@ -6,7 +6,7 @@ on:
|
|
6
6
|
workflow_dispatch:
|
7
7
|
|
8
8
|
jobs:
|
9
|
-
|
9
|
+
test:
|
10
10
|
strategy:
|
11
11
|
matrix:
|
12
12
|
ruby-version:
|
@@ -14,15 +14,17 @@ jobs:
|
|
14
14
|
- "2.7"
|
15
15
|
- "3.0"
|
16
16
|
- "3.1"
|
17
|
-
|
18
|
-
runs-on:
|
17
|
+
- "3.2"
|
18
|
+
runs-on: ubuntu-latest
|
19
19
|
steps:
|
20
|
-
-
|
20
|
+
- name: Checkout
|
21
|
+
uses: actions/checkout@v3
|
21
22
|
- name: Set up Ruby
|
22
23
|
uses: ruby/setup-ruby@v1
|
23
24
|
with:
|
24
25
|
ruby-version: ${{ matrix.ruby-version }}
|
25
|
-
|
26
|
-
|
26
|
+
bundler-cache: true
|
27
|
+
- name: Rubocop
|
28
|
+
run: bundle exec rake rubocop
|
27
29
|
- name: Run tests
|
28
|
-
run: bundle exec rake
|
30
|
+
run: bundle exec rake test
|
data/.rubocop.yml
CHANGED
data/.rubocop_opinionated.yml
CHANGED
@@ -15,12 +15,6 @@ Layout/LineLength:
|
|
15
15
|
- 'test/**/*_test.rb'
|
16
16
|
Max: 100
|
17
17
|
|
18
|
-
Lint/ConstantDefinitionInBlock:
|
19
|
-
Exclude:
|
20
|
-
- 'Rakefile'
|
21
|
-
- 'spec/**/*'
|
22
|
-
- 'test/**/*'
|
23
|
-
|
24
18
|
# [codesmell]
|
25
19
|
Metrics/AbcSize:
|
26
20
|
Enabled: false
|
@@ -101,12 +95,6 @@ Layout/EmptyLinesAroundModuleBody:
|
|
101
95
|
Layout/EmptyLineBetweenDefs:
|
102
96
|
Enabled: false
|
103
97
|
|
104
|
-
# I personally don't care about the format style.
|
105
|
-
# In most cases I like to use %, but not at the point I want to enforce it
|
106
|
-
# as a convention in the entire code.
|
107
|
-
Style/FormatString:
|
108
|
-
Enabled: false
|
109
|
-
|
110
98
|
# Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
|
111
99
|
# %s is a simpler and straightforward version that works in almost all cases. So don't complain.
|
112
100
|
Style/FormatStringToken:
|
@@ -116,11 +104,6 @@ Style/FormatStringToken:
|
|
116
104
|
Style/NegatedIf:
|
117
105
|
Enabled: false
|
118
106
|
|
119
|
-
# For years, %w() has been the de-facto standard. A lot of libraries are using ().
|
120
|
-
# Switching to [] would be a nightmare.
|
121
|
-
Style/PercentLiteralDelimiters:
|
122
|
-
Enabled: false
|
123
|
-
|
124
107
|
# There are cases were the inline rescue is ok. We can either downgrade the severity,
|
125
108
|
# or rely on the developer judgement on a case-by-case basis.
|
126
109
|
Style/RescueModifier:
|
@@ -129,17 +112,6 @@ Style/RescueModifier:
|
|
129
112
|
Style/SymbolArray:
|
130
113
|
EnforcedStyle: brackets
|
131
114
|
|
132
|
-
# Sorry, but using trailing spaces helps readability.
|
133
|
-
#
|
134
|
-
# %w( foo bar )
|
135
|
-
#
|
136
|
-
# looks better to me than
|
137
|
-
#
|
138
|
-
# %w( foo bar )
|
139
|
-
#
|
140
|
-
Layout/SpaceInsidePercentLiteralDelimiters:
|
141
|
-
Enabled: false
|
142
|
-
|
143
115
|
# Hate It or Love It, I prefer double quotes as this is more consistent
|
144
116
|
# with several other programming languages and the output of puts and inspect.
|
145
117
|
Style/StringLiterals:
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,33 @@
|
|
2
2
|
|
3
3
|
This project uses [Semantic Versioning 2.0.0](https://semver.org/).
|
4
4
|
|
5
|
+
## 5.0.3
|
6
|
+
|
7
|
+
### Fixed
|
8
|
+
|
9
|
+
- Fixed automated release workflow.
|
10
|
+
|
11
|
+
## 5.0.2
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
|
15
|
+
- Updated definitions.
|
16
|
+
|
17
|
+
## 5.0.1
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
|
21
|
+
- Updated definitions.
|
22
|
+
|
23
|
+
|
24
|
+
## 5.0.0
|
25
|
+
|
26
|
+
### Changed
|
27
|
+
|
28
|
+
- Minimum Ruby version is 2.6
|
29
|
+
|
30
|
+
- Updated definitions.
|
31
|
+
|
5
32
|
|
6
33
|
## 4.0.7
|
7
34
|
|
data/Gemfile
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
## Requirements
|
18
18
|
|
19
|
-
<tt>PublicSuffix</tt> requires **Ruby >= 2.
|
19
|
+
<tt>PublicSuffix</tt> requires **Ruby >= 2.6**. For an older versions of Ruby use a previous release.
|
20
20
|
|
21
21
|
|
22
22
|
## Installation
|
@@ -150,6 +150,13 @@ PublicSuffix.domain("something.blogspot.com")
|
|
150
150
|
# => "blogspot.com"
|
151
151
|
```
|
152
152
|
|
153
|
+
## Add domain to list
|
154
|
+
|
155
|
+
If you want to manually add a domain to the list just run:
|
156
|
+
|
157
|
+
```ruby
|
158
|
+
PublicSuffix::List.default << PublicSuffix::Rule.factory('onmicrosoft.com')
|
159
|
+
```
|
153
160
|
|
154
161
|
## What is the Public Suffix List?
|
155
162
|
|
@@ -202,7 +209,7 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details.
|
|
202
209
|
|
203
210
|
## License
|
204
211
|
|
205
|
-
Copyright (c) 2009-
|
212
|
+
Copyright (c) 2009-2023 Simone Carletti. This is Free Software distributed under the MIT license.
|
206
213
|
|
207
214
|
The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0.
|
208
215
|
|
@@ -214,4 +221,4 @@ sld = Second level domain, a domain that is directly below a top-level domain. F
|
|
214
221
|
|
215
222
|
trd = Transit routing domain, or known as a subdomain. This is the part of the domain that is before the sld or root domain. For example, in `https://www.mozilla.org/en-US/`, `www` is the trd.
|
216
223
|
|
217
|
-
FQDN = Fully Qualified Domain Names, are domain names that are written with the hostname and the domain name, and include the top-level domain, the format looks like `[hostname].[domain].[tld].` for ex. `[www].[mozilla].[org]`.
|
224
|
+
FQDN = Fully Qualified Domain Names, are domain names that are written with the hostname and the domain name, and include the top-level domain, the format looks like `[hostname].[domain].[tld].` for ex. `[www].[mozilla].[org]`.
|
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ task default: [:test, :rubocop]
|
|
9
9
|
require "rake/testtask"
|
10
10
|
|
11
11
|
Rake::TestTask.new do |t|
|
12
|
-
t.libs = %w
|
12
|
+
t.libs = %w[lib test]
|
13
13
|
t.pattern = "test/**/*_test.rb"
|
14
14
|
t.verbose = !ENV["VERBOSE"].nil?
|
15
15
|
t.warning = !ENV["WARNING"].nil?
|
@@ -42,10 +42,10 @@ desc "Downloads the Public Suffix List file from the repository and stores it lo
|
|
42
42
|
task :"update-list" do
|
43
43
|
require "net/http"
|
44
44
|
|
45
|
-
|
45
|
+
definition_url = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat"
|
46
46
|
|
47
47
|
File.open("data/list.txt", "w+") do |f|
|
48
|
-
response = Net::HTTP.get_response(URI.parse(
|
48
|
+
response = Net::HTTP.get_response(URI.parse(definition_url))
|
49
49
|
response.body
|
50
50
|
f.write(response.body)
|
51
51
|
end
|