public_suffix 4.0.7 → 5.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +10 -3
  5. data/SECURITY.md +2 -81
  6. data/data/list.txt +3521 -1966
  7. data/lib/public_suffix/domain.rb +1 -1
  8. data/lib/public_suffix/errors.rb +1 -1
  9. data/lib/public_suffix/list.rb +2 -2
  10. data/lib/public_suffix/rule.rb +6 -6
  11. data/lib/public_suffix/version.rb +3 -4
  12. data/lib/public_suffix.rb +2 -2
  13. metadata +9 -42
  14. data/.github/FUNDING.yml +0 -12
  15. data/.github/dependabot.yml +0 -8
  16. data/.github/workflows/release.yml +0 -16
  17. data/.github/workflows/tests.yml +0 -28
  18. data/.gitignore +0 -8
  19. data/.rubocop.yml +0 -36
  20. data/.rubocop_opinionated.yml +0 -163
  21. data/Gemfile +0 -14
  22. data/Rakefile +0 -52
  23. data/bin/console +0 -15
  24. data/public_suffix.gemspec +0 -29
  25. data/test/.empty +0 -2
  26. data/test/acceptance_test.rb +0 -131
  27. data/test/benchmarks/bm_find.rb +0 -66
  28. data/test/benchmarks/bm_find_all.rb +0 -102
  29. data/test/benchmarks/bm_names.rb +0 -91
  30. data/test/benchmarks/bm_select.rb +0 -26
  31. data/test/benchmarks/bm_select_incremental.rb +0 -25
  32. data/test/benchmarks/bm_valid.rb +0 -101
  33. data/test/profilers/domain_profiler.rb +0 -12
  34. data/test/profilers/find_profiler.rb +0 -12
  35. data/test/profilers/find_profiler_jp.rb +0 -12
  36. data/test/profilers/initialization_profiler.rb +0 -11
  37. data/test/profilers/list_profsize.rb +0 -11
  38. data/test/profilers/object_binsize.rb +0 -57
  39. data/test/psl_test.rb +0 -52
  40. data/test/test_helper.rb +0 -10
  41. data/test/tests.txt +0 -98
  42. data/test/unit/domain_test.rb +0 -106
  43. data/test/unit/errors_test.rb +0 -25
  44. data/test/unit/list_test.rb +0 -241
  45. data/test/unit/public_suffix_test.rb +0 -188
  46. data/test/unit/rule_test.rb +0 -222
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Domain name parser based on the Public Suffix List.
6
6
  #
7
- # Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2024 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Domain name parser based on the Public Suffix List.
6
6
  #
7
- # Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2024 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Domain name parser based on the Public Suffix List.
6
6
  #
7
- # Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2024 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -87,7 +87,7 @@ module PublicSuffix
87
87
  section = 2
88
88
 
89
89
  # skip comments
90
- when line.start_with?(comment_token)
90
+ when line.start_with?(comment_token) # rubocop:disable Lint/DuplicateBranch
91
91
  next
92
92
 
93
93
  else
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Domain name parser based on the Public Suffix List.
6
6
  #
7
- # Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2024 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -125,7 +125,7 @@ module PublicSuffix
125
125
  # @param private [Boolean]
126
126
  def initialize(value:, length: nil, private: false)
127
127
  @value = value.to_s
128
- @length = length || @value.count(DOT) + 1
128
+ @length = length || (@value.count(DOT) + 1)
129
129
  @private = private
130
130
  end
131
131
 
@@ -161,7 +161,7 @@ module PublicSuffix
161
161
  # @param name [String] the domain name to check
162
162
  # @return [Boolean]
163
163
  def match?(name)
164
- # Note: it works because of the assumption there are no
164
+ # NOTE: it works because of the assumption there are no
165
165
  # rules like foo.*.com. If the assumption is incorrect,
166
166
  # we need to properly walk the input and skip parts according
167
167
  # to wildcard component.
@@ -221,7 +221,7 @@ module PublicSuffix
221
221
  # @param content [String] the content of the rule
222
222
  # @param private [Boolean]
223
223
  def self.build(content, private: false)
224
- new(value: content.to_s[2..-1], private: private)
224
+ new(value: content.to_s[2..], private: private)
225
225
  end
226
226
 
227
227
  # Initializes a new rule.
@@ -269,7 +269,7 @@ module PublicSuffix
269
269
  # @param content [#to_s] the content of the rule
270
270
  # @param private [Boolean]
271
271
  def self.build(content, private: false)
272
- new(value: content.to_s[1..-1], private: private)
272
+ new(value: content.to_s[1..], private: private)
273
273
  end
274
274
 
275
275
  # Gets the original rule definition.
@@ -299,7 +299,7 @@ module PublicSuffix
299
299
  #
300
300
  # @return [Array<String>]
301
301
  def parts
302
- @value.split(DOT)[1..-1]
302
+ @value.split(DOT)[1..]
303
303
  end
304
304
 
305
305
  end
@@ -1,15 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- #
4
3
  # = Public Suffix
5
4
  #
6
5
  # Domain name parser based on the Public Suffix List.
7
6
  #
8
- # Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2024 Simone Carletti <weppos@weppos.net>
9
8
 
10
9
  module PublicSuffix
11
10
 
12
- # @return [String] The current library version.
13
- VERSION = "4.0.7"
11
+ # @return [String] the current library version
12
+ VERSION = "5.0.5"
14
13
 
15
14
  end
data/lib/public_suffix.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Domain name parser based on the Public Suffix List.
6
6
  #
7
- # Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2024 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  require_relative "public_suffix/domain"
10
10
  require_relative "public_suffix/version"
@@ -169,7 +169,7 @@ module PublicSuffix
169
169
 
170
170
  return DomainInvalid.new("Name is blank") if name.empty?
171
171
  return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT)
172
- return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://")
172
+ return DomainInvalid.new(format("%s is not expected to contain a scheme", name)) if name.include?("://")
173
173
 
174
174
  name
175
175
  end
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: 4.0.7
4
+ version: 5.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simone Carletti
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-12 00:00:00.000000000 Z
11
+ date: 2024-04-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: PublicSuffix can parse and decompose a domain name into top level domain,
14
14
  domain and subdomains.
@@ -19,22 +19,12 @@ extensions: []
19
19
  extra_rdoc_files:
20
20
  - LICENSE.txt
21
21
  files:
22
- - ".github/FUNDING.yml"
23
- - ".github/dependabot.yml"
24
- - ".github/workflows/release.yml"
25
- - ".github/workflows/tests.yml"
26
- - ".gitignore"
27
- - ".rubocop.yml"
28
- - ".rubocop_opinionated.yml"
29
22
  - ".yardopts"
30
23
  - 2.0-Upgrade.md
31
24
  - CHANGELOG.md
32
- - Gemfile
33
25
  - LICENSE.txt
34
26
  - README.md
35
- - Rakefile
36
27
  - SECURITY.md
37
- - bin/console
38
28
  - data/list.txt
39
29
  - lib/public_suffix.rb
40
30
  - lib/public_suffix/domain.rb
@@ -42,39 +32,16 @@ files:
42
32
  - lib/public_suffix/list.rb
43
33
  - lib/public_suffix/rule.rb
44
34
  - lib/public_suffix/version.rb
45
- - public_suffix.gemspec
46
- - test/.empty
47
- - test/acceptance_test.rb
48
- - test/benchmarks/bm_find.rb
49
- - test/benchmarks/bm_find_all.rb
50
- - test/benchmarks/bm_names.rb
51
- - test/benchmarks/bm_select.rb
52
- - test/benchmarks/bm_select_incremental.rb
53
- - test/benchmarks/bm_valid.rb
54
- - test/profilers/domain_profiler.rb
55
- - test/profilers/find_profiler.rb
56
- - test/profilers/find_profiler_jp.rb
57
- - test/profilers/initialization_profiler.rb
58
- - test/profilers/list_profsize.rb
59
- - test/profilers/object_binsize.rb
60
- - test/psl_test.rb
61
- - test/test_helper.rb
62
- - test/tests.txt
63
- - test/unit/domain_test.rb
64
- - test/unit/errors_test.rb
65
- - test/unit/list_test.rb
66
- - test/unit/public_suffix_test.rb
67
- - test/unit/rule_test.rb
68
35
  homepage: https://simonecarletti.com/code/publicsuffix-ruby
69
36
  licenses:
70
37
  - MIT
71
38
  metadata:
72
39
  bug_tracker_uri: https://github.com/weppos/publicsuffix-ruby/issues
73
40
  changelog_uri: https://github.com/weppos/publicsuffix-ruby/blob/master/CHANGELOG.md
74
- documentation_uri: https://rubydoc.info/gems/public_suffix/4.0.7
41
+ documentation_uri: https://rubydoc.info/gems/public_suffix/5.0.5
75
42
  homepage_uri: https://simonecarletti.com/code/publicsuffix-ruby
76
- source_code_uri: https://github.com/weppos/publicsuffix-ruby/tree/v4.0.7
77
- post_install_message:
43
+ source_code_uri: https://github.com/weppos/publicsuffix-ruby/tree/v5.0.5
44
+ post_install_message:
78
45
  rdoc_options: []
79
46
  require_paths:
80
47
  - lib
@@ -82,15 +49,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
49
  requirements:
83
50
  - - ">="
84
51
  - !ruby/object:Gem::Version
85
- version: '2.3'
52
+ version: '2.6'
86
53
  required_rubygems_version: !ruby/object:Gem::Requirement
87
54
  requirements:
88
55
  - - ">="
89
56
  - !ruby/object:Gem::Version
90
57
  version: '0'
91
58
  requirements: []
92
- rubygems_version: 3.3.7
93
- signing_key:
59
+ rubygems_version: 3.5.3
60
+ signing_key:
94
61
  specification_version: 4
95
62
  summary: Domain name parser based on the Public Suffix List.
96
63
  test_files: []
data/.github/FUNDING.yml DELETED
@@ -1,12 +0,0 @@
1
- # These are supported funding model platforms
2
-
3
- github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4
- patreon: # Replace with a single Patreon username
5
- open_collective: # Replace with a single Open Collective username
6
- ko_fi: # Replace with a single Ko-fi username
7
- tidelift: "rubygems/public_suffix"
8
- community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
- liberapay: # Replace with a single Liberapay username
10
- issuehunt: # Replace with a single IssueHunt username
11
- otechie: # Replace with a single Otechie username
12
- custom: # Replace with a single custom sponsorship URL
@@ -1,8 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- time: "04:00"
8
- open-pull-requests-limit: 10
@@ -1,16 +0,0 @@
1
- name: release
2
-
3
- on:
4
- push:
5
- tags:
6
- - v*.*.*
7
- jobs:
8
- release:
9
- runs-on: ubuntu-latest
10
- steps:
11
- - uses: actions/checkout@v2
12
- - name: Release Gem
13
- uses: cadwallion/publish-rubygems-action@8f9e0538302643309e4e43bf48cd34173ca48cfc
14
- env:
15
- RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
16
- RELEASE_COMMAND: rake release
@@ -1,28 +0,0 @@
1
- name: Tests
2
-
3
- on:
4
- push:
5
- pull_request:
6
- workflow_dispatch:
7
-
8
- jobs:
9
- build:
10
- strategy:
11
- matrix:
12
- ruby-version:
13
- - "2.6"
14
- - "2.7"
15
- - "3.0"
16
- - "3.1"
17
- platform: [ubuntu-latest]
18
- runs-on: ${{ matrix.platform }}
19
- steps:
20
- - uses: actions/checkout@v2
21
- - name: Set up Ruby
22
- uses: ruby/setup-ruby@v1
23
- with:
24
- ruby-version: ${{ matrix.ruby-version }}
25
- - name: Install dependencies
26
- run: bundle install
27
- - name: Run tests
28
- run: bundle exec rake
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- # Bundler
2
- /.bundle
3
- /Gemfile.lock
4
- /pkg/*
5
-
6
- # YARD
7
- /.yardoc
8
- /yardoc/
data/.rubocop.yml DELETED
@@ -1,36 +0,0 @@
1
- inherit_from:
2
- - .rubocop_opinionated.yml
3
-
4
- AllCops:
5
- Exclude:
6
- # Exclude .gemspec files because they are generally auto-generated
7
- - '*.gemspec'
8
- # Exclude vendored folders
9
- - 'tmp/**/*'
10
- - 'vendor/**/*'
11
- # Exclude artifacts
12
- - 'pkg/**/*'
13
- # Other
14
- - 'test/benchmarks/**/*'
15
- - 'test/profilers/**/*'
16
-
17
- # I often use @_variable to avoid clashing.
18
- Naming/MemoizedInstanceVariableName:
19
- Enabled: false
20
-
21
- Style/ClassAndModuleChildren:
22
- Exclude:
23
- - 'spec/**/*_spec.rb'
24
- - 'test/**/*_test.rb'
25
-
26
- # Dear Rubocop, I don't want to use String#strip_heredoc
27
- Layout/HeredocIndentation:
28
- Enabled: false
29
-
30
- Style/WordArray:
31
- Enabled: false
32
- MinSize: 3
33
-
34
- Style/SymbolArray:
35
- Enabled: false
36
- MinSize: 3
@@ -1,163 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- # Exclude .gemspec files because they are generally auto-generated
4
- - '*.gemspec'
5
- # Exclude vendored folders
6
- - 'tmp/**/*'
7
- - 'vendor/**/*'
8
- NewCops: enable
9
-
10
- # [codesmell]
11
- Layout/LineLength:
12
- Enabled: false
13
- Exclude:
14
- - 'spec/**/*_spec.rb'
15
- - 'test/**/*_test.rb'
16
- Max: 100
17
-
18
- Lint/ConstantDefinitionInBlock:
19
- Exclude:
20
- - 'Rakefile'
21
- - 'spec/**/*'
22
- - 'test/**/*'
23
-
24
- # [codesmell]
25
- Metrics/AbcSize:
26
- Enabled: false
27
- Exclude:
28
- - 'spec/**/*_spec.rb'
29
- - 'test/**/*_test.rb'
30
-
31
- # [codesmell]
32
- Metrics/BlockLength:
33
- Enabled: false
34
-
35
- # [codesmell]
36
- Metrics/CyclomaticComplexity:
37
- Enabled: false
38
- Exclude:
39
- - 'spec/**/*_spec.rb'
40
- - 'test/**/*_test.rb'
41
-
42
- # [codesmell]
43
- Metrics/ClassLength:
44
- Enabled: false
45
- Exclude:
46
- - 'spec/**/*_spec.rb'
47
- - 'test/**/*_test.rb'
48
-
49
- # [codesmell]
50
- Metrics/MethodLength:
51
- Enabled: false
52
- Exclude:
53
- - 'spec/**/*_spec.rb'
54
- - 'test/**/*_test.rb'
55
- Max: 10
56
-
57
- # [codesmell]
58
- Metrics/ModuleLength:
59
- Enabled: false
60
- Exclude:
61
- - 'spec/**/*_spec.rb'
62
- - 'test/**/*_test.rb'
63
-
64
- # [codesmell]
65
- Metrics/ParameterLists:
66
- Enabled: false
67
- Max: 5
68
-
69
- # [codesmell]
70
- Metrics/PerceivedComplexity:
71
- Enabled: false
72
-
73
- # Do not use "and" or "or" in conditionals, but for readability we can use it
74
- # to chain executions. Just beware of operator order.
75
- Style/AndOr:
76
- EnforcedStyle: conditionals
77
-
78
- Style/Documentation:
79
- Exclude:
80
- - 'spec/**/*'
81
- - 'test/**/*'
82
-
83
- # Double empty lines are useful to separate conceptually different methods
84
- # in the same class or module.
85
- Layout/EmptyLines:
86
- Enabled: false
87
-
88
- # In most cases, a space is nice. Sometimes, it's not.
89
- # Just be consistent with the rest of the surrounding code.
90
- Layout/EmptyLinesAroundClassBody:
91
- Enabled: false
92
-
93
- # In most cases, a space is nice. Sometimes, it's not.
94
- # Just be consistent with the rest of the surrounding code.
95
- Layout/EmptyLinesAroundModuleBody:
96
- Enabled: false
97
-
98
- # This is quite buggy, as it doesn't recognize double lines.
99
- # Double empty lines are useful to separate conceptually different methods
100
- # in the same class or module.
101
- Layout/EmptyLineBetweenDefs:
102
- Enabled: false
103
-
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
- # Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
111
- # %s is a simpler and straightforward version that works in almost all cases. So don't complain.
112
- Style/FormatStringToken:
113
- Enabled: false
114
-
115
- # unless is not always cool.
116
- Style/NegatedIf:
117
- Enabled: false
118
-
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
- # There are cases were the inline rescue is ok. We can either downgrade the severity,
125
- # or rely on the developer judgement on a case-by-case basis.
126
- Style/RescueModifier:
127
- Enabled: false
128
-
129
- Style/SymbolArray:
130
- EnforcedStyle: brackets
131
-
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
- # Hate It or Love It, I prefer double quotes as this is more consistent
144
- # with several other programming languages and the output of puts and inspect.
145
- Style/StringLiterals:
146
- EnforcedStyle: double_quotes
147
-
148
- # It's nice to be consistent. The trailing comma also allows easy reordering,
149
- # and doesn't cause a diff in Git when you add a line to the bottom.
150
- Style/TrailingCommaInArrayLiteral:
151
- EnforcedStyleForMultiline: consistent_comma
152
- Style/TrailingCommaInHashLiteral:
153
- EnforcedStyleForMultiline: consistent_comma
154
-
155
- Style/TrivialAccessors:
156
- # IgnoreClassMethods because I want to be able to define class-level accessors
157
- # that sets an instance variable on the metaclass, such as:
158
- #
159
- # def self.default=(value)
160
- # @default = value
161
- # end
162
- #
163
- IgnoreClassMethods: true
data/Gemfile DELETED
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec
6
-
7
- gem "rake"
8
-
9
- gem "memory_profiler", require: false
10
- gem "minitest"
11
- gem "minitest-reporters"
12
- gem "mocha"
13
- gem "rubocop", "~>0.90", require: false
14
- gem "yard"
data/Rakefile DELETED
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
-
5
- # By default, run tests and linter.
6
- task default: [:test, :rubocop]
7
-
8
-
9
- require "rake/testtask"
10
-
11
- Rake::TestTask.new do |t|
12
- t.libs = %w( lib test )
13
- t.pattern = "test/**/*_test.rb"
14
- t.verbose = !ENV["VERBOSE"].nil?
15
- t.warning = !ENV["WARNING"].nil?
16
- end
17
-
18
- require "rubocop/rake_task"
19
-
20
- RuboCop::RakeTask.new
21
-
22
-
23
- require "yard"
24
- require "yard/rake/yardoc_task"
25
-
26
- YARD::Rake::YardocTask.new(:yardoc) do |y|
27
- y.options = ["--output-dir", "yardoc"]
28
- end
29
-
30
- CLOBBER.include "yardoc"
31
-
32
-
33
- task :benchmarks do
34
- Dir["benchmarks/bm_*.rb"].each do |file|
35
- sh "ruby #{file}"
36
- end
37
- end
38
- task default: [:benchmarks] if ENV["BENCHMARKS"] == "1"
39
-
40
-
41
- desc "Downloads the Public Suffix List file from the repository and stores it locally."
42
- task :"update-list" do
43
- require "net/http"
44
-
45
- DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat"
46
-
47
- File.open("data/list.txt", "w+") do |f|
48
- response = Net::HTTP.get_response(URI.parse(DEFINITION_URL))
49
- response.body
50
- f.write(response.body)
51
- end
52
- end
data/bin/console DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require "bundler/setup"
5
- require "public_suffix"
6
-
7
- # You can add fixtures and/or initialization code here to make experimenting
8
- # with your gem easier. You can also use a different console, if you like.
9
-
10
- # (If you use this, don't forget to add pry to your Gemfile!)
11
- # require "pry"
12
- # Pry.start
13
-
14
- require "irb"
15
- IRB.start
@@ -1,29 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $LOAD_PATH.push File.expand_path("../lib", __FILE__)
3
- require "public_suffix/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "public_suffix"
7
- s.version = PublicSuffix::VERSION
8
- s.authors = ["Simone Carletti"]
9
- s.email = ["weppos@weppos.net"]
10
- s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby"
11
- s.summary = "Domain name parser based on the Public Suffix List."
12
- s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains."
13
- s.licenses = ["MIT"]
14
-
15
- s.metadata = {
16
- "bug_tracker_uri" => "https://github.com/weppos/publicsuffix-ruby/issues",
17
- "changelog_uri" => "https://github.com/weppos/publicsuffix-ruby/blob/master/CHANGELOG.md",
18
- "documentation_uri" => "https://rubydoc.info/gems/#{s.name}/#{s.version}",
19
- "homepage_uri" => s.homepage,
20
- "source_code_uri" => "https://github.com/weppos/publicsuffix-ruby/tree/v#{s.version}",
21
- }
22
-
23
- s.required_ruby_version = ">= 2.3"
24
-
25
- s.require_paths = ["lib"]
26
- s.files = `git ls-files`.split("\n")
27
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
28
- s.extra_rdoc_files = %w( LICENSE.txt )
29
- end
data/test/.empty DELETED
@@ -1,2 +0,0 @@
1
- # This is an empty file I use to force a non-empty commit when I only need to store notes
2
- ..