jsonapionify 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +29 -0
  3. data/.csslintrc +2 -0
  4. data/.gitignore +11 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +1171 -0
  7. data/.ruby-version +1 -0
  8. data/.travis.yml +10 -0
  9. data/CODE_OF_CONDUCT.md +13 -0
  10. data/Gemfile +4 -0
  11. data/Guardfile +14 -0
  12. data/LICENSE.txt +21 -0
  13. data/README.md +43 -0
  14. data/Rakefile +34 -0
  15. data/TODO +13 -0
  16. data/bin/console +14 -0
  17. data/bin/setup +7 -0
  18. data/config.ru +15 -0
  19. data/fixtures/documentation.json +364 -0
  20. data/jsonapionify.gemspec +50 -0
  21. data/lib/core_ext/boolean.rb +3 -0
  22. data/lib/jsonapionify/api/action.rb +211 -0
  23. data/lib/jsonapionify/api/attribute.rb +67 -0
  24. data/lib/jsonapionify/api/base/app_builder.rb +33 -0
  25. data/lib/jsonapionify/api/base/class_methods.rb +73 -0
  26. data/lib/jsonapionify/api/base/delegation.rb +15 -0
  27. data/lib/jsonapionify/api/base/doc_helper.rb +47 -0
  28. data/lib/jsonapionify/api/base/reloader.rb +10 -0
  29. data/lib/jsonapionify/api/base/resource_definitions.rb +39 -0
  30. data/lib/jsonapionify/api/base.rb +25 -0
  31. data/lib/jsonapionify/api/context.rb +14 -0
  32. data/lib/jsonapionify/api/context_delegate.rb +42 -0
  33. data/lib/jsonapionify/api/errors.rb +6 -0
  34. data/lib/jsonapionify/api/errors_object.rb +66 -0
  35. data/lib/jsonapionify/api/header_options.rb +13 -0
  36. data/lib/jsonapionify/api/param_options.rb +46 -0
  37. data/lib/jsonapionify/api/relationship/blocks.rb +41 -0
  38. data/lib/jsonapionify/api/relationship/many.rb +61 -0
  39. data/lib/jsonapionify/api/relationship/one.rb +36 -0
  40. data/lib/jsonapionify/api/relationship.rb +89 -0
  41. data/lib/jsonapionify/api/resource/builders.rb +81 -0
  42. data/lib/jsonapionify/api/resource/class_methods.rb +82 -0
  43. data/lib/jsonapionify/api/resource/defaults/actions.rb +11 -0
  44. data/lib/jsonapionify/api/resource/defaults/errors.rb +99 -0
  45. data/lib/jsonapionify/api/resource/defaults/request_contexts.rb +96 -0
  46. data/lib/jsonapionify/api/resource/defaults/response_contexts.rb +31 -0
  47. data/lib/jsonapionify/api/resource/defaults.rb +10 -0
  48. data/lib/jsonapionify/api/resource/definitions/actions.rb +196 -0
  49. data/lib/jsonapionify/api/resource/definitions/attributes.rb +51 -0
  50. data/lib/jsonapionify/api/resource/definitions/contexts.rb +16 -0
  51. data/lib/jsonapionify/api/resource/definitions/helpers.rb +9 -0
  52. data/lib/jsonapionify/api/resource/definitions/pagination.rb +79 -0
  53. data/lib/jsonapionify/api/resource/definitions/params.rb +49 -0
  54. data/lib/jsonapionify/api/resource/definitions/relationships.rb +42 -0
  55. data/lib/jsonapionify/api/resource/definitions/request_headers.rb +103 -0
  56. data/lib/jsonapionify/api/resource/definitions/response_headers.rb +22 -0
  57. data/lib/jsonapionify/api/resource/definitions/scopes.rb +50 -0
  58. data/lib/jsonapionify/api/resource/definitions/sorting.rb +85 -0
  59. data/lib/jsonapionify/api/resource/definitions.rb +14 -0
  60. data/lib/jsonapionify/api/resource/error_handling.rb +108 -0
  61. data/lib/jsonapionify/api/resource/http.rb +11 -0
  62. data/lib/jsonapionify/api/resource/includer.rb +4 -0
  63. data/lib/jsonapionify/api/resource.rb +35 -0
  64. data/lib/jsonapionify/api/response.rb +47 -0
  65. data/lib/jsonapionify/api/server/mock_response.rb +37 -0
  66. data/lib/jsonapionify/api/server/request.rb +78 -0
  67. data/lib/jsonapionify/api/server.rb +50 -0
  68. data/lib/jsonapionify/api/test_helper.rb +52 -0
  69. data/lib/jsonapionify/api.rb +9 -0
  70. data/lib/jsonapionify/autoload.rb +52 -0
  71. data/lib/jsonapionify/callbacks.rb +49 -0
  72. data/lib/jsonapionify/character_range.rb +41 -0
  73. data/lib/jsonapionify/continuation.rb +26 -0
  74. data/lib/jsonapionify/documentation/template.erb +487 -0
  75. data/lib/jsonapionify/documentation.rb +40 -0
  76. data/lib/jsonapionify/enumerable_observer.rb +91 -0
  77. data/lib/jsonapionify/indented_string.rb +27 -0
  78. data/lib/jsonapionify/inherited_attributes.rb +125 -0
  79. data/lib/jsonapionify/structure/collections/base.rb +104 -0
  80. data/lib/jsonapionify/structure/collections/errors.rb +7 -0
  81. data/lib/jsonapionify/structure/collections/included_resources.rb +39 -0
  82. data/lib/jsonapionify/structure/collections/resource_identifiers.rb +7 -0
  83. data/lib/jsonapionify/structure/collections/resources.rb +7 -0
  84. data/lib/jsonapionify/structure/helpers/errors.rb +71 -0
  85. data/lib/jsonapionify/structure/helpers/inherits_origin.rb +17 -0
  86. data/lib/jsonapionify/structure/helpers/member_names.rb +37 -0
  87. data/lib/jsonapionify/structure/helpers/meta_delegate.rb +16 -0
  88. data/lib/jsonapionify/structure/helpers/object_defaults.rb +123 -0
  89. data/lib/jsonapionify/structure/helpers/object_setters.rb +21 -0
  90. data/lib/jsonapionify/structure/helpers/pagination_links.rb +10 -0
  91. data/lib/jsonapionify/structure/helpers/validations.rb +296 -0
  92. data/lib/jsonapionify/structure/maps/base.rb +25 -0
  93. data/lib/jsonapionify/structure/maps/error_links.rb +7 -0
  94. data/lib/jsonapionify/structure/maps/links.rb +21 -0
  95. data/lib/jsonapionify/structure/maps/relationship_links.rb +11 -0
  96. data/lib/jsonapionify/structure/maps/relationships.rb +23 -0
  97. data/lib/jsonapionify/structure/maps/resource_links.rb +7 -0
  98. data/lib/jsonapionify/structure/maps/top_level_links.rb +10 -0
  99. data/lib/jsonapionify/structure/objects/attributes.rb +29 -0
  100. data/lib/jsonapionify/structure/objects/base.rb +166 -0
  101. data/lib/jsonapionify/structure/objects/error.rb +16 -0
  102. data/lib/jsonapionify/structure/objects/included_resource.rb +14 -0
  103. data/lib/jsonapionify/structure/objects/jsonapi.rb +7 -0
  104. data/lib/jsonapionify/structure/objects/link.rb +18 -0
  105. data/lib/jsonapionify/structure/objects/meta.rb +7 -0
  106. data/lib/jsonapionify/structure/objects/relationship.rb +20 -0
  107. data/lib/jsonapionify/structure/objects/resource.rb +45 -0
  108. data/lib/jsonapionify/structure/objects/resource_identifier.rb +40 -0
  109. data/lib/jsonapionify/structure/objects/source.rb +10 -0
  110. data/lib/jsonapionify/structure/objects/top_level.rb +105 -0
  111. data/lib/jsonapionify/structure.rb +27 -0
  112. data/lib/jsonapionify/types/array_type.rb +32 -0
  113. data/lib/jsonapionify/types/boolean_type.rb +22 -0
  114. data/lib/jsonapionify/types/date_string_type.rb +28 -0
  115. data/lib/jsonapionify/types/float_type.rb +8 -0
  116. data/lib/jsonapionify/types/integer_type.rb +9 -0
  117. data/lib/jsonapionify/types/object_type.rb +22 -0
  118. data/lib/jsonapionify/types/string_type.rb +66 -0
  119. data/lib/jsonapionify/types/time_string_type.rb +28 -0
  120. data/lib/jsonapionify/types.rb +49 -0
  121. data/lib/jsonapionify/unstrict_proc.rb +28 -0
  122. data/lib/jsonapionify/version.rb +3 -0
  123. data/lib/jsonapionify.rb +37 -0
  124. metadata +530 -0
data/.rubocop.yml ADDED
@@ -0,0 +1,1171 @@
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'
990
+ 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.
996
+ 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.
1002
+ 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'
1007
+ Enabled: true
1008
+
1009
+ Lint/UnderscorePrefixedVariableName:
1010
+ Description: 'Do not use prefix `_` for a variable that is used.'
1011
+ 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.
1018
+ 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'
1023
+ 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'
1028
+ Enabled: true
1029
+
1030
+ Lint/UnreachableCode:
1031
+ Description: 'Unreachable code.'
1032
+ Enabled: true
1033
+
1034
+ Lint/UselessAccessModifier:
1035
+ Description: 'Checks for useless access modifiers.'
1036
+ 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'
1041
+ Enabled: true
1042
+
1043
+ Lint/UselessComparison:
1044
+ Description: 'Checks for comparison of something with itself.'
1045
+ Enabled: true
1046
+
1047
+ Lint/UselessElseWithoutRescue:
1048
+ Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
1049
+ Enabled: true
1050
+
1051
+ Lint/UselessSetterCall:
1052
+ Description: 'Checks for useless setter call to a local variable.'
1053
+ Enabled: true
1054
+
1055
+ Lint/Void:
1056
+ Description: 'Possible use of operator/literal/variable in void context.'
1057
+ 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`.
1066
+ 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'
1073
+ 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'
1081
+ 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'
1091
+ 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'
1098
+ 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'
1105
+ 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'
1113
+ 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.'
1151
+ Enabled: false
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