public_suffix 3.1.1 → 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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +150 -52
  3. data/LICENSE.txt +1 -1
  4. data/README.md +37 -15
  5. data/SECURITY.md +25 -0
  6. data/data/list.txt +4775 -2310
  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 +6 -6
  10. data/lib/public_suffix/rule.rb +17 -17
  11. data/lib/public_suffix/version.rb +5 -4
  12. data/lib/public_suffix.rb +12 -14
  13. metadata +16 -104
  14. data/.gitignore +0 -11
  15. data/.rubocop.yml +0 -36
  16. data/.rubocop_defaults.yml +0 -179
  17. data/.ruby-gemset +0 -1
  18. data/.travis.yml +0 -31
  19. data/Gemfile +0 -12
  20. data/Rakefile +0 -51
  21. data/bin/console +0 -15
  22. data/public_suffix.gemspec +0 -25
  23. data/test/.empty +0 -2
  24. data/test/acceptance_test.rb +0 -129
  25. data/test/benchmarks/bm_find.rb +0 -66
  26. data/test/benchmarks/bm_find_all.rb +0 -102
  27. data/test/benchmarks/bm_names.rb +0 -91
  28. data/test/benchmarks/bm_select.rb +0 -26
  29. data/test/benchmarks/bm_select_incremental.rb +0 -25
  30. data/test/benchmarks/bm_valid.rb +0 -101
  31. data/test/profilers/domain_profiler.rb +0 -12
  32. data/test/profilers/find_profiler.rb +0 -12
  33. data/test/profilers/find_profiler_jp.rb +0 -12
  34. data/test/profilers/initialization_profiler.rb +0 -11
  35. data/test/profilers/list_profsize.rb +0 -11
  36. data/test/profilers/object_binsize.rb +0 -57
  37. data/test/psl_test.rb +0 -52
  38. data/test/test_helper.rb +0 -18
  39. data/test/tests.txt +0 -98
  40. data/test/unit/domain_test.rb +0 -106
  41. data/test/unit/errors_test.rb +0 -25
  42. data/test/unit/list_test.rb +0 -241
  43. data/test/unit/public_suffix_test.rb +0 -188
  44. 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-2019 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-2019 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-2019 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -48,7 +48,7 @@ module PublicSuffix
48
48
  #
49
49
  # @return [PublicSuffix::List]
50
50
  def self.default(**options)
51
- @default ||= parse(File.read(DEFAULT_LIST_PATH), options)
51
+ @default ||= parse(File.read(DEFAULT_LIST_PATH), **options)
52
52
  end
53
53
 
54
54
  # Sets the default rule list to +value+.
@@ -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
@@ -216,7 +216,7 @@ module PublicSuffix
216
216
 
217
217
  rules
218
218
  end
219
- private :select # rubocop:disable Style/AccessModifierDeclarations
219
+ private :select
220
220
 
221
221
  # Gets the default rule.
222
222
  #
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Domain name parser based on the Public Suffix List.
6
6
  #
7
- # Copyright (c) 2009-2019 Simone Carletti <weppos@weppos.net>
7
+ # Copyright (c) 2009-2023 Simone Carletti <weppos@weppos.net>
8
8
 
9
9
  module PublicSuffix
10
10
 
@@ -22,7 +22,7 @@ module PublicSuffix
22
22
  module Rule
23
23
 
24
24
  # @api internal
25
- Entry = Struct.new(:type, :length, :private)
25
+ Entry = Struct.new(:type, :length, :private) # rubocop:disable Lint/StructNewOverride
26
26
 
27
27
  # = Abstract rule class
28
28
  #
@@ -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-2019 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 = "3.1.1"
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-2019 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,57 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: public_suffix
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
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: 2019-06-25 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rake
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: mocha
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: yard
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
11
+ date: 2023-11-17 00:00:00.000000000 Z
12
+ dependencies: []
55
13
  description: PublicSuffix can parse and decompose a domain name into top level domain,
56
14
  domain and subdomains.
57
15
  email:
@@ -61,19 +19,12 @@ extensions: []
61
19
  extra_rdoc_files:
62
20
  - LICENSE.txt
63
21
  files:
64
- - ".gitignore"
65
- - ".rubocop.yml"
66
- - ".rubocop_defaults.yml"
67
- - ".ruby-gemset"
68
- - ".travis.yml"
69
22
  - ".yardopts"
70
23
  - 2.0-Upgrade.md
71
24
  - CHANGELOG.md
72
- - Gemfile
73
25
  - LICENSE.txt
74
26
  - README.md
75
- - Rakefile
76
- - bin/console
27
+ - SECURITY.md
77
28
  - data/list.txt
78
29
  - lib/public_suffix.rb
79
30
  - lib/public_suffix/domain.rb
@@ -81,34 +32,16 @@ files:
81
32
  - lib/public_suffix/list.rb
82
33
  - lib/public_suffix/rule.rb
83
34
  - lib/public_suffix/version.rb
84
- - public_suffix.gemspec
85
- - test/.empty
86
- - test/acceptance_test.rb
87
- - test/benchmarks/bm_find.rb
88
- - test/benchmarks/bm_find_all.rb
89
- - test/benchmarks/bm_names.rb
90
- - test/benchmarks/bm_select.rb
91
- - test/benchmarks/bm_select_incremental.rb
92
- - test/benchmarks/bm_valid.rb
93
- - test/profilers/domain_profiler.rb
94
- - test/profilers/find_profiler.rb
95
- - test/profilers/find_profiler_jp.rb
96
- - test/profilers/initialization_profiler.rb
97
- - test/profilers/list_profsize.rb
98
- - test/profilers/object_binsize.rb
99
- - test/psl_test.rb
100
- - test/test_helper.rb
101
- - test/tests.txt
102
- - test/unit/domain_test.rb
103
- - test/unit/errors_test.rb
104
- - test/unit/list_test.rb
105
- - test/unit/public_suffix_test.rb
106
- - test/unit/rule_test.rb
107
35
  homepage: https://simonecarletti.com/code/publicsuffix-ruby
108
36
  licenses:
109
37
  - MIT
110
- metadata: {}
111
- post_install_message:
38
+ metadata:
39
+ bug_tracker_uri: https://github.com/weppos/publicsuffix-ruby/issues
40
+ changelog_uri: https://github.com/weppos/publicsuffix-ruby/blob/master/CHANGELOG.md
41
+ documentation_uri: https://rubydoc.info/gems/public_suffix/5.0.4
42
+ homepage_uri: https://simonecarletti.com/code/publicsuffix-ruby
43
+ source_code_uri: https://github.com/weppos/publicsuffix-ruby/tree/v5.0.4
44
+ post_install_message:
112
45
  rdoc_options: []
113
46
  require_paths:
114
47
  - lib
@@ -116,36 +49,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
49
  requirements:
117
50
  - - ">="
118
51
  - !ruby/object:Gem::Version
119
- version: '2.1'
52
+ version: '2.6'
120
53
  required_rubygems_version: !ruby/object:Gem::Requirement
121
54
  requirements:
122
55
  - - ">="
123
56
  - !ruby/object:Gem::Version
124
57
  version: '0'
125
58
  requirements: []
126
- rubygems_version: 3.0.3
127
- signing_key:
59
+ rubygems_version: 3.4.10
60
+ signing_key:
128
61
  specification_version: 4
129
62
  summary: Domain name parser based on the Public Suffix List.
130
- test_files:
131
- - test/acceptance_test.rb
132
- - test/benchmarks/bm_find.rb
133
- - test/benchmarks/bm_find_all.rb
134
- - test/benchmarks/bm_names.rb
135
- - test/benchmarks/bm_select.rb
136
- - test/benchmarks/bm_select_incremental.rb
137
- - test/benchmarks/bm_valid.rb
138
- - test/profilers/domain_profiler.rb
139
- - test/profilers/find_profiler.rb
140
- - test/profilers/find_profiler_jp.rb
141
- - test/profilers/initialization_profiler.rb
142
- - test/profilers/list_profsize.rb
143
- - test/profilers/object_binsize.rb
144
- - test/psl_test.rb
145
- - test/test_helper.rb
146
- - test/tests.txt
147
- - test/unit/domain_test.rb
148
- - test/unit/errors_test.rb
149
- - test/unit/list_test.rb
150
- - test/unit/public_suffix_test.rb
151
- - test/unit/rule_test.rb
63
+ test_files: []
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- # Bundler
2
- .bundle
3
- Gemfile.lock
4
- pkg/*
5
-
6
- # Rubinius
7
- *.rbc
8
-
9
- # YARD
10
- .yardoc
11
- yardoc/
data/.rubocop.yml DELETED
@@ -1,36 +0,0 @@
1
- inherit_from:
2
- - .rubocop_defaults.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/IndentHeredoc:
28
- Enabled: false
29
-
30
- Style/WordArray:
31
- Enabled: false
32
- MinSize: 3
33
-
34
- Style/SymbolArray:
35
- Enabled: false
36
- MinSize: 3
@@ -1,179 +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
-
9
- # [codesmell]
10
- Metrics/AbcSize:
11
- Enabled: false
12
- Exclude:
13
- - 'spec/**/*_spec.rb'
14
- - 'test/**/*_test.rb'
15
-
16
- # [codesmell]
17
- Metrics/BlockLength:
18
- Enabled: false
19
-
20
- # [codesmell]
21
- Metrics/CyclomaticComplexity:
22
- Enabled: false
23
- Exclude:
24
- - 'spec/**/*_spec.rb'
25
- - 'test/**/*_test.rb'
26
-
27
- # [codesmell]
28
- Metrics/ClassLength:
29
- Enabled: false
30
- Exclude:
31
- - 'spec/**/*_spec.rb'
32
- - 'test/**/*_test.rb'
33
-
34
- # [codesmell]
35
- Metrics/LineLength:
36
- Enabled: false
37
- Exclude:
38
- - 'spec/**/*_spec.rb'
39
- - 'test/**/*_test.rb'
40
- Max: 100
41
-
42
- # [codesmell]
43
- Metrics/MethodLength:
44
- Enabled: false
45
- Exclude:
46
- - 'spec/**/*_spec.rb'
47
- - 'test/**/*_test.rb'
48
- Max: 10
49
-
50
- # [codesmell]
51
- Metrics/ModuleLength:
52
- Enabled: false
53
- Exclude:
54
- - 'spec/**/*_spec.rb'
55
- - 'test/**/*_test.rb'
56
-
57
- # [codesmell]
58
- Metrics/ParameterLists:
59
- Enabled: false
60
- Max: 5
61
-
62
- # [codesmell]
63
- Metrics/PerceivedComplexity:
64
- Enabled: false
65
-
66
- # Do not use "and" or "or" in conditionals, but for readability we can use it
67
- # to chain executions. Just beware of operator order.
68
- Style/AndOr:
69
- EnforcedStyle: conditionals
70
-
71
- Style/Documentation:
72
- Exclude:
73
- - 'spec/**/*'
74
- - 'test/**/*'
75
-
76
- # Double empty lines are useful to separate conceptually different methods
77
- # in the same class or module.
78
- Layout/EmptyLines:
79
- Enabled: false
80
-
81
- # In most cases, a space is nice. Sometimes, it's not.
82
- # Just be consistent with the rest of the surrounding code.
83
- Layout/EmptyLinesAroundClassBody:
84
- Enabled: false
85
-
86
- # In most cases, a space is nice. Sometimes, it's not.
87
- # Just be consistent with the rest of the surrounding code.
88
- Layout/EmptyLinesAroundModuleBody:
89
- Enabled: false
90
-
91
- # This is quite buggy, as it doesn't recognize double lines.
92
- # Double empty lines are useful to separate conceptually different methods
93
- # in the same class or module.
94
- Layout/EmptyLineBetweenDefs:
95
- Enabled: false
96
-
97
- # I personally don't care about the format style.
98
- # In most cases I like to use %, but not at the point I want to enforce it
99
- # as a convention in the entire code.
100
- Style/FormatString:
101
- Enabled: false
102
-
103
- # Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
104
- # %s is a simpler and straightforward version that works in almost all cases. So don't complain.
105
- Style/FormatStringToken:
106
- Enabled: false
107
-
108
- # Prefer the latest Hash syntax
109
- Style/HashSyntax:
110
- Exclude:
111
- # But Rakefiles generally have some definition like
112
- # :default => :test
113
- # that looks nicer with the old rocket syntax.
114
- - 'Rakefile'
115
-
116
- Style/RescueStandardError:
117
- Enabled: false
118
-
119
- # Array indentation should be considered like MultilineMethodCallIndentation indentation
120
- # and use 4 spaces instead of 2.
121
- Layout/IndentFirstArrayElement:
122
- IndentationWidth: 4
123
-
124
- # Hash indentation should be considered like MultilineMethodCallIndentation indentation
125
- # and use 4 spaces instead of 2.
126
- Layout/IndentFirstHashElement:
127
- IndentationWidth: 4
128
-
129
- # Multi-line differs from standard indentation, they are indented twice.
130
- Layout/MultilineMethodCallIndentation:
131
- EnforcedStyle: indented
132
- IndentationWidth: 4
133
-
134
- # unless is not always cool.
135
- Style/NegatedIf:
136
- Enabled: false
137
-
138
- # For years, %w() has been the de-facto standard. A lot of libraries are using ().
139
- # Switching to [] would be a nightmare.
140
- Style/PercentLiteralDelimiters:
141
- Enabled: false
142
-
143
- # There are cases were the inline rescue is ok. We can either downgrade the severity,
144
- # or rely on the developer judgement on a case-by-case basis.
145
- Style/RescueModifier:
146
- Enabled: false
147
-
148
- # Sorry, but using trailing spaces helps readability.
149
- #
150
- # %w( foo bar )
151
- #
152
- # looks better to me than
153
- #
154
- # %w( foo bar )
155
- #
156
- Layout/SpaceInsidePercentLiteralDelimiters:
157
- Enabled: false
158
-
159
- # Hate It or Love It, I prefer double quotes as this is more consistent
160
- # with several other programming languages and the output of puts and inspect.
161
- Style/StringLiterals:
162
- EnforcedStyle: double_quotes
163
-
164
- # It's nice to be consistent. The trailing comma also allows easy reordering,
165
- # and doesn't cause a diff in Git when you add a line to the bottom.
166
- Style/TrailingCommaInArrayLiteral:
167
- EnforcedStyleForMultiline: consistent_comma
168
- Style/TrailingCommaInHashLiteral:
169
- EnforcedStyleForMultiline: consistent_comma
170
-
171
- Style/TrivialAccessors:
172
- # IgnoreClassMethods because I want to be able to define class-level accessors
173
- # that sets an instance variable on the metaclass, such as:
174
- #
175
- # def self.default=(value)
176
- # @default = value
177
- # end
178
- #
179
- IgnoreClassMethods: true
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- -global