numbers_in_words 0.3.0 → 1.0.0

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