multi_range 2.0.0 → 2.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b6430c0f1e34bd416c5ac86b7427a287b980282604b7220a518feb8eb90e3d3
4
- data.tar.gz: 01f8ca6da27bc8a960ef531e114cdfc15296fac6af91e4e588642a11b7b56ac7
3
+ metadata.gz: 5f5131aeac614c26aaf827649d945657844d9275943b2dd7b1be8658439c22be
4
+ data.tar.gz: 9c28e90964b54c7f8b9a0fd6bf2bce56879075d88f39ab6c329ef9b708a6fc74
5
5
  SHA512:
6
- metadata.gz: a14a3bee4fece94aa0c39a8fcdd614dfcd94afe771a7075f84e33093cf3a0e5e8990029685f09bc89b13c93d1ce89b82bc527c0f120f43f0238e39e902fd6a28
7
- data.tar.gz: 513bba26a2dee77e82720214102e9231390954e94cdf36cff610066578179ea67498bfd29576ceb9177362981f34baad2abdddca877f782dc0b47123523e71b0
6
+ metadata.gz: 3b316d23ce448b02cddaea5965a8ca87162797a6242383b18b4fdb39bb67eb6e56cf511a639d1ab753caa09278ef452e9e840f8e0e47bf7e5768f8e6dd41f837
7
+ data.tar.gz: f1f94bae043fde50aef3e057deed543cfd83f85515d689ee7b4b81bbdba3bfda7ef3e5bdca2242cfc82724c277bc246681e58b8cfb47864c523c2a380a9f259d
@@ -0,0 +1,46 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ paths-ignore:
6
+ - 'README.md'
7
+ - 'CHANGELOG.md'
8
+ pull_request:
9
+ branches: [ master ]
10
+ paths-ignore:
11
+ - 'README.md'
12
+ - 'CHANGELOG.md'
13
+
14
+ jobs:
15
+ test:
16
+ runs-on: ubuntu-latest
17
+ name: Test
18
+ if: "contains(github.event.commits[0].message, '[ci skip]') == false"
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ ruby:
23
+ - 2.0
24
+ - 2.2
25
+ - 2.6
26
+ - 2.7
27
+ gemfile:
28
+ - Gemfile
29
+ env:
30
+ BUNDLE_GEMFILE: "gemfiles/${{ matrix.gemfile }}"
31
+
32
+ steps:
33
+ - name: Checkout
34
+ uses: actions/checkout@v2
35
+ - name: Setup Ruby
36
+ uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: ${{ matrix.ruby }}
39
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
40
+ - name: Run tests
41
+ run: bundle exec rake
42
+ - name: Publish code coverage
43
+ if: ${{ success() && github.event.pull_request.head.repo.full_name == github.repository }}
44
+ uses: paambaati/codeclimate-action@v2.7.5
45
+ env:
46
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
data/.gitignore CHANGED
@@ -1,60 +1,60 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /.bundle/
5
- /.yardoc
6
- /_yardoc/
7
- /coverage/
8
- /InstalledFiles
9
- /doc/
10
- /pkg/
11
- /spec/reports/
12
- /spec/examples.txt
13
- /test/tmp/
14
- /test/version_tmp/
15
- /tmp/
16
-
17
- # Used by dotenv library to load environment variables.
18
- # .env
19
-
20
- # Ignore Byebug command history file.
21
- .byebug_history
22
-
23
- ## Specific to RubyMotion:
24
- .dat*
25
- .repl_history
26
- build/
27
- *.bridgesupport
28
- build-iPhoneOS/
29
- build-iPhoneSimulator/
30
-
31
- ## Specific to RubyMotion (use of CocoaPods):
32
- #
33
- # We recommend against adding the Pods directory to your .gitignore. However
34
- # you should judge for yourself, the pros and cons are mentioned at:
35
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
36
- #
37
- # vendor/Pods/
38
-
39
- ## Documentation cache and generated files:
40
- /.yardoc/
41
- /_yardoc/
42
- /doc/
43
- /rdoc/
44
-
45
- ## Environment normalization:
46
- /.bundle/
47
- /vendor/bundle
48
- /lib/bundler/man/
49
-
50
- # for a library or gem, you might want to ignore these files since the code is
51
- # intended to run in multiple environments; otherwise, check them in:
52
- Gemfile.lock
53
- .ruby-version
54
- .ruby-gemset
55
-
56
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
57
- .rvmrc
58
-
59
- # Used by RuboCop. Remote config files pulled in from inherit_from directive.
60
- # .rubocop-https?--*
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /.bundle/
5
+ /.yardoc
6
+ /_yardoc/
7
+ /coverage/
8
+ /InstalledFiles
9
+ /doc/
10
+ /pkg/
11
+ /spec/reports/
12
+ /spec/examples.txt
13
+ /test/tmp/
14
+ /test/version_tmp/
15
+ /tmp/
16
+
17
+ # Used by dotenv library to load environment variables.
18
+ # .env
19
+
20
+ # Ignore Byebug command history file.
21
+ .byebug_history
22
+
23
+ ## Specific to RubyMotion:
24
+ .dat*
25
+ .repl_history
26
+ build/
27
+ *.bridgesupport
28
+ build-iPhoneOS/
29
+ build-iPhoneSimulator/
30
+
31
+ ## Specific to RubyMotion (use of CocoaPods):
32
+ #
33
+ # We recommend against adding the Pods directory to your .gitignore. However
34
+ # you should judge for yourself, the pros and cons are mentioned at:
35
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
36
+ #
37
+ # vendor/Pods/
38
+
39
+ ## Documentation cache and generated files:
40
+ /.yardoc/
41
+ /_yardoc/
42
+ /doc/
43
+ /rdoc/
44
+
45
+ ## Environment normalization:
46
+ /.bundle/
47
+ /vendor/bundle
48
+ /lib/bundler/man/
49
+
50
+ # for a library or gem, you might want to ignore these files since the code is
51
+ # intended to run in multiple environments; otherwise, check them in:
52
+ Gemfile.lock
53
+ .ruby-version
54
+ .ruby-gemset
55
+
56
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
57
+ .rvmrc
58
+
59
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
60
+ # .rubocop-https?--*
data/.rubocop.yml CHANGED
@@ -1,1174 +1,1174 @@
1
- require:
2
- - rubocop-performance
3
-
4
- AllCops:
5
- DisabledByDefault: true
6
- Exclude: []
7
-
8
- #################### Lint ################################
9
-
10
- Lint/AmbiguousOperator:
11
- Description: >-
12
- Checks for ambiguous operators in the first argument of a
13
- method invocation without parentheses.
14
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
15
- Enabled: true
16
-
17
- Lint/AmbiguousRegexpLiteral:
18
- Description: >-
19
- Checks for ambiguous regexp literals in the first argument of
20
- a method invocation without parenthesis.
21
- Enabled: true
22
-
23
- Lint/AssignmentInCondition:
24
- Description: "Don't use assignment in conditions."
25
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
26
- Enabled: true
27
-
28
- Layout/BlockAlignment:
29
- Description: 'Align block ends correctly.'
30
- Enabled: true
31
-
32
- Lint/CircularArgumentReference:
33
- Description: "Don't refer to the keyword argument in the default value."
34
- Enabled: true
35
-
36
- Layout/ConditionPosition:
37
- Description: >-
38
- Checks for condition placed in a confusing position relative to
39
- the keyword.
40
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
41
- Enabled: true
42
-
43
- Lint/Debugger:
44
- Description: 'Check for debugger calls.'
45
- Enabled: true
46
-
47
- Layout/DefEndAlignment:
48
- Description: 'Align ends corresponding to defs correctly.'
49
- Enabled: true
50
-
51
- Lint/DeprecatedClassMethods:
52
- Description: 'Check for deprecated class method calls.'
53
- Enabled: true
54
-
55
- Lint/DuplicateMethods:
56
- Description: 'Check for duplicate methods calls.'
57
- Enabled: true
58
-
59
- Lint/EachWithObjectArgument:
60
- Description: 'Check for immutable argument given to each_with_object.'
61
- Enabled: true
62
-
63
- Lint/ElseLayout:
64
- Description: 'Check for odd code arrangement in an else block.'
65
- Enabled: true
66
-
67
- Lint/EmptyEnsure:
68
- Description: 'Checks for empty ensure block.'
69
- Enabled: true
70
-
71
- Lint/EmptyInterpolation:
72
- Description: 'Checks for empty string interpolation.'
73
- Enabled: true
74
-
75
- Layout/EndAlignment:
76
- Description: 'Align ends correctly.'
77
- Enabled: true
78
-
79
- Lint/EnsureReturn:
80
- Description: 'Do not use return in an ensure block.'
81
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-return-ensure'
82
- Enabled: true
83
-
84
- Security/Eval:
85
- Description: 'The use of eval represents a serious security risk.'
86
- Enabled: true
87
-
88
- Lint/FormatParameterMismatch:
89
- Description: 'The number of parameters to format/sprint must match the fields.'
90
- Enabled: true
91
-
92
- Lint/SuppressedException:
93
- Description: "Don't suppress exception."
94
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
95
- Enabled: true
96
-
97
- Lint/LiteralInInterpolation:
98
- Description: 'Checks for literals used in interpolation.'
99
- Enabled: true
100
-
101
- Lint/Loop:
102
- Description: >-
103
- Use Kernel#loop with break rather than begin/end/until or
104
- begin/end/while for post-loop tests.
105
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
106
- Enabled: true
107
-
108
- Lint/NestedMethodDefinition:
109
- Description: 'Do not use nested method definitions.'
110
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
111
- Enabled: true
112
-
113
- Lint/NonLocalExitFromIterator:
114
- Description: 'Do not use return in iterator to cause non-local exit.'
115
- Enabled: true
116
-
117
- Lint/ParenthesesAsGroupedExpression:
118
- Description: >-
119
- Checks for method calls with a space before the opening
120
- parenthesis.
121
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
122
- Enabled: true
123
-
124
- Lint/RequireParentheses:
125
- Description: >-
126
- Use parentheses in the method call to avoid confusion
127
- about precedence.
128
- Enabled: true
129
-
130
- Lint/RescueException:
131
- Description: 'Avoid rescuing the Exception class.'
132
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-blind-rescues'
133
- Enabled: true
134
-
135
- Lint/ShadowingOuterLocalVariable:
136
- Description: >-
137
- Do not use the same name as outer local variable
138
- for block arguments or block local variables.
139
- Enabled: true
140
-
141
- Lint/RedundantStringCoercion:
142
- Description: 'Checks for Object#to_s usage in string interpolation.'
143
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-to-s'
144
- Enabled: true
145
-
146
- Lint/UnderscorePrefixedVariableName:
147
- Description: 'Do not use prefix `_` for a variable that is used.'
148
- Enabled: true
149
-
150
- Lint/RedundantCopDisableDirective:
151
- Description: >-
152
- Checks for rubocop:disable comments that can be removed.
153
- Note: this cop is not disabled when disabling all cops.
154
- It must be explicitly disabled.
155
- Enabled: true
156
-
157
- Lint/UnusedBlockArgument:
158
- Description: 'Checks for unused block arguments.'
159
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
160
- Enabled: true
161
-
162
- Lint/UnusedMethodArgument:
163
- Description: 'Checks for unused method arguments.'
164
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
165
- Enabled: true
166
-
167
- Lint/UnreachableCode:
168
- Description: 'Unreachable code.'
169
- Enabled: true
170
-
171
- Lint/UselessAccessModifier:
172
- Description: 'Checks for useless access modifiers.'
173
- Enabled: true
174
-
175
- Lint/UselessAssignment:
176
- Description: 'Checks for useless assignment to a local variable.'
177
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
178
- Enabled: true
179
-
180
- Lint/BinaryOperatorWithIdenticalOperands:
181
- Description: 'This cop checks for places where binary operator has identical operands.'
182
- Enabled: true
183
-
184
- Lint/UselessElseWithoutRescue:
185
- Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
186
- Enabled: true
187
-
188
- Lint/UselessSetterCall:
189
- Description: 'Checks for useless setter call to a local variable.'
190
- Enabled: true
191
-
192
- Lint/Void:
193
- Description: 'Possible use of operator/literal/variable in void context.'
194
- Enabled: true
195
-
196
- ###################### Metrics ####################################
197
-
198
- Metrics/AbcSize:
199
- Description: >-
200
- A calculated magnitude based on number of assignments,
201
- branches, and conditions.
202
- Reference: 'http://c2.com/cgi/wiki?AbcMetric'
203
- Enabled: true
204
- Max: 25
205
-
206
- Metrics/BlockNesting:
207
- Description: 'Avoid excessive block nesting'
208
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
209
- Enabled: true
210
- Max: 4
211
-
212
- Metrics/ClassLength:
213
- Description: 'Avoid classes longer than 250 lines of code.'
214
- Enabled: true
215
- Max: 250
216
-
217
- Metrics/CyclomaticComplexity:
218
- Description: >-
219
- A complexity metric that is strongly correlated to the number
220
- of test cases needed to validate a method.
221
- Enabled: true
222
-
223
- Layout/LineLength:
224
- Description: 'Limit lines to 120 characters.'
225
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
226
- Max: 120
227
- Enabled: true
228
- Exclude:
229
- - 'config/locales/**'
230
-
231
- Metrics/MethodLength:
232
- Description: 'Avoid methods longer than 30 lines of code.'
233
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
234
- Enabled: true
235
- Max: 30
236
-
237
- Metrics/ModuleLength:
238
- Description: 'Avoid modules longer than 250 lines of code.'
239
- Enabled: true
240
- Max: 250
241
-
242
- Metrics/ParameterLists:
243
- Description: 'Avoid parameter lists longer than three or four parameters.'
244
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
245
- Enabled: true
246
-
247
- Metrics/PerceivedComplexity:
248
- Description: >-
249
- A complexity metric geared towards measuring complexity for a
250
- human reader.
251
- Enabled: true
252
-
253
- ##################### Performance #############################
254
-
255
- Performance/Count:
256
- Description: >-
257
- Use `count` instead of `select...size`, `reject...size`,
258
- `select...count`, `reject...count`, `select...length`,
259
- and `reject...length`.
260
- Enabled: true
261
-
262
- Performance/Detect:
263
- Description: >-
264
- Use `detect` instead of `select.first`, `find_all.first`,
265
- `select.last`, and `find_all.last`.
266
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
267
- Enabled: true
268
-
269
- Performance/FlatMap:
270
- Description: >-
271
- Use `Enumerable#flat_map`
272
- instead of `Enumerable#map...Array#flatten(1)`
273
- or `Enumberable#collect..Array#flatten(1)`
274
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
275
- Enabled: true
276
- EnabledForFlattenWithoutParams: false
277
- # If enabled, this cop will warn about usages of
278
- # `flatten` being called without any parameters.
279
- # This can be dangerous since `flat_map` will only flatten 1 level, and
280
- # `flatten` without any parameters can flatten multiple levels.
281
-
282
- Performance/ReverseEach:
283
- Description: 'Use `reverse_each` instead of `reverse.each`.'
284
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
285
- Enabled: true
286
-
287
- Style/Sample:
288
- Description: >-
289
- Use `sample` instead of `shuffle.first`,
290
- `shuffle.last`, and `shuffle[Fixnum]`.
291
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
292
- Enabled: true
293
-
294
- Performance/Size:
295
- Description: >-
296
- Use `size` instead of `count` for counting
297
- the number of elements in `Array` and `Hash`.
298
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
299
- Enabled: true
300
-
301
- Performance/StringReplacement:
302
- Description: >-
303
- Use `tr` instead of `gsub` when you are replacing the same
304
- number of characters. Use `delete` instead of `gsub` when
305
- you are deleting characters.
306
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
307
- Enabled: true
308
-
309
- ################## Style #################################
310
-
311
- Layout/AccessModifierIndentation:
312
- Description: Check indentation of private/protected visibility modifiers.
313
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected'
314
- Enabled: true
315
-
316
- Naming/AccessorMethodName:
317
- Description: Check the naming of accessor methods for get_/set_.
318
- Enabled: false
319
-
320
- Style/Alias:
321
- Description: 'Use alias_method instead of alias.'
322
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
323
- Enabled: true
324
-
325
- Layout/ArrayAlignment:
326
- Description: >-
327
- Align the elements of an array literal if they span more than
328
- one line.
329
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays'
330
- Enabled: true
331
-
332
- Layout/HashAlignment:
333
- Description: >-
334
- Align the elements of a hash literal if they span more than
335
- one line.
336
- EnforcedHashRocketStyle: table
337
- Enabled: true
338
-
339
- Layout/ParameterAlignment:
340
- Description: >-
341
- Align the parameters of a method call if they span more
342
- than one line.
343
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
344
- Enabled: true
345
-
346
- Style/AndOr:
347
- Description: 'Use &&/|| instead of and/or.'
348
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-and-or-or'
349
- Enabled: false
350
-
351
- Style/ArrayJoin:
352
- Description: 'Use Array#join instead of Array#*.'
353
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
354
- Enabled: true
355
-
356
- Style/AsciiComments:
357
- Description: 'Use only ascii symbols in comments.'
358
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
359
- Enabled: false
360
-
361
- Naming/AsciiIdentifiers:
362
- Description: 'Use only ascii symbols in identifiers.'
363
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
364
- Enabled: true
365
-
366
- Style/Attr:
367
- Description: 'Checks for uses of Module#attr.'
368
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
369
- Enabled: true
370
-
371
- Style/BeginBlock:
372
- Description: 'Avoid the use of BEGIN blocks.'
373
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks'
374
- Enabled: true
375
-
376
- Style/BarePercentLiterals:
377
- Description: 'Checks if usage of %() or %Q() matches configuration.'
378
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand'
379
- Enabled: true
380
-
381
- Style/BlockComments:
382
- Description: 'Do not use block comments.'
383
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments'
384
- Enabled: true
385
-
386
- Layout/BlockEndNewline:
387
- Description: 'Put end statement of multiline block on its own line.'
388
- Enabled: true
389
-
390
- Style/BlockDelimiters:
391
- Description: >-
392
- Avoid using {...} for multi-line blocks (multiline chaining is
393
- always ugly).
394
- Prefer {...} over do...end for single-line blocks.
395
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
396
- Enabled: true
397
-
398
- Style/CaseEquality:
399
- Description: 'Avoid explicit use of the case equality operator(===).'
400
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
401
- Enabled: true
402
-
403
- Layout/CaseIndentation:
404
- Description: 'Indentation of when in a case/when/[else/]end.'
405
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-when-to-case'
406
- Enabled: true
407
-
408
- Style/CharacterLiteral:
409
- Description: 'Checks for uses of character literals.'
410
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
411
- Enabled: true
412
-
413
- Naming/ClassAndModuleCamelCase:
414
- Description: 'Use CamelCase for classes and modules.'
415
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#camelcase-classes'
416
- Enabled: true
417
-
418
- Style/ClassAndModuleChildren:
419
- Description: 'Checks style of children classes and modules.'
420
- Enabled: false
421
-
422
- Style/ClassCheck:
423
- Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
424
- Enabled: true
425
-
426
- Style/ClassMethods:
427
- Description: 'Use self when defining module/class methods.'
428
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#def-self-class-methods'
429
- Enabled: true
430
-
431
- Style/ClassVars:
432
- Description: 'Avoid the use of class variables.'
433
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
434
- Enabled: true
435
-
436
- Layout/ClosingParenthesisIndentation:
437
- Description: 'Checks the indentation of hanging closing parentheses.'
438
- Enabled: true
439
-
440
- Style/ColonMethodCall:
441
- Description: 'Do not use :: for method call.'
442
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
443
- Enabled: true
444
-
445
- Style/CommandLiteral:
446
- Description: 'Use `` or %x around command literals.'
447
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-x'
448
- Enabled: true
449
-
450
- Style/CommentAnnotation:
451
- Description: 'Checks formatting of annotation comments.'
452
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
453
- Enabled: true
454
-
455
- Layout/CommentIndentation:
456
- Description: 'Indentation of comments.'
457
- Enabled: true
458
-
459
- Naming/ConstantName:
460
- Description: 'Constants should use SCREAMING_SNAKE_CASE.'
461
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#screaming-snake-case'
462
- Enabled: true
463
-
464
- Style/DefWithParentheses:
465
- Description: 'Use def with parentheses when there are arguments.'
466
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
467
- Enabled: true
468
-
469
- Style/PreferredHashMethods:
470
- Description: 'Checks for use of deprecated Hash methods.'
471
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
472
- Enabled: true
473
-
474
- Style/Documentation:
475
- Description: 'Document classes and non-namespace modules.'
476
- Enabled: false
477
-
478
- Layout/DotPosition:
479
- Description: 'Checks the position of the dot in multi-line method calls.'
480
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
481
- Enabled: true
482
-
483
- Style/DoubleNegation:
484
- Description: 'Checks for uses of double negation (!!).'
485
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
486
- Enabled: true
487
-
488
- Style/EachWithObject:
489
- Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
490
- Enabled: true
491
-
492
- Layout/ElseAlignment:
493
- Description: 'Align elses and elsifs correctly.'
494
- Enabled: true
495
-
496
- Style/EmptyElse:
497
- Description: 'Avoid empty else-clauses.'
498
- Enabled: true
499
-
500
- Layout/EmptyLineBetweenDefs:
501
- Description: 'Use empty lines between defs.'
502
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods'
503
- Enabled: true
504
-
505
- Layout/EmptyLines:
506
- Description: "Don't use several empty lines in a row."
507
- Enabled: true
508
-
509
- Layout/EmptyLinesAroundAccessModifier:
510
- Description: "Keep blank lines around access modifiers."
511
- Enabled: true
512
-
513
- Layout/EmptyLinesAroundBlockBody:
514
- Description: "Keeps track of empty lines around block bodies."
515
- Enabled: true
516
-
517
- Layout/EmptyLinesAroundClassBody:
518
- Description: "Keeps track of empty lines around class bodies."
519
- Enabled: true
520
-
521
- Layout/EmptyLinesAroundModuleBody:
522
- Description: "Keeps track of empty lines around module bodies."
523
- Enabled: true
524
-
525
- Layout/EmptyLinesAroundMethodBody:
526
- Description: "Keeps track of empty lines around method bodies."
527
- Enabled: true
528
-
529
- Style/EmptyLiteral:
530
- Description: 'Prefer literals to Array.new/Hash.new/String.new.'
531
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
532
- Enabled: true
533
-
534
- Style/EndBlock:
535
- Description: 'Avoid the use of END blocks.'
536
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-END-blocks'
537
- Enabled: true
538
-
539
- Layout/EndOfLine:
540
- Description: 'Use Unix-style line endings.'
541
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#crlf'
542
- Enabled: false
543
-
544
- Style/EvenOdd:
545
- Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
546
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
547
- Enabled: true
548
-
549
- Layout/ExtraSpacing:
550
- Description: 'Do not use unnecessary spacing.'
551
- Enabled: true
552
-
553
- Naming/FileName:
554
- Description: 'Use snake_case for source file names.'
555
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
556
- Enabled: true
557
-
558
- Layout/InitialIndentation:
559
- Description: >-
560
- Checks the indentation of the first non-blank non-comment line in a file.
561
- Enabled: true
562
-
563
- Layout/FirstArgumentIndentation:
564
- Description: 'Checks the indentation of the first parameter in a method call.'
565
- Enabled: true
566
-
567
- Lint/FlipFlop:
568
- Description: 'Checks for flip flops'
569
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
570
- Enabled: false
571
-
572
- Style/For:
573
- Description: 'Checks use of for or each in multiline loops.'
574
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-for-loops'
575
- Enabled: true
576
-
577
- Style/FormatString:
578
- Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
579
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
580
- EnforcedStyle: percent
581
- Enabled: true
582
-
583
- Style/FormatStringToken:
584
- Enabled: false
585
-
586
- Style/GlobalVars:
587
- Description: 'Do not introduce global variables.'
588
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
589
- Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
590
- Enabled: true
591
-
592
- Style/GuardClause:
593
- Description: 'Check for conditionals that can be replaced with guard clauses'
594
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
595
- Enabled: true
596
-
597
- Style/HashSyntax:
598
- Description: >-
599
- Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
600
- { :a => 1, :b => 2 }.
601
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals'
602
- Enabled: false # wants to support ruby 1.8
603
-
604
- Style/IfUnlessModifier:
605
- Description: >-
606
- Favor modifier if/unless usage when you have a
607
- single-line body.
608
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
609
- Enabled: true
610
-
611
- Style/IfWithSemicolon:
612
- Description: 'Do not use if x; .... Use the ternary operator instead.'
613
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
614
- Enabled: true
615
-
616
- Layout/IndentationConsistency:
617
- Description: 'Keep indentation straight.'
618
- Enabled: true
619
-
620
- Layout/IndentationWidth:
621
- Description: 'Use 2 spaces for indentation.'
622
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
623
- Enabled: true
624
-
625
- Layout/FirstArrayElementIndentation:
626
- Description: >-
627
- Checks the indentation of the first element in an array
628
- literal.
629
- EnforcedStyle: consistent
630
- Enabled: true
631
-
632
- Layout/FirstHashElementIndentation:
633
- Description: 'Checks the indentation of the first key in a hash literal.'
634
- EnforcedStyle: consistent
635
- Enabled: true
636
-
637
- Style/InfiniteLoop:
638
- Description: 'Use Kernel#loop for infinite loops.'
639
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#infinite-loop'
640
- Enabled: true
641
-
642
- Style/Lambda:
643
- Description: 'Use the new lambda literal syntax for single-line blocks.'
644
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
645
- Enabled: true
646
-
647
- Style/LambdaCall:
648
- Description: 'Use lambda.call(...) instead of lambda.(...).'
649
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
650
- Enabled: true
651
-
652
- Layout/LeadingCommentSpace:
653
- Description: 'Comments should start with a space.'
654
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space'
655
- Enabled: true
656
-
657
- Style/LineEndConcatenation:
658
- Description: >-
659
- Use \ instead of + or << to concatenate two string literals at
660
- line end.
661
- Enabled: true
662
-
663
- Style/MethodCallWithoutArgsParentheses:
664
- Description: 'Do not use parentheses for method calls with no arguments.'
665
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
666
- Enabled: true
667
-
668
- Style/MethodDefParentheses:
669
- Description: >-
670
- Checks if the method definitions have or don't have
671
- parentheses.
672
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
673
- Enabled: true
674
-
675
- Naming/MethodName:
676
- Description: 'Use the configured style when naming methods.'
677
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
678
- Enabled: true
679
-
680
- Style/ModuleFunction:
681
- Description: 'Checks for usage of `extend self` in modules.'
682
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
683
- Enabled: true
684
-
685
- Style/MultilineBlockChain:
686
- Description: 'Avoid multi-line chains of blocks.'
687
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
688
- Enabled: true
689
-
690
- Layout/MultilineBlockLayout:
691
- Description: 'Ensures newlines after multiline block do statements.'
692
- Enabled: true
693
-
694
- Style/MultilineIfThen:
695
- Description: 'Do not use then for multi-line if/unless.'
696
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-then'
697
- Enabled: true
698
-
699
- Layout/MultilineOperationIndentation:
700
- Description: >-
701
- Checks indentation of binary operations that span more than
702
- one line.
703
- Enabled: true
704
-
705
- Style/MultilineTernaryOperator:
706
- Description: >-
707
- Avoid multi-line ?: (the ternary operator);
708
- use if/unless instead.
709
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary'
710
- Enabled: true
711
-
712
- Style/NegatedIf:
713
- Description: >-
714
- Favor unless over if for negative conditions
715
- (or control flow or).
716
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
717
- Enabled: false
718
-
719
- Style/NegatedWhile:
720
- Description: 'Favor until over while for negative conditions.'
721
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
722
- Enabled: false
723
-
724
- Style/NestedTernaryOperator:
725
- Description: 'Use one expression per branch in a ternary operator.'
726
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-ternary'
727
- Enabled: true
728
-
729
- Style/Next:
730
- Description: 'Use `next` to skip iteration instead of a condition at the end.'
731
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
732
- Enabled: true
733
-
734
- Style/NilComparison:
735
- Description: 'Prefer x.nil? to x == nil.'
736
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
737
- EnforcedStyle: comparison
738
- Enabled: true
739
-
740
- Style/NonNilCheck:
741
- # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
742
- # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
743
- # **usually** OK, but might change behavior.
744
- #
745
- # With `IncludeSemanticChanges` set to `false`, this cop does not report
746
- # offenses for `!x.nil?` and does no changes that might change behavior.
747
- Description: 'Checks for redundant nil checks.'
748
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks'
749
- IncludeSemanticChanges: true
750
- Enabled: false
751
-
752
- Style/Not:
753
- Description: 'Use ! instead of not.'
754
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
755
- Enabled: false
756
-
757
- Style/NumericLiterals:
758
- Description: >-
759
- Add underscores to large numeric literals to improve their
760
- readability.
761
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
762
- Enabled: false
763
-
764
- Style/OneLineConditional:
765
- Description: >-
766
- Favor the ternary operator(?:) over
767
- if/then/else/end constructs.
768
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
769
- Enabled: true
770
-
771
- Naming/BinaryOperatorParameterName:
772
- Description: 'When defining binary operators, name the argument other.'
773
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
774
- Enabled: true
775
-
776
- Style/OptionalArguments:
777
- Description: >-
778
- Checks for optional arguments that do not appear at the end
779
- of the argument list
780
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#optional-arguments'
781
- Enabled: true
782
-
783
- Style/ParallelAssignment:
784
- Description: >-
785
- Check for simple usages of parallel assignment.
786
- It will only warn when the number of variables
787
- matches on both sides of the assignment.
788
- This also provides performance benefits
789
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parallel-assignment'
790
- Enabled: true
791
-
792
- Style/ParenthesesAroundCondition:
793
- Description: >-
794
- Don't use parentheses around the condition of an
795
- if/unless/while.
796
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-parens-if'
797
- Enabled: true
798
-
799
- Style/PercentLiteralDelimiters:
800
- Description: 'Use `%`-literal delimiters consistently'
801
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
802
- Enabled: true
803
-
804
- Style/PercentQLiterals:
805
- Description: 'Checks if uses of %Q/%q match the configured preference.'
806
- Enabled: true
807
-
808
- Style/PerlBackrefs:
809
- Description: 'Avoid Perl-style regex back references.'
810
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
811
- Enabled: false
812
-
813
- Naming/PredicateName:
814
- Description: 'Check the names of predicate methods.'
815
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
816
- Enabled: true
817
-
818
- Style/Proc:
819
- Description: 'Use proc instead of Proc.new.'
820
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
821
- Enabled: true
822
-
823
- Style/RaiseArgs:
824
- Description: 'Checks the arguments passed to raise/fail.'
825
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
826
- Enabled: true
827
-
828
- Style/RedundantBegin:
829
- Description: "Don't use begin blocks when they are not needed."
830
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#begin-implicit'
831
- Enabled: true
832
-
833
- Style/RedundantException:
834
- Description: "Checks for an obsolete RuntimeException argument in raise/fail."
835
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror'
836
- Enabled: true
837
-
838
- Style/RedundantReturn:
839
- Description: "Don't use return where it's not required."
840
- # When `true` allows code like `return x, y`.
841
- AllowMultipleReturnValues: false
842
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return'
843
- Enabled: false
844
-
845
- Style/RedundantSelf:
846
- Description: "Don't use self where it's not needed."
847
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-self-unless-required'
848
- Enabled: true
849
-
850
- Style/RegexpLiteral:
851
- Description: 'Use / or %r around regular expressions.'
852
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
853
- EnforcedStyle: slashes
854
- AllowInnerSlashes: false
855
- Enabled: true
856
-
857
- Layout/RescueEnsureAlignment:
858
- Description: 'Align rescues and ensures correctly.'
859
- Enabled: true
860
-
861
- Style/RescueModifier:
862
- Description: 'Avoid using rescue in its modifier form.'
863
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers'
864
- Enabled: true
865
-
866
- Style/SelfAssignment:
867
- Description: >-
868
- Checks for places where self-assignment shorthand should have
869
- been used.
870
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
871
- Enabled: true
872
-
873
- Style/Semicolon:
874
- Description: "Don't use semicolons to terminate expressions."
875
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon'
876
- Enabled: true
877
-
878
- Style/SignalException:
879
- Description: 'Checks for proper usage of fail and raise.'
880
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
881
- EnforcedStyle: semantic
882
- Enabled: true
883
-
884
- Style/SingleLineBlockParams:
885
- Description: 'Enforces the names of some block params.'
886
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
887
- Methods:
888
- - reduce:
889
- - sum
890
- - v
891
- - inject:
892
- - sum
893
- - v
894
- Enabled: false
895
-
896
- Style/SingleLineMethods:
897
- Description: 'Avoid single-line methods.'
898
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
899
- Enabled: true
900
-
901
- Layout/SpaceBeforeFirstArg:
902
- Description: >-
903
- Checks that exactly one space is used between a method name
904
- and the first argument for method calls without parentheses.
905
- Enabled: true
906
-
907
- Layout/SpaceAfterColon:
908
- Description: 'Use spaces after colons.'
909
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
910
- Enabled: true
911
-
912
- Layout/SpaceAfterComma:
913
- Description: 'Use spaces after commas.'
914
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
915
- Enabled: true
916
-
917
- Layout/SpaceAroundKeyword:
918
- Description: 'Use spaces around keywords.'
919
- Enabled: true
920
-
921
- Layout/SpaceAfterMethodName:
922
- Description: >-
923
- Do not put a space between a method name and the opening
924
- parenthesis in a method definition.
925
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
926
- Enabled: true
927
-
928
- Layout/SpaceAfterNot:
929
- Description: Tracks redundant space after the ! operator.
930
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-bang'
931
- Enabled: true
932
-
933
- Layout/SpaceAfterSemicolon:
934
- Description: 'Use spaces after semicolons.'
935
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
936
- Enabled: true
937
-
938
- Layout/SpaceBeforeBlockBraces:
939
- Description: >-
940
- Checks that the left block brace has or doesn't have space
941
- before it.
942
- EnforcedStyle: no_space
943
- Enabled: true
944
-
945
- Layout/SpaceBeforeComma:
946
- Description: 'No spaces before commas.'
947
- Enabled: true
948
-
949
- Layout/SpaceBeforeComment:
950
- Description: >-
951
- Checks for missing space between code and a comment on the
952
- same line.
953
- Enabled: true
954
-
955
- Layout/SpaceBeforeSemicolon:
956
- Description: 'No spaces before semicolons.'
957
- Enabled: false
958
-
959
- Layout/SpaceInsideBlockBraces:
960
- Description: >-
961
- Checks that block braces have or don't have surrounding space.
962
- For blocks taking parameters, checks that the left brace has
963
- or doesn't have trailing space.
964
- SpaceBeforeBlockParameters: false
965
- Enabled: true
966
-
967
- Layout/SpaceAroundBlockParameters:
968
- Description: 'Checks the spacing inside and after block parameters pipes.'
969
- Enabled: true
970
-
971
- Layout/SpaceAroundEqualsInParameterDefault:
972
- Description: >-
973
- Checks that the equals signs in parameter default assignments
974
- have or don't have surrounding space depending on
975
- configuration.
976
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-around-equals'
977
- Enabled: true
978
-
979
- Layout/SpaceAroundOperators:
980
- Description: 'Use a single space around operators.'
981
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
982
- Enabled: true
983
-
984
- Layout/SpaceInsideArrayLiteralBrackets:
985
- Description: 'Checks the spacing inside array literal brackets.'
986
- Enabled: true
987
- EnforcedStyle: no_space
988
- SupportedStyles:
989
- - space
990
- - no_space
991
- # 'compact' normally requires a space inside the brackets, with the exception
992
- # that successive left brackets or right brackets are collapsed together
993
- - compact
994
- EnforcedStyleForEmptyBrackets: no_space
995
- SupportedStylesForEmptyBrackets:
996
- - space
997
- - no_space
998
-
999
- Layout/SpaceInsideReferenceBrackets:
1000
- Description: 'Checks the spacing inside referential brackets.'
1001
- Enabled: true
1002
- EnforcedStyle: no_space
1003
- SupportedStyles:
1004
- - space
1005
- - no_space
1006
- EnforcedStyleForEmptyBrackets: no_space
1007
- SupportedStylesForEmptyBrackets:
1008
- - space
1009
- - no_space
1010
-
1011
- Layout/SpaceInsideHashLiteralBraces:
1012
- Description: "Use spaces inside hash literal braces - or don't."
1013
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
1014
- # SupportedStyles:
1015
- # - space
1016
- # - no_space
1017
- # # 'compact' normally requires a space inside hash braces, with the exception
1018
- # # that successive left braces or right braces are collapsed together
1019
- # - compact
1020
- EnforcedStyle: compact
1021
- Enabled: true
1022
-
1023
- Layout/SpaceInsideParens:
1024
- Description: 'No spaces after ( or before ).'
1025
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
1026
- Enabled: true
1027
-
1028
- Layout/SpaceInsideRangeLiteral:
1029
- Description: 'No spaces inside range literals.'
1030
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals'
1031
- Enabled: true
1032
-
1033
- Layout/SpaceInsideStringInterpolation:
1034
- Description: 'Checks for padding/surrounding spaces inside string interpolation.'
1035
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#string-interpolation'
1036
- Enabled: true
1037
-
1038
- Style/SpecialGlobalVars:
1039
- Description: 'Avoid Perl-style global variables.'
1040
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
1041
- Enabled: true
1042
-
1043
- Style/StringLiterals:
1044
- Description: 'Checks if uses of quotes match the configured preference.'
1045
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
1046
- Enabled: true
1047
-
1048
- Style/StringLiteralsInInterpolation:
1049
- Description: >-
1050
- Checks if uses of quotes inside expressions in interpolated
1051
- strings match the configured preference.
1052
- Enabled: true
1053
-
1054
- Style/StructInheritance:
1055
- Description: 'Checks for inheritance from Struct.new.'
1056
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new'
1057
- Enabled: true
1058
-
1059
- Style/SymbolLiteral:
1060
- Description: 'Use plain symbols instead of string symbols when possible.'
1061
- Enabled: true
1062
-
1063
- Style/SymbolProc:
1064
- Description: 'Use symbols as procs instead of blocks when possible.'
1065
- Enabled: false # wants to support ruby 1.8
1066
-
1067
- Layout/IndentationStyle:
1068
- Description: 'No hard tabs.'
1069
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
1070
- Enabled: true
1071
-
1072
- Layout/TrailingEmptyLines:
1073
- Description: 'Checks trailing blank lines and final newline.'
1074
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#newline-eof'
1075
- Enabled: true
1076
-
1077
- Style/TrailingCommaInArguments:
1078
- # If `comma`, the cop requires a comma after the last argument, but only for
1079
- # parenthesized method calls where each argument is on its own line.
1080
- # If `comma_for_multiple_args`, the cop behaves like `comma` except when
1081
- # there's only one argument, in which case it requires that there's no
1082
- # trailing comma.
1083
- # If `consistent_comma`, the cop requires a comma after the last argument,
1084
- # for all parenthesized method calls with arguments.
1085
- Description: 'Checks for trailing comma in parameter lists.'
1086
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-params-comma'
1087
- EnforcedStyleForMultiline: no_comma # wants to support ruby 1.8
1088
- Enabled: true
1089
-
1090
- Style/TrailingCommaInArrayLiteral:
1091
- Description: 'Checks for trailing comma in array literals.'
1092
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
1093
- EnforcedStyleForMultiline: comma
1094
- SupportedStylesForMultiline:
1095
- - comma
1096
- - consistent_comma
1097
- - no_comma
1098
- Enabled: true
1099
-
1100
- Style/TrailingCommaInHashLiteral:
1101
- Description: 'Checks for trailing comma in hash literals.'
1102
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
1103
- EnforcedStyleForMultiline: comma
1104
- SupportedStylesForMultiline:
1105
- - comma
1106
- - consistent_comma
1107
- - no_comma
1108
- Enabled: true
1109
-
1110
- Layout/TrailingWhitespace:
1111
- Description: 'Avoid trailing whitespace.'
1112
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace'
1113
- Enabled: true
1114
-
1115
- Style/TrivialAccessors:
1116
- Description: 'Prefer attr_* methods to trivial readers/writers.'
1117
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
1118
- Enabled: true
1119
-
1120
- Style/UnlessElse:
1121
- Description: >-
1122
- Do not use unless with else. Rewrite these with the positive
1123
- case first.
1124
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-else-with-unless'
1125
- Enabled: true
1126
-
1127
- Style/RedundantCapitalW:
1128
- Description: 'Checks for %W when interpolation is not needed.'
1129
- Enabled: true
1130
-
1131
- Style/RedundantPercentQ:
1132
- Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
1133
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q'
1134
- Enabled: true
1135
-
1136
- Style/TrailingUnderscoreVariable:
1137
- Description: >-
1138
- Checks for the usage of unneeded trailing underscores at the
1139
- end of parallel variable assignment.
1140
- Enabled: true
1141
-
1142
- Style/VariableInterpolation:
1143
- Description: >-
1144
- Don't interpolate global, instance and class variables
1145
- directly in strings.
1146
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
1147
- Enabled: true
1148
-
1149
- Naming/VariableName:
1150
- Description: 'Use the configured style when naming variables.'
1151
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
1152
- Enabled: true
1153
-
1154
- Style/WhenThen:
1155
- Description: 'Use when x then ... for one-line cases.'
1156
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
1157
- Enabled: false
1158
-
1159
- Style/WhileUntilDo:
1160
- Description: 'Checks for redundant do after while or until.'
1161
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do'
1162
- Enabled: true
1163
-
1164
- Style/WhileUntilModifier:
1165
- Description: >-
1166
- Favor modifier while/until usage when you have a
1167
- single-line body.
1168
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
1169
- Enabled: true
1170
-
1171
- Style/WordArray:
1172
- Description: 'Use %w or %W for arrays of words.'
1173
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
1174
- Enabled: true
1
+ require:
2
+ - rubocop-performance
3
+
4
+ AllCops:
5
+ DisabledByDefault: true
6
+ Exclude: []
7
+
8
+ #################### Lint ################################
9
+
10
+ Lint/AmbiguousOperator:
11
+ Description: >-
12
+ Checks for ambiguous operators in the first argument of a
13
+ method invocation without parentheses.
14
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
15
+ Enabled: true
16
+
17
+ Lint/AmbiguousRegexpLiteral:
18
+ Description: >-
19
+ Checks for ambiguous regexp literals in the first argument of
20
+ a method invocation without parenthesis.
21
+ Enabled: true
22
+
23
+ Lint/AssignmentInCondition:
24
+ Description: "Don't use assignment in conditions."
25
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
26
+ Enabled: true
27
+
28
+ Layout/BlockAlignment:
29
+ Description: 'Align block ends correctly.'
30
+ Enabled: true
31
+
32
+ Lint/CircularArgumentReference:
33
+ Description: "Don't refer to the keyword argument in the default value."
34
+ Enabled: true
35
+
36
+ Layout/ConditionPosition:
37
+ Description: >-
38
+ Checks for condition placed in a confusing position relative to
39
+ the keyword.
40
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
41
+ Enabled: true
42
+
43
+ Lint/Debugger:
44
+ Description: 'Check for debugger calls.'
45
+ Enabled: true
46
+
47
+ Layout/DefEndAlignment:
48
+ Description: 'Align ends corresponding to defs correctly.'
49
+ Enabled: true
50
+
51
+ Lint/DeprecatedClassMethods:
52
+ Description: 'Check for deprecated class method calls.'
53
+ Enabled: true
54
+
55
+ Lint/DuplicateMethods:
56
+ Description: 'Check for duplicate methods calls.'
57
+ Enabled: true
58
+
59
+ Lint/EachWithObjectArgument:
60
+ Description: 'Check for immutable argument given to each_with_object.'
61
+ Enabled: true
62
+
63
+ Lint/ElseLayout:
64
+ Description: 'Check for odd code arrangement in an else block.'
65
+ Enabled: true
66
+
67
+ Lint/EmptyEnsure:
68
+ Description: 'Checks for empty ensure block.'
69
+ Enabled: true
70
+
71
+ Lint/EmptyInterpolation:
72
+ Description: 'Checks for empty string interpolation.'
73
+ Enabled: true
74
+
75
+ Layout/EndAlignment:
76
+ Description: 'Align ends correctly.'
77
+ Enabled: true
78
+
79
+ Lint/EnsureReturn:
80
+ Description: 'Do not use return in an ensure block.'
81
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-return-ensure'
82
+ Enabled: true
83
+
84
+ Security/Eval:
85
+ Description: 'The use of eval represents a serious security risk.'
86
+ Enabled: true
87
+
88
+ Lint/FormatParameterMismatch:
89
+ Description: 'The number of parameters to format/sprint must match the fields.'
90
+ Enabled: true
91
+
92
+ Lint/SuppressedException:
93
+ Description: "Don't suppress exception."
94
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
95
+ Enabled: true
96
+
97
+ Lint/LiteralInInterpolation:
98
+ Description: 'Checks for literals used in interpolation.'
99
+ Enabled: true
100
+
101
+ Lint/Loop:
102
+ Description: >-
103
+ Use Kernel#loop with break rather than begin/end/until or
104
+ begin/end/while for post-loop tests.
105
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
106
+ Enabled: true
107
+
108
+ Lint/NestedMethodDefinition:
109
+ Description: 'Do not use nested method definitions.'
110
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
111
+ Enabled: true
112
+
113
+ Lint/NonLocalExitFromIterator:
114
+ Description: 'Do not use return in iterator to cause non-local exit.'
115
+ Enabled: true
116
+
117
+ Lint/ParenthesesAsGroupedExpression:
118
+ Description: >-
119
+ Checks for method calls with a space before the opening
120
+ parenthesis.
121
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
122
+ Enabled: true
123
+
124
+ Lint/RequireParentheses:
125
+ Description: >-
126
+ Use parentheses in the method call to avoid confusion
127
+ about precedence.
128
+ Enabled: true
129
+
130
+ Lint/RescueException:
131
+ Description: 'Avoid rescuing the Exception class.'
132
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-blind-rescues'
133
+ Enabled: true
134
+
135
+ Lint/ShadowingOuterLocalVariable:
136
+ Description: >-
137
+ Do not use the same name as outer local variable
138
+ for block arguments or block local variables.
139
+ Enabled: true
140
+
141
+ Lint/RedundantStringCoercion:
142
+ Description: 'Checks for Object#to_s usage in string interpolation.'
143
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-to-s'
144
+ Enabled: true
145
+
146
+ Lint/UnderscorePrefixedVariableName:
147
+ Description: 'Do not use prefix `_` for a variable that is used.'
148
+ Enabled: true
149
+
150
+ Lint/RedundantCopDisableDirective:
151
+ Description: >-
152
+ Checks for rubocop:disable comments that can be removed.
153
+ Note: this cop is not disabled when disabling all cops.
154
+ It must be explicitly disabled.
155
+ Enabled: true
156
+
157
+ Lint/UnusedBlockArgument:
158
+ Description: 'Checks for unused block arguments.'
159
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
160
+ Enabled: true
161
+
162
+ Lint/UnusedMethodArgument:
163
+ Description: 'Checks for unused method arguments.'
164
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
165
+ Enabled: true
166
+
167
+ Lint/UnreachableCode:
168
+ Description: 'Unreachable code.'
169
+ Enabled: true
170
+
171
+ Lint/UselessAccessModifier:
172
+ Description: 'Checks for useless access modifiers.'
173
+ Enabled: true
174
+
175
+ Lint/UselessAssignment:
176
+ Description: 'Checks for useless assignment to a local variable.'
177
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
178
+ Enabled: true
179
+
180
+ Lint/BinaryOperatorWithIdenticalOperands:
181
+ Description: 'This cop checks for places where binary operator has identical operands.'
182
+ Enabled: true
183
+
184
+ Lint/UselessElseWithoutRescue:
185
+ Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
186
+ Enabled: true
187
+
188
+ Lint/UselessSetterCall:
189
+ Description: 'Checks for useless setter call to a local variable.'
190
+ Enabled: true
191
+
192
+ Lint/Void:
193
+ Description: 'Possible use of operator/literal/variable in void context.'
194
+ Enabled: true
195
+
196
+ ###################### Metrics ####################################
197
+
198
+ Metrics/AbcSize:
199
+ Description: >-
200
+ A calculated magnitude based on number of assignments,
201
+ branches, and conditions.
202
+ Reference: 'http://c2.com/cgi/wiki?AbcMetric'
203
+ Enabled: true
204
+ Max: 25
205
+
206
+ Metrics/BlockNesting:
207
+ Description: 'Avoid excessive block nesting'
208
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
209
+ Enabled: true
210
+ Max: 4
211
+
212
+ Metrics/ClassLength:
213
+ Description: 'Avoid classes longer than 250 lines of code.'
214
+ Enabled: true
215
+ Max: 250
216
+
217
+ Metrics/CyclomaticComplexity:
218
+ Description: >-
219
+ A complexity metric that is strongly correlated to the number
220
+ of test cases needed to validate a method.
221
+ Enabled: true
222
+
223
+ Layout/LineLength:
224
+ Description: 'Limit lines to 120 characters.'
225
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
226
+ Max: 120
227
+ Enabled: true
228
+ Exclude:
229
+ - 'config/locales/**'
230
+
231
+ Metrics/MethodLength:
232
+ Description: 'Avoid methods longer than 30 lines of code.'
233
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
234
+ Enabled: true
235
+ Max: 30
236
+
237
+ Metrics/ModuleLength:
238
+ Description: 'Avoid modules longer than 250 lines of code.'
239
+ Enabled: true
240
+ Max: 250
241
+
242
+ Metrics/ParameterLists:
243
+ Description: 'Avoid parameter lists longer than three or four parameters.'
244
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
245
+ Enabled: true
246
+
247
+ Metrics/PerceivedComplexity:
248
+ Description: >-
249
+ A complexity metric geared towards measuring complexity for a
250
+ human reader.
251
+ Enabled: true
252
+
253
+ ##################### Performance #############################
254
+
255
+ Performance/Count:
256
+ Description: >-
257
+ Use `count` instead of `select...size`, `reject...size`,
258
+ `select...count`, `reject...count`, `select...length`,
259
+ and `reject...length`.
260
+ Enabled: true
261
+
262
+ Performance/Detect:
263
+ Description: >-
264
+ Use `detect` instead of `select.first`, `find_all.first`,
265
+ `select.last`, and `find_all.last`.
266
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
267
+ Enabled: true
268
+
269
+ Performance/FlatMap:
270
+ Description: >-
271
+ Use `Enumerable#flat_map`
272
+ instead of `Enumerable#map...Array#flatten(1)`
273
+ or `Enumberable#collect..Array#flatten(1)`
274
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
275
+ Enabled: true
276
+ EnabledForFlattenWithoutParams: false
277
+ # If enabled, this cop will warn about usages of
278
+ # `flatten` being called without any parameters.
279
+ # This can be dangerous since `flat_map` will only flatten 1 level, and
280
+ # `flatten` without any parameters can flatten multiple levels.
281
+
282
+ Performance/ReverseEach:
283
+ Description: 'Use `reverse_each` instead of `reverse.each`.'
284
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
285
+ Enabled: true
286
+
287
+ Style/Sample:
288
+ Description: >-
289
+ Use `sample` instead of `shuffle.first`,
290
+ `shuffle.last`, and `shuffle[Fixnum]`.
291
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
292
+ Enabled: true
293
+
294
+ Performance/Size:
295
+ Description: >-
296
+ Use `size` instead of `count` for counting
297
+ the number of elements in `Array` and `Hash`.
298
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
299
+ Enabled: true
300
+
301
+ Performance/StringReplacement:
302
+ Description: >-
303
+ Use `tr` instead of `gsub` when you are replacing the same
304
+ number of characters. Use `delete` instead of `gsub` when
305
+ you are deleting characters.
306
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
307
+ Enabled: true
308
+
309
+ ################## Style #################################
310
+
311
+ Layout/AccessModifierIndentation:
312
+ Description: Check indentation of private/protected visibility modifiers.
313
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected'
314
+ Enabled: true
315
+
316
+ Naming/AccessorMethodName:
317
+ Description: Check the naming of accessor methods for get_/set_.
318
+ Enabled: false
319
+
320
+ Style/Alias:
321
+ Description: 'Use alias_method instead of alias.'
322
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
323
+ Enabled: true
324
+
325
+ Layout/ArrayAlignment:
326
+ Description: >-
327
+ Align the elements of an array literal if they span more than
328
+ one line.
329
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays'
330
+ Enabled: true
331
+
332
+ Layout/HashAlignment:
333
+ Description: >-
334
+ Align the elements of a hash literal if they span more than
335
+ one line.
336
+ EnforcedHashRocketStyle: table
337
+ Enabled: true
338
+
339
+ Layout/ParameterAlignment:
340
+ Description: >-
341
+ Align the parameters of a method call if they span more
342
+ than one line.
343
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
344
+ Enabled: true
345
+
346
+ Style/AndOr:
347
+ Description: 'Use &&/|| instead of and/or.'
348
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-and-or-or'
349
+ Enabled: false
350
+
351
+ Style/ArrayJoin:
352
+ Description: 'Use Array#join instead of Array#*.'
353
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
354
+ Enabled: true
355
+
356
+ Style/AsciiComments:
357
+ Description: 'Use only ascii symbols in comments.'
358
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
359
+ Enabled: false
360
+
361
+ Naming/AsciiIdentifiers:
362
+ Description: 'Use only ascii symbols in identifiers.'
363
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
364
+ Enabled: true
365
+
366
+ Style/Attr:
367
+ Description: 'Checks for uses of Module#attr.'
368
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
369
+ Enabled: true
370
+
371
+ Style/BeginBlock:
372
+ Description: 'Avoid the use of BEGIN blocks.'
373
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks'
374
+ Enabled: true
375
+
376
+ Style/BarePercentLiterals:
377
+ Description: 'Checks if usage of %() or %Q() matches configuration.'
378
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand'
379
+ Enabled: true
380
+
381
+ Style/BlockComments:
382
+ Description: 'Do not use block comments.'
383
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments'
384
+ Enabled: true
385
+
386
+ Layout/BlockEndNewline:
387
+ Description: 'Put end statement of multiline block on its own line.'
388
+ Enabled: true
389
+
390
+ Style/BlockDelimiters:
391
+ Description: >-
392
+ Avoid using {...} for multi-line blocks (multiline chaining is
393
+ always ugly).
394
+ Prefer {...} over do...end for single-line blocks.
395
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
396
+ Enabled: true
397
+
398
+ Style/CaseEquality:
399
+ Description: 'Avoid explicit use of the case equality operator(===).'
400
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
401
+ Enabled: true
402
+
403
+ Layout/CaseIndentation:
404
+ Description: 'Indentation of when in a case/when/[else/]end.'
405
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-when-to-case'
406
+ Enabled: true
407
+
408
+ Style/CharacterLiteral:
409
+ Description: 'Checks for uses of character literals.'
410
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
411
+ Enabled: true
412
+
413
+ Naming/ClassAndModuleCamelCase:
414
+ Description: 'Use CamelCase for classes and modules.'
415
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#camelcase-classes'
416
+ Enabled: true
417
+
418
+ Style/ClassAndModuleChildren:
419
+ Description: 'Checks style of children classes and modules.'
420
+ Enabled: false
421
+
422
+ Style/ClassCheck:
423
+ Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
424
+ Enabled: true
425
+
426
+ Style/ClassMethods:
427
+ Description: 'Use self when defining module/class methods.'
428
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#def-self-class-methods'
429
+ Enabled: true
430
+
431
+ Style/ClassVars:
432
+ Description: 'Avoid the use of class variables.'
433
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
434
+ Enabled: true
435
+
436
+ Layout/ClosingParenthesisIndentation:
437
+ Description: 'Checks the indentation of hanging closing parentheses.'
438
+ Enabled: true
439
+
440
+ Style/ColonMethodCall:
441
+ Description: 'Do not use :: for method call.'
442
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
443
+ Enabled: true
444
+
445
+ Style/CommandLiteral:
446
+ Description: 'Use `` or %x around command literals.'
447
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-x'
448
+ Enabled: true
449
+
450
+ Style/CommentAnnotation:
451
+ Description: 'Checks formatting of annotation comments.'
452
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
453
+ Enabled: true
454
+
455
+ Layout/CommentIndentation:
456
+ Description: 'Indentation of comments.'
457
+ Enabled: true
458
+
459
+ Naming/ConstantName:
460
+ Description: 'Constants should use SCREAMING_SNAKE_CASE.'
461
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#screaming-snake-case'
462
+ Enabled: true
463
+
464
+ Style/DefWithParentheses:
465
+ Description: 'Use def with parentheses when there are arguments.'
466
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
467
+ Enabled: true
468
+
469
+ Style/PreferredHashMethods:
470
+ Description: 'Checks for use of deprecated Hash methods.'
471
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
472
+ Enabled: true
473
+
474
+ Style/Documentation:
475
+ Description: 'Document classes and non-namespace modules.'
476
+ Enabled: false
477
+
478
+ Layout/DotPosition:
479
+ Description: 'Checks the position of the dot in multi-line method calls.'
480
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
481
+ Enabled: true
482
+
483
+ Style/DoubleNegation:
484
+ Description: 'Checks for uses of double negation (!!).'
485
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
486
+ Enabled: true
487
+
488
+ Style/EachWithObject:
489
+ Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
490
+ Enabled: true
491
+
492
+ Layout/ElseAlignment:
493
+ Description: 'Align elses and elsifs correctly.'
494
+ Enabled: true
495
+
496
+ Style/EmptyElse:
497
+ Description: 'Avoid empty else-clauses.'
498
+ Enabled: true
499
+
500
+ Layout/EmptyLineBetweenDefs:
501
+ Description: 'Use empty lines between defs.'
502
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods'
503
+ Enabled: true
504
+
505
+ Layout/EmptyLines:
506
+ Description: "Don't use several empty lines in a row."
507
+ Enabled: true
508
+
509
+ Layout/EmptyLinesAroundAccessModifier:
510
+ Description: "Keep blank lines around access modifiers."
511
+ Enabled: true
512
+
513
+ Layout/EmptyLinesAroundBlockBody:
514
+ Description: "Keeps track of empty lines around block bodies."
515
+ Enabled: true
516
+
517
+ Layout/EmptyLinesAroundClassBody:
518
+ Description: "Keeps track of empty lines around class bodies."
519
+ Enabled: true
520
+
521
+ Layout/EmptyLinesAroundModuleBody:
522
+ Description: "Keeps track of empty lines around module bodies."
523
+ Enabled: true
524
+
525
+ Layout/EmptyLinesAroundMethodBody:
526
+ Description: "Keeps track of empty lines around method bodies."
527
+ Enabled: true
528
+
529
+ Style/EmptyLiteral:
530
+ Description: 'Prefer literals to Array.new/Hash.new/String.new.'
531
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
532
+ Enabled: true
533
+
534
+ Style/EndBlock:
535
+ Description: 'Avoid the use of END blocks.'
536
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-END-blocks'
537
+ Enabled: true
538
+
539
+ Layout/EndOfLine:
540
+ Description: 'Use Unix-style line endings.'
541
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#crlf'
542
+ Enabled: false
543
+
544
+ Style/EvenOdd:
545
+ Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
546
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
547
+ Enabled: true
548
+
549
+ Layout/ExtraSpacing:
550
+ Description: 'Do not use unnecessary spacing.'
551
+ Enabled: true
552
+
553
+ Naming/FileName:
554
+ Description: 'Use snake_case for source file names.'
555
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
556
+ Enabled: true
557
+
558
+ Layout/InitialIndentation:
559
+ Description: >-
560
+ Checks the indentation of the first non-blank non-comment line in a file.
561
+ Enabled: true
562
+
563
+ Layout/FirstArgumentIndentation:
564
+ Description: 'Checks the indentation of the first parameter in a method call.'
565
+ Enabled: true
566
+
567
+ Lint/FlipFlop:
568
+ Description: 'Checks for flip flops'
569
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
570
+ Enabled: false
571
+
572
+ Style/For:
573
+ Description: 'Checks use of for or each in multiline loops.'
574
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-for-loops'
575
+ Enabled: true
576
+
577
+ Style/FormatString:
578
+ Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
579
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
580
+ EnforcedStyle: percent
581
+ Enabled: true
582
+
583
+ Style/FormatStringToken:
584
+ Enabled: false
585
+
586
+ Style/GlobalVars:
587
+ Description: 'Do not introduce global variables.'
588
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
589
+ Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
590
+ Enabled: true
591
+
592
+ Style/GuardClause:
593
+ Description: 'Check for conditionals that can be replaced with guard clauses'
594
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
595
+ Enabled: true
596
+
597
+ Style/HashSyntax:
598
+ Description: >-
599
+ Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
600
+ { :a => 1, :b => 2 }.
601
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals'
602
+ Enabled: false # wants to support ruby 1.8
603
+
604
+ Style/IfUnlessModifier:
605
+ Description: >-
606
+ Favor modifier if/unless usage when you have a
607
+ single-line body.
608
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
609
+ Enabled: true
610
+
611
+ Style/IfWithSemicolon:
612
+ Description: 'Do not use if x; .... Use the ternary operator instead.'
613
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
614
+ Enabled: true
615
+
616
+ Layout/IndentationConsistency:
617
+ Description: 'Keep indentation straight.'
618
+ Enabled: true
619
+
620
+ Layout/IndentationWidth:
621
+ Description: 'Use 2 spaces for indentation.'
622
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
623
+ Enabled: true
624
+
625
+ Layout/FirstArrayElementIndentation:
626
+ Description: >-
627
+ Checks the indentation of the first element in an array
628
+ literal.
629
+ EnforcedStyle: consistent
630
+ Enabled: true
631
+
632
+ Layout/FirstHashElementIndentation:
633
+ Description: 'Checks the indentation of the first key in a hash literal.'
634
+ EnforcedStyle: consistent
635
+ Enabled: true
636
+
637
+ Style/InfiniteLoop:
638
+ Description: 'Use Kernel#loop for infinite loops.'
639
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#infinite-loop'
640
+ Enabled: true
641
+
642
+ Style/Lambda:
643
+ Description: 'Use the new lambda literal syntax for single-line blocks.'
644
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
645
+ Enabled: true
646
+
647
+ Style/LambdaCall:
648
+ Description: 'Use lambda.call(...) instead of lambda.(...).'
649
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
650
+ Enabled: true
651
+
652
+ Layout/LeadingCommentSpace:
653
+ Description: 'Comments should start with a space.'
654
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space'
655
+ Enabled: true
656
+
657
+ Style/LineEndConcatenation:
658
+ Description: >-
659
+ Use \ instead of + or << to concatenate two string literals at
660
+ line end.
661
+ Enabled: true
662
+
663
+ Style/MethodCallWithoutArgsParentheses:
664
+ Description: 'Do not use parentheses for method calls with no arguments.'
665
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
666
+ Enabled: true
667
+
668
+ Style/MethodDefParentheses:
669
+ Description: >-
670
+ Checks if the method definitions have or don't have
671
+ parentheses.
672
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
673
+ Enabled: true
674
+
675
+ Naming/MethodName:
676
+ Description: 'Use the configured style when naming methods.'
677
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
678
+ Enabled: true
679
+
680
+ Style/ModuleFunction:
681
+ Description: 'Checks for usage of `extend self` in modules.'
682
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
683
+ Enabled: true
684
+
685
+ Style/MultilineBlockChain:
686
+ Description: 'Avoid multi-line chains of blocks.'
687
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
688
+ Enabled: true
689
+
690
+ Layout/MultilineBlockLayout:
691
+ Description: 'Ensures newlines after multiline block do statements.'
692
+ Enabled: true
693
+
694
+ Style/MultilineIfThen:
695
+ Description: 'Do not use then for multi-line if/unless.'
696
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-then'
697
+ Enabled: true
698
+
699
+ Layout/MultilineOperationIndentation:
700
+ Description: >-
701
+ Checks indentation of binary operations that span more than
702
+ one line.
703
+ Enabled: true
704
+
705
+ Style/MultilineTernaryOperator:
706
+ Description: >-
707
+ Avoid multi-line ?: (the ternary operator);
708
+ use if/unless instead.
709
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary'
710
+ Enabled: true
711
+
712
+ Style/NegatedIf:
713
+ Description: >-
714
+ Favor unless over if for negative conditions
715
+ (or control flow or).
716
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
717
+ Enabled: false
718
+
719
+ Style/NegatedWhile:
720
+ Description: 'Favor until over while for negative conditions.'
721
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
722
+ Enabled: false
723
+
724
+ Style/NestedTernaryOperator:
725
+ Description: 'Use one expression per branch in a ternary operator.'
726
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-ternary'
727
+ Enabled: true
728
+
729
+ Style/Next:
730
+ Description: 'Use `next` to skip iteration instead of a condition at the end.'
731
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
732
+ Enabled: true
733
+
734
+ Style/NilComparison:
735
+ Description: 'Prefer x.nil? to x == nil.'
736
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
737
+ EnforcedStyle: comparison
738
+ Enabled: true
739
+
740
+ Style/NonNilCheck:
741
+ # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
742
+ # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
743
+ # **usually** OK, but might change behavior.
744
+ #
745
+ # With `IncludeSemanticChanges` set to `false`, this cop does not report
746
+ # offenses for `!x.nil?` and does no changes that might change behavior.
747
+ Description: 'Checks for redundant nil checks.'
748
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks'
749
+ IncludeSemanticChanges: true
750
+ Enabled: false
751
+
752
+ Style/Not:
753
+ Description: 'Use ! instead of not.'
754
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
755
+ Enabled: false
756
+
757
+ Style/NumericLiterals:
758
+ Description: >-
759
+ Add underscores to large numeric literals to improve their
760
+ readability.
761
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
762
+ Enabled: false
763
+
764
+ Style/OneLineConditional:
765
+ Description: >-
766
+ Favor the ternary operator(?:) over
767
+ if/then/else/end constructs.
768
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
769
+ Enabled: true
770
+
771
+ Naming/BinaryOperatorParameterName:
772
+ Description: 'When defining binary operators, name the argument other.'
773
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
774
+ Enabled: true
775
+
776
+ Style/OptionalArguments:
777
+ Description: >-
778
+ Checks for optional arguments that do not appear at the end
779
+ of the argument list
780
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#optional-arguments'
781
+ Enabled: true
782
+
783
+ Style/ParallelAssignment:
784
+ Description: >-
785
+ Check for simple usages of parallel assignment.
786
+ It will only warn when the number of variables
787
+ matches on both sides of the assignment.
788
+ This also provides performance benefits
789
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parallel-assignment'
790
+ Enabled: true
791
+
792
+ Style/ParenthesesAroundCondition:
793
+ Description: >-
794
+ Don't use parentheses around the condition of an
795
+ if/unless/while.
796
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-parens-if'
797
+ Enabled: true
798
+
799
+ Style/PercentLiteralDelimiters:
800
+ Description: 'Use `%`-literal delimiters consistently'
801
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
802
+ Enabled: true
803
+
804
+ Style/PercentQLiterals:
805
+ Description: 'Checks if uses of %Q/%q match the configured preference.'
806
+ Enabled: true
807
+
808
+ Style/PerlBackrefs:
809
+ Description: 'Avoid Perl-style regex back references.'
810
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
811
+ Enabled: false
812
+
813
+ Naming/PredicateName:
814
+ Description: 'Check the names of predicate methods.'
815
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
816
+ Enabled: true
817
+
818
+ Style/Proc:
819
+ Description: 'Use proc instead of Proc.new.'
820
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
821
+ Enabled: true
822
+
823
+ Style/RaiseArgs:
824
+ Description: 'Checks the arguments passed to raise/fail.'
825
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
826
+ Enabled: true
827
+
828
+ Style/RedundantBegin:
829
+ Description: "Don't use begin blocks when they are not needed."
830
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#begin-implicit'
831
+ Enabled: true
832
+
833
+ Style/RedundantException:
834
+ Description: "Checks for an obsolete RuntimeException argument in raise/fail."
835
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror'
836
+ Enabled: true
837
+
838
+ Style/RedundantReturn:
839
+ Description: "Don't use return where it's not required."
840
+ # When `true` allows code like `return x, y`.
841
+ AllowMultipleReturnValues: false
842
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return'
843
+ Enabled: false
844
+
845
+ Style/RedundantSelf:
846
+ Description: "Don't use self where it's not needed."
847
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-self-unless-required'
848
+ Enabled: true
849
+
850
+ Style/RegexpLiteral:
851
+ Description: 'Use / or %r around regular expressions.'
852
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
853
+ EnforcedStyle: slashes
854
+ AllowInnerSlashes: false
855
+ Enabled: true
856
+
857
+ Layout/RescueEnsureAlignment:
858
+ Description: 'Align rescues and ensures correctly.'
859
+ Enabled: true
860
+
861
+ Style/RescueModifier:
862
+ Description: 'Avoid using rescue in its modifier form.'
863
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers'
864
+ Enabled: true
865
+
866
+ Style/SelfAssignment:
867
+ Description: >-
868
+ Checks for places where self-assignment shorthand should have
869
+ been used.
870
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
871
+ Enabled: true
872
+
873
+ Style/Semicolon:
874
+ Description: "Don't use semicolons to terminate expressions."
875
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon'
876
+ Enabled: true
877
+
878
+ Style/SignalException:
879
+ Description: 'Checks for proper usage of fail and raise.'
880
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
881
+ EnforcedStyle: semantic
882
+ Enabled: true
883
+
884
+ Style/SingleLineBlockParams:
885
+ Description: 'Enforces the names of some block params.'
886
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
887
+ Methods:
888
+ - reduce:
889
+ - sum
890
+ - v
891
+ - inject:
892
+ - sum
893
+ - v
894
+ Enabled: false
895
+
896
+ Style/SingleLineMethods:
897
+ Description: 'Avoid single-line methods.'
898
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
899
+ Enabled: true
900
+
901
+ Layout/SpaceBeforeFirstArg:
902
+ Description: >-
903
+ Checks that exactly one space is used between a method name
904
+ and the first argument for method calls without parentheses.
905
+ Enabled: true
906
+
907
+ Layout/SpaceAfterColon:
908
+ Description: 'Use spaces after colons.'
909
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
910
+ Enabled: true
911
+
912
+ Layout/SpaceAfterComma:
913
+ Description: 'Use spaces after commas.'
914
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
915
+ Enabled: true
916
+
917
+ Layout/SpaceAroundKeyword:
918
+ Description: 'Use spaces around keywords.'
919
+ Enabled: true
920
+
921
+ Layout/SpaceAfterMethodName:
922
+ Description: >-
923
+ Do not put a space between a method name and the opening
924
+ parenthesis in a method definition.
925
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
926
+ Enabled: true
927
+
928
+ Layout/SpaceAfterNot:
929
+ Description: Tracks redundant space after the ! operator.
930
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-bang'
931
+ Enabled: true
932
+
933
+ Layout/SpaceAfterSemicolon:
934
+ Description: 'Use spaces after semicolons.'
935
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
936
+ Enabled: true
937
+
938
+ Layout/SpaceBeforeBlockBraces:
939
+ Description: >-
940
+ Checks that the left block brace has or doesn't have space
941
+ before it.
942
+ EnforcedStyle: no_space
943
+ Enabled: true
944
+
945
+ Layout/SpaceBeforeComma:
946
+ Description: 'No spaces before commas.'
947
+ Enabled: true
948
+
949
+ Layout/SpaceBeforeComment:
950
+ Description: >-
951
+ Checks for missing space between code and a comment on the
952
+ same line.
953
+ Enabled: true
954
+
955
+ Layout/SpaceBeforeSemicolon:
956
+ Description: 'No spaces before semicolons.'
957
+ Enabled: false
958
+
959
+ Layout/SpaceInsideBlockBraces:
960
+ Description: >-
961
+ Checks that block braces have or don't have surrounding space.
962
+ For blocks taking parameters, checks that the left brace has
963
+ or doesn't have trailing space.
964
+ SpaceBeforeBlockParameters: false
965
+ Enabled: true
966
+
967
+ Layout/SpaceAroundBlockParameters:
968
+ Description: 'Checks the spacing inside and after block parameters pipes.'
969
+ Enabled: true
970
+
971
+ Layout/SpaceAroundEqualsInParameterDefault:
972
+ Description: >-
973
+ Checks that the equals signs in parameter default assignments
974
+ have or don't have surrounding space depending on
975
+ configuration.
976
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-around-equals'
977
+ Enabled: true
978
+
979
+ Layout/SpaceAroundOperators:
980
+ Description: 'Use a single space around operators.'
981
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
982
+ Enabled: true
983
+
984
+ Layout/SpaceInsideArrayLiteralBrackets:
985
+ Description: 'Checks the spacing inside array literal brackets.'
986
+ Enabled: true
987
+ EnforcedStyle: no_space
988
+ SupportedStyles:
989
+ - space
990
+ - no_space
991
+ # 'compact' normally requires a space inside the brackets, with the exception
992
+ # that successive left brackets or right brackets are collapsed together
993
+ - compact
994
+ EnforcedStyleForEmptyBrackets: no_space
995
+ SupportedStylesForEmptyBrackets:
996
+ - space
997
+ - no_space
998
+
999
+ Layout/SpaceInsideReferenceBrackets:
1000
+ Description: 'Checks the spacing inside referential brackets.'
1001
+ Enabled: true
1002
+ EnforcedStyle: no_space
1003
+ SupportedStyles:
1004
+ - space
1005
+ - no_space
1006
+ EnforcedStyleForEmptyBrackets: no_space
1007
+ SupportedStylesForEmptyBrackets:
1008
+ - space
1009
+ - no_space
1010
+
1011
+ Layout/SpaceInsideHashLiteralBraces:
1012
+ Description: "Use spaces inside hash literal braces - or don't."
1013
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
1014
+ # SupportedStyles:
1015
+ # - space
1016
+ # - no_space
1017
+ # # 'compact' normally requires a space inside hash braces, with the exception
1018
+ # # that successive left braces or right braces are collapsed together
1019
+ # - compact
1020
+ EnforcedStyle: compact
1021
+ Enabled: true
1022
+
1023
+ Layout/SpaceInsideParens:
1024
+ Description: 'No spaces after ( or before ).'
1025
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
1026
+ Enabled: true
1027
+
1028
+ Layout/SpaceInsideRangeLiteral:
1029
+ Description: 'No spaces inside range literals.'
1030
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals'
1031
+ Enabled: true
1032
+
1033
+ Layout/SpaceInsideStringInterpolation:
1034
+ Description: 'Checks for padding/surrounding spaces inside string interpolation.'
1035
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#string-interpolation'
1036
+ Enabled: true
1037
+
1038
+ Style/SpecialGlobalVars:
1039
+ Description: 'Avoid Perl-style global variables.'
1040
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
1041
+ Enabled: true
1042
+
1043
+ Style/StringLiterals:
1044
+ Description: 'Checks if uses of quotes match the configured preference.'
1045
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
1046
+ Enabled: true
1047
+
1048
+ Style/StringLiteralsInInterpolation:
1049
+ Description: >-
1050
+ Checks if uses of quotes inside expressions in interpolated
1051
+ strings match the configured preference.
1052
+ Enabled: true
1053
+
1054
+ Style/StructInheritance:
1055
+ Description: 'Checks for inheritance from Struct.new.'
1056
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new'
1057
+ Enabled: true
1058
+
1059
+ Style/SymbolLiteral:
1060
+ Description: 'Use plain symbols instead of string symbols when possible.'
1061
+ Enabled: true
1062
+
1063
+ Style/SymbolProc:
1064
+ Description: 'Use symbols as procs instead of blocks when possible.'
1065
+ Enabled: false # wants to support ruby 1.8
1066
+
1067
+ Layout/IndentationStyle:
1068
+ Description: 'No hard tabs.'
1069
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
1070
+ Enabled: true
1071
+
1072
+ Layout/TrailingEmptyLines:
1073
+ Description: 'Checks trailing blank lines and final newline.'
1074
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#newline-eof'
1075
+ Enabled: true
1076
+
1077
+ Style/TrailingCommaInArguments:
1078
+ # If `comma`, the cop requires a comma after the last argument, but only for
1079
+ # parenthesized method calls where each argument is on its own line.
1080
+ # If `comma_for_multiple_args`, the cop behaves like `comma` except when
1081
+ # there's only one argument, in which case it requires that there's no
1082
+ # trailing comma.
1083
+ # If `consistent_comma`, the cop requires a comma after the last argument,
1084
+ # for all parenthesized method calls with arguments.
1085
+ Description: 'Checks for trailing comma in parameter lists.'
1086
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-params-comma'
1087
+ EnforcedStyleForMultiline: no_comma # wants to support ruby 1.8
1088
+ Enabled: true
1089
+
1090
+ Style/TrailingCommaInArrayLiteral:
1091
+ Description: 'Checks for trailing comma in array literals.'
1092
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
1093
+ EnforcedStyleForMultiline: comma
1094
+ SupportedStylesForMultiline:
1095
+ - comma
1096
+ - consistent_comma
1097
+ - no_comma
1098
+ Enabled: true
1099
+
1100
+ Style/TrailingCommaInHashLiteral:
1101
+ Description: 'Checks for trailing comma in hash literals.'
1102
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
1103
+ EnforcedStyleForMultiline: comma
1104
+ SupportedStylesForMultiline:
1105
+ - comma
1106
+ - consistent_comma
1107
+ - no_comma
1108
+ Enabled: true
1109
+
1110
+ Layout/TrailingWhitespace:
1111
+ Description: 'Avoid trailing whitespace.'
1112
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace'
1113
+ Enabled: true
1114
+
1115
+ Style/TrivialAccessors:
1116
+ Description: 'Prefer attr_* methods to trivial readers/writers.'
1117
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
1118
+ Enabled: true
1119
+
1120
+ Style/UnlessElse:
1121
+ Description: >-
1122
+ Do not use unless with else. Rewrite these with the positive
1123
+ case first.
1124
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-else-with-unless'
1125
+ Enabled: true
1126
+
1127
+ Style/RedundantCapitalW:
1128
+ Description: 'Checks for %W when interpolation is not needed.'
1129
+ Enabled: true
1130
+
1131
+ Style/RedundantPercentQ:
1132
+ Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
1133
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q'
1134
+ Enabled: true
1135
+
1136
+ Style/TrailingUnderscoreVariable:
1137
+ Description: >-
1138
+ Checks for the usage of unneeded trailing underscores at the
1139
+ end of parallel variable assignment.
1140
+ Enabled: true
1141
+
1142
+ Style/VariableInterpolation:
1143
+ Description: >-
1144
+ Don't interpolate global, instance and class variables
1145
+ directly in strings.
1146
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
1147
+ Enabled: true
1148
+
1149
+ Naming/VariableName:
1150
+ Description: 'Use the configured style when naming variables.'
1151
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
1152
+ Enabled: true
1153
+
1154
+ Style/WhenThen:
1155
+ Description: 'Use when x then ... for one-line cases.'
1156
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
1157
+ Enabled: false
1158
+
1159
+ Style/WhileUntilDo:
1160
+ Description: 'Checks for redundant do after while or until.'
1161
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do'
1162
+ Enabled: true
1163
+
1164
+ Style/WhileUntilModifier:
1165
+ Description: >-
1166
+ Favor modifier while/until usage when you have a
1167
+ single-line body.
1168
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
1169
+ Enabled: true
1170
+
1171
+ Style/WordArray:
1172
+ Description: 'Use %w or %W for arrays of words.'
1173
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
1174
+ Enabled: true