public_suffix 4.0.6 → 5.0.4

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +20 -3
  5. data/SECURITY.md +2 -81
  6. data/data/list.txt +4262 -2211
  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 +4 -4
  10. data/lib/public_suffix/rule.rb +16 -16
  11. data/lib/public_suffix/version.rb +5 -4
  12. data/lib/public_suffix.rb +12 -14
  13. metadata +10 -64
  14. data/.github/FUNDING.yml +0 -12
  15. data/.github/workflows/tests.yml +0 -36
  16. data/.gitignore +0 -8
  17. data/.rubocop.yml +0 -36
  18. data/.rubocop_opinionated.yml +0 -157
  19. data/.travis.yml +0 -23
  20. data/Gemfile +0 -15
  21. data/Rakefile +0 -51
  22. data/bin/console +0 -15
  23. data/codecov.yml +0 -12
  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 -18
  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-2020 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 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-2020 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 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-2020 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -63,7 +63,7 @@ module PublicSuffix
63
63
  #
64
64
  # See http://publicsuffix.org/format/ for more details about input format.
65
65
  #
66
- # @param string [#each_line] the list to parse
66
+ # @param input [#each_line] the list to parse
67
67
  # @param private_domains [Boolean] whether to ignore the private domains section
68
68
  # @return [PublicSuffix::List]
69
69
  def self.parse(input, private_domains: true)
@@ -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
@@ -173,7 +173,7 @@ module PublicSuffix
173
173
  # @return [PublicSuffix::Rule::*]
174
174
  def find(name, default: default_rule, **options)
175
175
  rule = select(name, **options).inject do |l, r|
176
- return r if r.class == Rule::Exception
176
+ return r if r.instance_of?(Rule::Exception)
177
177
 
178
178
  l.length > r.length ? l : r
179
179
  end
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Domain name parser based on the Public Suffix List.
6
6
  #
7
- # Copyright (c) 2009-2020 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -125,16 +125,15 @@ 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
 
132
132
  # Checks whether this rule is equal to <tt>other</tt>.
133
133
  #
134
- # @param [PublicSuffix::Rule::*] other The rule to compare
135
- # @return [Boolean]
136
- # Returns true if this rule and other are instances of the same class
137
- # and has the same value, false otherwise.
134
+ # @param other [PublicSuffix::Rule::*] The rule to compare
135
+ # @return [Boolean] true if this rule and other are instances of the same class
136
+ # and has the same value, false otherwise.
138
137
  def ==(other)
139
138
  equal?(other) || (self.class == other.class && value == other.value)
140
139
  end
@@ -162,7 +161,7 @@ module PublicSuffix
162
161
  # @param name [String] the domain name to check
163
162
  # @return [Boolean]
164
163
  def match?(name)
165
- # Note: it works because of the assumption there are no
164
+ # NOTE: it works because of the assumption there are no
166
165
  # rules like foo.*.com. If the assumption is incorrect,
167
166
  # we need to properly walk the input and skip parts according
168
167
  # to wildcard component.
@@ -176,7 +175,7 @@ module PublicSuffix
176
175
  end
177
176
 
178
177
  # @abstract
179
- # @param [String, #to_s] name The domain name to decompose
178
+ # @param domain [#to_s] The domain name to decompose
180
179
  # @return [Array<String, nil>]
181
180
  def decompose(*)
182
181
  raise NotImplementedError
@@ -196,7 +195,7 @@ module PublicSuffix
196
195
 
197
196
  # Decomposes the domain name according to rule properties.
198
197
  #
199
- # @param [String, #to_s] name The domain name to decompose
198
+ # @param domain [#to_s] The domain name to decompose
200
199
  # @return [Array<String>] The array with [trd + sld, tld].
201
200
  def decompose(domain)
202
201
  suffix = parts.join('\.')
@@ -222,12 +221,13 @@ module PublicSuffix
222
221
  # @param content [String] the content of the rule
223
222
  # @param private [Boolean]
224
223
  def self.build(content, private: false)
225
- new(value: content.to_s[2..-1], private: private)
224
+ new(value: content.to_s[2..], private: private)
226
225
  end
227
226
 
228
227
  # Initializes a new rule.
229
228
  #
230
229
  # @param value [String]
230
+ # @param length [Integer]
231
231
  # @param private [Boolean]
232
232
  def initialize(value:, length: nil, private: false)
233
233
  super(value: value, length: length, private: private)
@@ -243,7 +243,7 @@ module PublicSuffix
243
243
 
244
244
  # Decomposes the domain name according to rule properties.
245
245
  #
246
- # @param [String, #to_s] name The domain name to decompose
246
+ # @param domain [#to_s] The domain name to decompose
247
247
  # @return [Array<String>] The array with [trd + sld, tld].
248
248
  def decompose(domain)
249
249
  suffix = ([".*?"] + parts).join('\.')
@@ -266,10 +266,10 @@ module PublicSuffix
266
266
 
267
267
  # Initializes a new rule from the content.
268
268
  #
269
- # @param content [String] the content of the rule
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.
@@ -281,7 +281,7 @@ module PublicSuffix
281
281
 
282
282
  # Decomposes the domain name according to rule properties.
283
283
  #
284
- # @param [String, #to_s] name The domain name to decompose
284
+ # @param domain [#to_s] The domain name to decompose
285
285
  # @return [Array<String>] The array with [trd + sld, tld].
286
286
  def decompose(domain)
287
287
  suffix = parts.join('\.')
@@ -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
@@ -321,7 +321,7 @@ module PublicSuffix
321
321
  # PublicSuffix::Rule.factory("!congresodelalengua3.ar")
322
322
  # # => #<PublicSuffix::Rule::Exception>
323
323
  #
324
- # @param [String] content The rule content.
324
+ # @param content [#to_s] the content of the rule
325
325
  # @return [PublicSuffix::Rule::*] A rule instance.
326
326
  def self.factory(content, private: false)
327
327
  case content.to_s[0, 1]
@@ -1,13 +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-2020 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 Simone Carletti <weppos@weppos.net>
9
8
 
10
9
  module PublicSuffix
11
- # The current library version.
12
- VERSION = "4.0.6"
10
+
11
+ # @return [String] the current library version
12
+ VERSION = "5.0.4"
13
+
13
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-2020 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  require_relative "public_suffix/domain"
10
10
  require_relative "public_suffix/version"
@@ -57,15 +57,13 @@ module PublicSuffix
57
57
  # # => PublicSuffix::DomainInvalid: http://www.google.com is not expected to contain a scheme
58
58
  #
59
59
  #
60
- # @param [String, #to_s] name The domain name or fully qualified domain name to parse.
61
- # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List}
62
- # @param [Boolean] ignore_private
60
+ # @param name [#to_s] The domain name or fully qualified domain name to parse.
61
+ # @param list [PublicSuffix::List] The rule list to search, defaults to the default {PublicSuffix::List}
62
+ # @param ignore_private [Boolean]
63
63
  # @return [PublicSuffix::Domain]
64
64
  #
65
- # @raise [PublicSuffix::DomainInvalid]
66
- # If domain is not a valid domain.
67
- # @raise [PublicSuffix::DomainNotAllowed]
68
- # If a rule for +domain+ is found, but the rule doesn't allow +domain+.
65
+ # @raise [PublicSuffix::DomainInvalid] If domain is not a valid domain.
66
+ # @raise [PublicSuffix::DomainNotAllowed] If a rule for +domain+ is found, but the rule doesn't allow +domain+.
69
67
  def self.parse(name, list: List.default, default_rule: list.default_rule, ignore_private: false)
70
68
  what = normalize(name)
71
69
  raise what if what.is_a?(DomainInvalid)
@@ -119,8 +117,8 @@ module PublicSuffix
119
117
  # # => false
120
118
  #
121
119
  #
122
- # @param [String, #to_s] name The domain name or fully qualified domain name to validate.
123
- # @param [Boolean] ignore_private
120
+ # @param name [#to_s] The domain name or fully qualified domain name to validate.
121
+ # @param ignore_private [Boolean]
124
122
  # @return [Boolean]
125
123
  def self.valid?(name, list: List.default, default_rule: list.default_rule, ignore_private: false)
126
124
  what = normalize(name)
@@ -135,9 +133,9 @@ module PublicSuffix
135
133
  #
136
134
  # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason.
137
135
  #
138
- # @param [String, #to_s] name The domain name or fully qualified domain name to parse.
139
- # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List}
140
- # @param [Boolean] ignore_private
136
+ # @param name [#to_s] The domain name or fully qualified domain name to parse.
137
+ # @param list [PublicSuffix::List] The rule list to search, defaults to the default {PublicSuffix::List}
138
+ # @param ignore_private [Boolean]
141
139
  # @return [String]
142
140
  def self.domain(name, **options)
143
141
  parse(name, **options).domain
@@ -171,7 +169,7 @@ module PublicSuffix
171
169
 
172
170
  return DomainInvalid.new("Name is blank") if name.empty?
173
171
  return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT)
174
- 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?("://")
175
173
 
176
174
  name
177
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.6
4
+ version: 5.0.4
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: 2020-09-02 00:00:00.000000000 Z
11
+ date: 2023-11-17 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/workflows/tests.yml"
24
- - ".gitignore"
25
- - ".rubocop.yml"
26
- - ".rubocop_opinionated.yml"
27
- - ".travis.yml"
28
22
  - ".yardopts"
29
23
  - 2.0-Upgrade.md
30
24
  - CHANGELOG.md
31
- - Gemfile
32
25
  - LICENSE.txt
33
26
  - README.md
34
- - Rakefile
35
27
  - SECURITY.md
36
- - bin/console
37
- - codecov.yml
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.6
41
+ documentation_uri: https://rubydoc.info/gems/public_suffix/5.0.4
75
42
  homepage_uri: https://simonecarletti.com/code/publicsuffix-ruby
76
- source_code_uri: https://github.com/weppos/publicsuffix-ruby/tree/v4.0.6
77
- post_install_message:
43
+ source_code_uri: https://github.com/weppos/publicsuffix-ruby/tree/v5.0.4
44
+ post_install_message:
78
45
  rdoc_options: []
79
46
  require_paths:
80
47
  - lib
@@ -82,36 +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.1.2
93
- signing_key:
59
+ rubygems_version: 3.4.10
60
+ signing_key:
94
61
  specification_version: 4
95
62
  summary: Domain name parser based on the Public Suffix List.
96
- test_files:
97
- - test/acceptance_test.rb
98
- - test/benchmarks/bm_find.rb
99
- - test/benchmarks/bm_find_all.rb
100
- - test/benchmarks/bm_names.rb
101
- - test/benchmarks/bm_select.rb
102
- - test/benchmarks/bm_select_incremental.rb
103
- - test/benchmarks/bm_valid.rb
104
- - test/profilers/domain_profiler.rb
105
- - test/profilers/find_profiler.rb
106
- - test/profilers/find_profiler_jp.rb
107
- - test/profilers/initialization_profiler.rb
108
- - test/profilers/list_profsize.rb
109
- - test/profilers/object_binsize.rb
110
- - test/psl_test.rb
111
- - test/test_helper.rb
112
- - test/tests.txt
113
- - test/unit/domain_test.rb
114
- - test/unit/errors_test.rb
115
- - test/unit/list_test.rb
116
- - test/unit/public_suffix_test.rb
117
- - test/unit/rule_test.rb
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,36 +0,0 @@
1
- name: Tests
2
-
3
- on:
4
- push:
5
- branches: [ master ]
6
- pull_request:
7
- branches: [ master ]
8
-
9
- jobs:
10
-
11
- build:
12
- strategy:
13
- matrix:
14
- ruby-version:
15
- # - "2.3"
16
- - "2.4"
17
- - "2.5"
18
- - "2.6"
19
- - "2.7"
20
- platform: [ubuntu-latest]
21
-
22
- runs-on: ${{ matrix.platform }}
23
- steps:
24
-
25
- - uses: actions/checkout@v2
26
-
27
- - name: Set up Ruby
28
- uses: ruby/setup-ruby@v1
29
- with:
30
- ruby-version: ${{ matrix.ruby-version }}
31
-
32
- - name: Install dependencies
33
- run: bundle install
34
-
35
- - name: Run tests
36
- 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,157 +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
- # [codesmell]
19
- Metrics/AbcSize:
20
- Enabled: false
21
- Exclude:
22
- - 'spec/**/*_spec.rb'
23
- - 'test/**/*_test.rb'
24
-
25
- # [codesmell]
26
- Metrics/BlockLength:
27
- Enabled: false
28
-
29
- # [codesmell]
30
- Metrics/CyclomaticComplexity:
31
- Enabled: false
32
- Exclude:
33
- - 'spec/**/*_spec.rb'
34
- - 'test/**/*_test.rb'
35
-
36
- # [codesmell]
37
- Metrics/ClassLength:
38
- Enabled: false
39
- Exclude:
40
- - 'spec/**/*_spec.rb'
41
- - 'test/**/*_test.rb'
42
-
43
- # [codesmell]
44
- Metrics/MethodLength:
45
- Enabled: false
46
- Exclude:
47
- - 'spec/**/*_spec.rb'
48
- - 'test/**/*_test.rb'
49
- Max: 10
50
-
51
- # [codesmell]
52
- Metrics/ModuleLength:
53
- Enabled: false
54
- Exclude:
55
- - 'spec/**/*_spec.rb'
56
- - 'test/**/*_test.rb'
57
-
58
- # [codesmell]
59
- Metrics/ParameterLists:
60
- Enabled: false
61
- Max: 5
62
-
63
- # [codesmell]
64
- Metrics/PerceivedComplexity:
65
- Enabled: false
66
-
67
- # Do not use "and" or "or" in conditionals, but for readability we can use it
68
- # to chain executions. Just beware of operator order.
69
- Style/AndOr:
70
- EnforcedStyle: conditionals
71
-
72
- Style/Documentation:
73
- Exclude:
74
- - 'spec/**/*'
75
- - 'test/**/*'
76
-
77
- # Double empty lines are useful to separate conceptually different methods
78
- # in the same class or module.
79
- Layout/EmptyLines:
80
- Enabled: false
81
-
82
- # In most cases, a space is nice. Sometimes, it's not.
83
- # Just be consistent with the rest of the surrounding code.
84
- Layout/EmptyLinesAroundClassBody:
85
- Enabled: false
86
-
87
- # In most cases, a space is nice. Sometimes, it's not.
88
- # Just be consistent with the rest of the surrounding code.
89
- Layout/EmptyLinesAroundModuleBody:
90
- Enabled: false
91
-
92
- # This is quite buggy, as it doesn't recognize double lines.
93
- # Double empty lines are useful to separate conceptually different methods
94
- # in the same class or module.
95
- Layout/EmptyLineBetweenDefs:
96
- Enabled: false
97
-
98
- # I personally don't care about the format style.
99
- # In most cases I like to use %, but not at the point I want to enforce it
100
- # as a convention in the entire code.
101
- Style/FormatString:
102
- Enabled: false
103
-
104
- # Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
105
- # %s is a simpler and straightforward version that works in almost all cases. So don't complain.
106
- Style/FormatStringToken:
107
- Enabled: false
108
-
109
- # unless is not always cool.
110
- Style/NegatedIf:
111
- Enabled: false
112
-
113
- # For years, %w() has been the de-facto standard. A lot of libraries are using ().
114
- # Switching to [] would be a nightmare.
115
- Style/PercentLiteralDelimiters:
116
- Enabled: false
117
-
118
- # There are cases were the inline rescue is ok. We can either downgrade the severity,
119
- # or rely on the developer judgement on a case-by-case basis.
120
- Style/RescueModifier:
121
- Enabled: false
122
-
123
- Style/SymbolArray:
124
- EnforcedStyle: brackets
125
-
126
- # Sorry, but using trailing spaces helps readability.
127
- #
128
- # %w( foo bar )
129
- #
130
- # looks better to me than
131
- #
132
- # %w( foo bar )
133
- #
134
- Layout/SpaceInsidePercentLiteralDelimiters:
135
- Enabled: false
136
-
137
- # Hate It or Love It, I prefer double quotes as this is more consistent
138
- # with several other programming languages and the output of puts and inspect.
139
- Style/StringLiterals:
140
- EnforcedStyle: double_quotes
141
-
142
- # It's nice to be consistent. The trailing comma also allows easy reordering,
143
- # and doesn't cause a diff in Git when you add a line to the bottom.
144
- Style/TrailingCommaInArrayLiteral:
145
- EnforcedStyleForMultiline: consistent_comma
146
- Style/TrailingCommaInHashLiteral:
147
- EnforcedStyleForMultiline: consistent_comma
148
-
149
- Style/TrivialAccessors:
150
- # IgnoreClassMethods because I want to be able to define class-level accessors
151
- # that sets an instance variable on the metaclass, such as:
152
- #
153
- # def self.default=(value)
154
- # @default = value
155
- # end
156
- #
157
- IgnoreClassMethods: true
data/.travis.yml DELETED
@@ -1,23 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- # - 2.3
5
- - 2.4
6
- - 2.5
7
- - 2.6
8
- - 2.7
9
- - ruby-head
10
-
11
- env:
12
- - COVERAGE=1
13
-
14
- cache:
15
- - bundler
16
-
17
- matrix:
18
- allow_failures:
19
- - rvm: ruby-head
20
-
21
- before_install:
22
- - gem update --system
23
- - gem install bundler
data/Gemfile DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec
6
-
7
- gem "rake"
8
-
9
- gem "codecov", require: false
10
- gem "memory_profiler", require: false
11
- gem "minitest"
12
- gem "minitest-reporters"
13
- gem "mocha"
14
- gem "rubocop", "~>0.90", require: false
15
- gem "yard"