swagger_api 0.1.48 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ebb4dd2a0633d5191515c8699a0c6b03c8441e91
4
- data.tar.gz: f9cb561189108adfd5c7fb599ef4af095de44a6a
3
+ metadata.gz: e6c4d74509f25b7abfbb2457fd81a21134aa3280
4
+ data.tar.gz: 6d524ced52fd2c329761c8733b58f144847e62bd
5
5
  SHA512:
6
- metadata.gz: e716f77b6772363c94b31d97a8c74ee748cccd18fae8bdb9266ef390ab9255bba31cc09910609cd9a77524e122a4f0e4efb81a88145d683ab437b855b529b23e
7
- data.tar.gz: 6026a289c5edc66bd67e9d4ab8ececa879aeac81883b08df47055c57f8297b096b8e1fbb863d8f0be2af917670ad1b731b6005a2ace5c384fcf41e2bc618d872
6
+ metadata.gz: 9fee6658a1bfc2821bbc75034fb3403baffff4eceed765dca266dc5c3e47bd1151651f2fa5fcf2f4e3a652a784d3b930dc61fe8efb65a83fd7e78882cd07891c
7
+ data.tar.gz: 7ec27603f6e6cbaf2d89695a2befb7327d9d8d59202fd2a066e38a16b818f705316488174ab68393a6cc04ff1f6cb459c4484507c944442c028912c768d78314
data/.codeclimate.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  ---
2
- engines:
2
+ version: '2'
3
+ plugins:
3
4
  rubocop:
4
5
  enabled: true
5
6
  bundler-audit:
@@ -14,7 +15,11 @@ engines:
14
15
  mass_threshold: 30
15
16
  fixme:
16
17
  enabled: true
17
- ratings:
18
- paths:
19
- - "**.rb"
20
- - Gemfile.lock
18
+ exclude_patterns:
19
+ - spec/
20
+ - bin/
21
+ - coverage/
22
+ - .idea/
23
+ - swagger_api.gemspec
24
+ - .rubocop.yml
25
+ - Rakefile
data/.gitignore CHANGED
@@ -7,7 +7,8 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  .idea
10
+ /spec/dummy/log
10
11
 
11
12
  # rspec failure tracking
12
13
  .rspec_status
13
- swagger-api-*.gem
14
+ swagger-api-*.gem
data/.gitlab-ci.yml CHANGED
@@ -1,19 +1,33 @@
1
1
  stages:
2
+ - build
2
3
  - test
3
4
  - deploy
4
5
 
6
+ codequality:
7
+ stage: build
8
+ image: docker:latest
9
+ variables:
10
+ DOCKER_DRIVER: overlay
11
+ services:
12
+ - docker:dind
13
+ script:
14
+ - docker pull codeclimate/codeclimate
15
+ - docker run --env CODECLIMATE_CODE="$PWD" --volume "$PWD":/code --volume /var/run/docker.sock:/var/run/docker.sock --volume /tmp/cc:/tmp/cc codeclimate/codeclimate analyze -f json > codeclimate.json || true
16
+ artifacts:
17
+ paths: [codeclimate.json]
18
+
5
19
  rspec:
6
- stage: test
7
- image: registry.gitlab.com/fullmeasure/public/docker/rails-mysql-node:latest
20
+ image: ruby:2.5.1
8
21
  variables:
9
- MYSQL_ROOT_PASSWORD: 'root'
10
- DB_ROOT_PASS: 'root'
22
+ POSTGRES_USER: runner
23
+ POSTGRES_PASSWORD: ""
11
24
  RAILS_ENV: test
12
25
  services:
13
- - mysql:5.6
14
- - redis:latest
26
+ - docker:dind
27
+ - postgres:alpine
15
28
  before_script:
16
29
  - bundle install --quiet
30
+ - cd spec/dummy && RAILS_ENV=test bundle exec rake db:create db:schema:load
17
31
  script:
18
32
  - bundle exec rspec
19
33
  artifacts:
@@ -22,23 +36,13 @@ rspec:
22
36
  expire_in: 1 week
23
37
  paths:
24
38
  - coverage/
25
- only:
26
- - /^master$/
27
39
 
28
- codequality:
29
- stage: test
30
- image: docker:latest
31
- variables:
32
- DOCKER_DRIVER: overlay
33
- services:
34
- - docker:dind
40
+ codequality-verify:
41
+ retry: 2
42
+ image: ruby:2.5.1
35
43
  script:
36
- - docker pull codeclimate/codeclimate
37
- - docker run --env CODECLIMATE_CODE="$PWD" --volume "$PWD":/code --volume /var/run/docker.sock:/var/run/docker.sock --volume /tmp/cc:/tmp/cc codeclimate/codeclimate:0.69.0 init
38
- - docker run --env CODECLIMATE_CODE="$PWD" --volume "$PWD":/code --volume /var/run/docker.sock:/var/run/docker.sock --volume /tmp/cc:/tmp/cc codeclimate/codeclimate:0.69.0 analyze -f json > codeclimate.json || true
39
- artifacts:
40
- paths: [codeclimate.json]
41
-
44
+ - ruby -r json -r yaml -e "puts JSON.parse(File.open('codeclimate.json', 'r', &:read)).to_yaml"
45
+ - "! grep fingerprint codeclimate.json > /dev/null 2>&1"
42
46
 
43
47
  release:
44
48
  stage: deploy
data/.rubocop.yml ADDED
@@ -0,0 +1,1837 @@
1
+ # This is the default configuration file. Enabling and disabling is configured
2
+ # in separate files. This file adds all other parameters apart from Enabled.
3
+
4
+ # Common configuration.
5
+ AllCops:
6
+ RubyInterpreters:
7
+ - ruby
8
+ - macruby
9
+ - rake
10
+ - jruby
11
+ - rbx
12
+ # Include common Ruby source files.
13
+ Include:
14
+ - '**/*.rb'
15
+ - '**/*.arb'
16
+ - '**/*.axlsx'
17
+ - '**/*.builder'
18
+ - '**/*.fcgi'
19
+ - '**/*.gemfile'
20
+ - '**/*.gemspec'
21
+ - '**/*.god'
22
+ - '**/*.jb'
23
+ - '**/*.jbuilder'
24
+ - '**/*.mspec'
25
+ - '**/*.opal'
26
+ - '**/*.pluginspec'
27
+ - '**/*.podspec'
28
+ - '**/*.rabl'
29
+ - '**/*.rake'
30
+ - '**/*.rbuild'
31
+ - '**/*.rbw'
32
+ - '**/*.rbx'
33
+ - '**/*.ru'
34
+ - '**/*.ruby'
35
+ - '**/*.spec'
36
+ - '**/*.thor'
37
+ - '**/*.watchr'
38
+ - '**/.irbrc'
39
+ - '**/.pryrc'
40
+ - '**/buildfile'
41
+ - '**/config.ru'
42
+ - '**/Appraisals'
43
+ - '**/Berksfile'
44
+ - '**/Brewfile'
45
+ - '**/Buildfile'
46
+ - '**/Capfile'
47
+ - '**/Cheffile'
48
+ - '**/Dangerfile'
49
+ - '**/Deliverfile'
50
+ - '**/Fastfile'
51
+ - '**/*Fastfile'
52
+ - '**/Gemfile'
53
+ - '**/Guardfile'
54
+ - '**/Jarfile'
55
+ - '**/Mavenfile'
56
+ - '**/Podfile'
57
+ - '**/Puppetfile'
58
+ - '**/Rakefile'
59
+ - '**/Snapfile'
60
+ - '**/Thorfile'
61
+ - '**/Vagabondfile'
62
+ - '**/Vagrantfile'
63
+ Exclude:
64
+ - 'node_modules/**/*'
65
+ - 'vendor/**/*'
66
+ - '.git/**/*'
67
+ # Default formatter will be used if no `-f/--format` option is given.
68
+ DefaultFormatter: progress
69
+ # Cop names are displayed in offense messages by default. Change behavior
70
+ # by overriding DisplayCopNames, or by giving the `--no-display-cop-names`
71
+ # option.
72
+ DisplayCopNames: true
73
+ # Style guide URLs are not displayed in offense messages by default. Change
74
+ # behavior by overriding `DisplayStyleGuide`, or by giving the
75
+ # `-S/--display-style-guide` option.
76
+ DisplayStyleGuide: false
77
+ # When specifying style guide URLs, any paths and/or fragments will be
78
+ # evaluated relative to the base URL.
79
+ StyleGuideBaseURL: https://github.com/rubocop-hq/ruby-style-guide
80
+ # Extra details are not displayed in offense messages by default. Change
81
+ # behavior by overriding ExtraDetails, or by giving the
82
+ # `-E/--extra-details` option.
83
+ ExtraDetails: false
84
+ # Additional cops that do not reference a style guide rule may be enabled by
85
+ # default. Change behavior by overriding `StyleGuideCopsOnly`, or by giving
86
+ # the `--only-guide-cops` option.
87
+ StyleGuideCopsOnly: false
88
+ # All cops except the ones in disabled.yml are enabled by default. Change
89
+ # this behavior by overriding either `DisabledByDefault` or `EnabledByDefault`.
90
+ # When `DisabledByDefault` is `true`, all cops in the default configuration
91
+ # are disabled, and only cops in user configuration are enabled. This makes
92
+ # cops opt-in instead of opt-out. Note that when `DisabledByDefault` is `true`,
93
+ # cops in user configuration will be enabled even if they don't set the
94
+ # Enabled parameter.
95
+ # When `EnabledByDefault` is `true`, all cops, even those in disabled.yml,
96
+ # are enabled by default. Cops can still be disabled in user configuration.
97
+ # Note that it is invalid to set both EnabledByDefault and DisabledByDefault
98
+ # to true in the same configuration.
99
+ EnabledByDefault: false
100
+ DisabledByDefault: false
101
+ # Enables the result cache if `true`. Can be overridden by the `--cache` command
102
+ # line option.
103
+ UseCache: true
104
+ # Threshold for how many files can be stored in the result cache before some
105
+ # of the files are automatically removed.
106
+ MaxFilesInCache: 20000
107
+ # The cache will be stored in "rubocop_cache" under this directory. If
108
+ # CacheRootDirectory is ~ (nil), which it is by default, the root will be
109
+ # taken from the environment variable `$XDG_CACHE_HOME` if it is set, or if
110
+ # `$XDG_CACHE_HOME` is not set, it will be `$HOME/.cache/`.
111
+ CacheRootDirectory: ~
112
+ # It is possible for a malicious user to know the location of RuboCop's cache
113
+ # directory by looking at CacheRootDirectory, and create a symlink in its
114
+ # place that could cause RuboCop to overwrite unintended files, or read
115
+ # malicious input. If you are certain that your cache location is secure from
116
+ # this kind of attack, and wish to use a symlinked cache location, set this
117
+ # value to "true".
118
+ AllowSymlinksInCacheRootDirectory: false
119
+ # What MRI version of the Ruby interpreter is the inspected code intended to
120
+ # run on? (If there is more than one, set this to the lowest version.)
121
+ # If a value is specified for TargetRubyVersion then it is used. Acceptable
122
+ # values are specificed as a float (i.e. 2.5); the teeny version of Ruby
123
+ # should not be included. If the project specifies a Ruby version in the
124
+ # .ruby-version file, Gemfile or gems.rb file, RuboCop will try to determine
125
+ # the desired version of Ruby by inspecting the .ruby-version file first,
126
+ # followed by the Gemfile.lock or gems.locked file. (Although the Ruby version
127
+ # is specified in the Gemfile or gems.rb file, RuboCop reads the final value
128
+ # from the lock file.) If the Ruby version is still unresolved, RuboCop will
129
+ # use the oldest officially supported Ruby version (currently Ruby 2.2).
130
+ TargetRubyVersion: ~
131
+ # What version of Rails is the inspected code using? If a value is specified
132
+ # for TargetRailsVersion then it is used. Acceptable values are specificed
133
+ # as a float (i.e. 5.1); the patch version of Rails should not be included.
134
+ # If TargetRailsVersion is not set, RuboCop will parse the Gemfile.lock or
135
+ # gems.locked file to find the version of Rails that has been bound to the
136
+ # application. If neither of those files exist, RuboCop will use Rails 5.0
137
+ # as the default.
138
+ TargetRailsVersion: ~
139
+
140
+ #################### Layout ###########################
141
+
142
+ # Indent private/protected/public as deep as method definitions
143
+ Layout/AccessModifierIndentation:
144
+ EnforcedStyle: indent
145
+ SupportedStyles:
146
+ - outdent
147
+ - indent
148
+ # By default, the indentation width from Layout/IndentationWidth is used
149
+ # But it can be overridden by setting this parameter
150
+ IndentationWidth: ~
151
+
152
+ # Align the elements of a hash literal if they span more than one line.
153
+ Layout/AlignHash:
154
+ # Alignment of entries using hash rocket as separator. Valid values are:
155
+ #
156
+ # key - left alignment of keys
157
+ # 'a' => 2
158
+ # 'bb' => 3
159
+ # separator - alignment of hash rockets, keys are right aligned
160
+ # 'a' => 2
161
+ # 'bb' => 3
162
+ # table - left alignment of keys, hash rockets, and values
163
+ # 'a' => 2
164
+ # 'bb' => 3
165
+ EnforcedHashRocketStyle: key
166
+ SupportedHashRocketStyles:
167
+ - key
168
+ - separator
169
+ - table
170
+ # Alignment of entries using colon as separator. Valid values are:
171
+ #
172
+ # key - left alignment of keys
173
+ # a: 0
174
+ # bb: 1
175
+ # separator - alignment of colons, keys are right aligned
176
+ # a: 0
177
+ # bb: 1
178
+ # table - left alignment of keys and values
179
+ # a: 0
180
+ # bb: 1
181
+ EnforcedColonStyle: key
182
+ SupportedColonStyles:
183
+ - key
184
+ - separator
185
+ - table
186
+ # Select whether hashes that are the last argument in a method call should be
187
+ # inspected? Valid values are:
188
+ #
189
+ # always_inspect - Inspect both implicit and explicit hashes.
190
+ # Registers an offense for:
191
+ # function(a: 1,
192
+ # b: 2)
193
+ # Registers an offense for:
194
+ # function({a: 1,
195
+ # b: 2})
196
+ # always_ignore - Ignore both implicit and explicit hashes.
197
+ # Accepts:
198
+ # function(a: 1,
199
+ # b: 2)
200
+ # Accepts:
201
+ # function({a: 1,
202
+ # b: 2})
203
+ # ignore_implicit - Ignore only implicit hashes.
204
+ # Accepts:
205
+ # function(a: 1,
206
+ # b: 2)
207
+ # Registers an offense for:
208
+ # function({a: 1,
209
+ # b: 2})
210
+ # ignore_explicit - Ignore only explicit hashes.
211
+ # Accepts:
212
+ # function({a: 1,
213
+ # b: 2})
214
+ # Registers an offense for:
215
+ # function(a: 1,
216
+ # b: 2)
217
+ EnforcedLastArgumentHashStyle: always_inspect
218
+ SupportedLastArgumentHashStyles:
219
+ - always_inspect
220
+ - always_ignore
221
+ - ignore_implicit
222
+ - ignore_explicit
223
+
224
+ Layout/AlignParameters:
225
+ # Alignment of parameters in multi-line method calls.
226
+ #
227
+ # The `with_first_parameter` style aligns the following lines along the same
228
+ # column as the first parameter.
229
+ #
230
+ # method_call(a,
231
+ # b)
232
+ #
233
+ # The `with_fixed_indentation` style aligns the following lines with one
234
+ # level of indentation relative to the start of the line with the method call.
235
+ #
236
+ # method_call(a,
237
+ # b)
238
+ EnforcedStyle: with_first_parameter
239
+ SupportedStyles:
240
+ - with_first_parameter
241
+ - with_fixed_indentation
242
+ # By default, the indentation width from Layout/IndentationWidth is used
243
+ # But it can be overridden by setting this parameter
244
+ IndentationWidth: ~
245
+
246
+ # checks whether the end keywords are aligned properly for `do` `end` blocks.
247
+ Lint/BlockAlignment:
248
+ # The value `start_of_block` means that the `end` should be aligned with line
249
+ # where the `do` keyword appears.
250
+ # The value `start_of_line` means it should be aligned with the whole
251
+ # expression's starting line.
252
+ # The value `either` means both are allowed.
253
+ EnforcedStyleAlignWith: either
254
+ SupportedStylesAlignWith:
255
+ - either
256
+ - start_of_block
257
+ - start_of_line
258
+
259
+ # Indentation of `when`.
260
+ Layout/CaseIndentation:
261
+ EnforcedStyle: case
262
+ SupportedStyles:
263
+ - case
264
+ - end
265
+ IndentOneStep: false
266
+ # By default, the indentation width from `Layout/IndentationWidth` is used.
267
+ # But it can be overridden by setting this parameter.
268
+ # This only matters if `IndentOneStep` is `true`
269
+ IndentationWidth: ~
270
+
271
+ Lint/DefEndAlignment:
272
+ # The value `def` means that `end` should be aligned with the def keyword.
273
+ # The value `start_of_line` means that `end` should be aligned with method
274
+ # calls like `private`, `public`, etc, if present in front of the `def`
275
+ # keyword on the same line.
276
+ EnforcedStyleAlignWith: start_of_line
277
+ SupportedStylesAlignWith:
278
+ - start_of_line
279
+ - def
280
+ AutoCorrect: false
281
+ Severity: warning
282
+
283
+ # Multi-line method chaining should be done with leading dots.
284
+ Layout/DotPosition:
285
+ EnforcedStyle: leading
286
+ SupportedStyles:
287
+ - leading
288
+ - trailing
289
+
290
+ Layout/EmptyComment:
291
+ AllowBorderComment: true
292
+ AllowMarginComment: true
293
+
294
+ # Use empty lines between defs.
295
+ Layout/EmptyLineBetweenDefs:
296
+ # If `true`, this parameter means that single line method definitions don't
297
+ # need an empty line between them.
298
+ AllowAdjacentOneLineDefs: false
299
+ # Can be array to specify minimum and maximum number of empty lines, e.g. [1, 2]
300
+ NumberOfEmptyLines: 1
301
+
302
+ Layout/EmptyLinesAroundBlockBody:
303
+ EnforcedStyle: no_empty_lines
304
+ SupportedStyles:
305
+ - empty_lines
306
+ - no_empty_lines
307
+
308
+ Layout/EmptyLinesAroundClassBody:
309
+ EnforcedStyle: no_empty_lines
310
+ SupportedStyles:
311
+ - empty_lines
312
+ - empty_lines_except_namespace
313
+ - empty_lines_special
314
+ - no_empty_lines
315
+ - beginning_only
316
+ - ending_only
317
+
318
+ Layout/EmptyLinesAroundModuleBody:
319
+ EnforcedStyle: no_empty_lines
320
+ SupportedStyles:
321
+ - empty_lines
322
+ - empty_lines_except_namespace
323
+ - empty_lines_special
324
+ - no_empty_lines
325
+
326
+ # Align ends correctly.
327
+ Lint/EndAlignment:
328
+ # The value `keyword` means that `end` should be aligned with the matching
329
+ # keyword (`if`, `while`, etc.).
330
+ # The value `variable` means that in assignments, `end` should be aligned
331
+ # with the start of the variable on the left hand side of `=`. In all other
332
+ # situations, `end` should still be aligned with the keyword.
333
+ # The value `start_of_line` means that `end` should be aligned with the start
334
+ # of the line which the matching keyword appears on.
335
+ EnforcedStyleAlignWith: keyword
336
+ SupportedStylesAlignWith:
337
+ - keyword
338
+ - variable
339
+ - start_of_line
340
+ AutoCorrect: false
341
+ Severity: warning
342
+
343
+ Layout/EndOfLine:
344
+ # The `native` style means that CR+LF (Carriage Return + Line Feed) is
345
+ # enforced on Windows, and LF is enforced on other platforms. The other styles
346
+ # mean LF and CR+LF, respectively.
347
+ EnforcedStyle: native
348
+ SupportedStyles:
349
+ - native
350
+ - lf
351
+ - crlf
352
+
353
+ Layout/ExtraSpacing:
354
+ # When true, allows most uses of extra spacing if the intent is to align
355
+ # things with the previous or next line, not counting empty lines or comment
356
+ # lines.
357
+ AllowForAlignment: true
358
+ # When true, forces the alignment of `=` in assignments on consecutive lines.
359
+ ForceEqualSignAlignment: false
360
+
361
+ Layout/FirstParameterIndentation:
362
+ EnforcedStyle: special_for_inner_method_call_in_parentheses
363
+ SupportedStyles:
364
+ # The first parameter should always be indented one step more than the
365
+ # preceding line.
366
+ - consistent
367
+ # The first parameter should always be indented one level relative to the
368
+ # parent that is receiving the parameter
369
+ - consistent_relative_to_receiver
370
+ # The first parameter should normally be indented one step more than the
371
+ # preceding line, but if it's a parameter for a method call that is itself
372
+ # a parameter in a method call, then the inner parameter should be indented
373
+ # relative to the inner method.
374
+ - special_for_inner_method_call
375
+ # Same as `special_for_inner_method_call` except that the special rule only
376
+ # applies if the outer method call encloses its arguments in parentheses.
377
+ - special_for_inner_method_call_in_parentheses
378
+ # By default, the indentation width from `Layout/IndentationWidth` is used
379
+ # But it can be overridden by setting this parameter
380
+ IndentationWidth: ~
381
+
382
+ Layout/IndentationConsistency:
383
+ # The difference between `rails` and `normal` is that the `rails` style
384
+ # prescribes that in classes and modules the `protected` and `private`
385
+ # modifier keywords shall be indented the same as public methods and that
386
+ # protected and private members shall be indented one step more than the
387
+ # modifiers. Other than that, both styles mean that entities on the same
388
+ # logical depth shall have the same indentation.
389
+ EnforcedStyle: normal
390
+ SupportedStyles:
391
+ - normal
392
+ - rails
393
+
394
+ Layout/IndentationWidth:
395
+ # Number of spaces for each indentation level.
396
+ Width: 2
397
+ IgnoredPatterns: []
398
+
399
+ # Checks the indentation of the first element in an array literal.
400
+ Layout/IndentArray:
401
+ # The value `special_inside_parentheses` means that array literals with
402
+ # brackets that have their opening bracket on the same line as a surrounding
403
+ # opening round parenthesis, shall have their first element indented relative
404
+ # to the first position inside the parenthesis.
405
+ #
406
+ # The value `consistent` means that the indentation of the first element shall
407
+ # always be relative to the first position of the line where the opening
408
+ # bracket is.
409
+ #
410
+ # The value `align_brackets` means that the indentation of the first element
411
+ # shall always be relative to the position of the opening bracket.
412
+ EnforcedStyle: special_inside_parentheses
413
+ SupportedStyles:
414
+ - special_inside_parentheses
415
+ - consistent
416
+ - align_brackets
417
+ # By default, the indentation width from `Layout/IndentationWidth` is used
418
+ # But it can be overridden by setting this parameter
419
+ IndentationWidth: ~
420
+
421
+ # Checks the indentation of assignment RHS, when on a different line from LHS
422
+ Layout/IndentAssignment:
423
+ # By default, the indentation width from `Layout/IndentationWidth` is used
424
+ # But it can be overridden by setting this parameter
425
+ IndentationWidth: ~
426
+
427
+ # Checks the indentation of the first key in a hash literal.
428
+ Layout/IndentHash:
429
+ # The value `special_inside_parentheses` means that hash literals with braces
430
+ # that have their opening brace on the same line as a surrounding opening
431
+ # round parenthesis, shall have their first key indented relative to the
432
+ # first position inside the parenthesis.
433
+ #
434
+ # The value `consistent` means that the indentation of the first key shall
435
+ # always be relative to the first position of the line where the opening
436
+ # brace is.
437
+ #
438
+ # The value `align_braces` means that the indentation of the first key shall
439
+ # always be relative to the position of the opening brace.
440
+ EnforcedStyle: special_inside_parentheses
441
+ SupportedStyles:
442
+ - special_inside_parentheses
443
+ - consistent
444
+ - align_braces
445
+ # By default, the indentation width from `Layout/IndentationWidth` is used
446
+ # But it can be overridden by setting this parameter
447
+ IndentationWidth: ~
448
+
449
+ Layout/IndentHeredoc:
450
+ EnforcedStyle: auto_detection
451
+ SupportedStyles:
452
+ - auto_detection
453
+ - squiggly
454
+ - active_support
455
+ - powerpack
456
+ - unindent
457
+
458
+ Layout/SpaceInLambdaLiteral:
459
+ EnforcedStyle: require_no_space
460
+ SupportedStyles:
461
+ - require_no_space
462
+ - require_space
463
+
464
+ Layout/MultilineArrayBraceLayout:
465
+ EnforcedStyle: symmetrical
466
+ SupportedStyles:
467
+ # symmetrical: closing brace is positioned in same way as opening brace
468
+ # new_line: closing brace is always on a new line
469
+ # same_line: closing brace is always on the same line as last element
470
+ - symmetrical
471
+ - new_line
472
+ - same_line
473
+
474
+ Layout/MultilineAssignmentLayout:
475
+ # The types of assignments which are subject to this rule.
476
+ SupportedTypes:
477
+ - block
478
+ - case
479
+ - class
480
+ - if
481
+ - kwbegin
482
+ - module
483
+ EnforcedStyle: new_line
484
+ SupportedStyles:
485
+ # Ensures that the assignment operator and the rhs are on the same line for
486
+ # the set of supported types.
487
+ - same_line
488
+ # Ensures that the assignment operator and the rhs are on separate lines
489
+ # for the set of supported types.
490
+ - new_line
491
+
492
+ Layout/MultilineHashBraceLayout:
493
+ EnforcedStyle: symmetrical
494
+ SupportedStyles:
495
+ # symmetrical: closing brace is positioned in same way as opening brace
496
+ # new_line: closing brace is always on a new line
497
+ # same_line: closing brace is always on same line as last element
498
+ - symmetrical
499
+ - new_line
500
+ - same_line
501
+
502
+ Layout/MultilineMethodCallBraceLayout:
503
+ EnforcedStyle: symmetrical
504
+ SupportedStyles:
505
+ # symmetrical: closing brace is positioned in same way as opening brace
506
+ # new_line: closing brace is always on a new line
507
+ # same_line: closing brace is always on the same line as last argument
508
+ - symmetrical
509
+ - new_line
510
+ - same_line
511
+
512
+ Layout/MultilineMethodCallIndentation:
513
+ EnforcedStyle: aligned
514
+ SupportedStyles:
515
+ - aligned
516
+ - indented
517
+ - indented_relative_to_receiver
518
+ # By default, the indentation width from Layout/IndentationWidth is used
519
+ # But it can be overridden by setting this parameter
520
+ IndentationWidth: ~
521
+
522
+ Layout/MultilineMethodDefinitionBraceLayout:
523
+ EnforcedStyle: symmetrical
524
+ SupportedStyles:
525
+ # symmetrical: closing brace is positioned in same way as opening brace
526
+ # new_line: closing brace is always on a new line
527
+ # same_line: closing brace is always on the same line as last parameter
528
+ - symmetrical
529
+ - new_line
530
+ - same_line
531
+
532
+ Layout/MultilineOperationIndentation:
533
+ EnforcedStyle: aligned
534
+ SupportedStyles:
535
+ - aligned
536
+ - indented
537
+ # By default, the indentation width from `Layout/IndentationWidth` is used
538
+ # But it can be overridden by setting this parameter
539
+ IndentationWidth: ~
540
+
541
+ Layout/SpaceAroundBlockParameters:
542
+ EnforcedStyleInsidePipes: no_space
543
+ SupportedStylesInsidePipes:
544
+ - space
545
+ - no_space
546
+
547
+ Layout/SpaceAroundEqualsInParameterDefault:
548
+ EnforcedStyle: space
549
+ SupportedStyles:
550
+ - space
551
+ - no_space
552
+
553
+ Layout/SpaceAroundOperators:
554
+ # When `true`, allows most uses of extra spacing if the intent is to align
555
+ # with an operator on the previous or next line, not counting empty lines
556
+ # or comment lines.
557
+ AllowForAlignment: true
558
+
559
+ Layout/SpaceBeforeBlockBraces:
560
+ EnforcedStyle: space
561
+ SupportedStyles:
562
+ - space
563
+ - no_space
564
+ EnforcedStyleForEmptyBraces: space
565
+ SupportedStylesForEmptyBraces:
566
+ - space
567
+ - no_space
568
+
569
+ Layout/SpaceBeforeFirstArg:
570
+ # When `true`, allows most uses of extra spacing if the intent is to align
571
+ # things with the previous or next line, not counting empty lines or comment
572
+ # lines.
573
+ AllowForAlignment: true
574
+
575
+ Layout/SpaceInsideArrayLiteralBrackets:
576
+ EnforcedStyle: no_space
577
+ SupportedStyles:
578
+ - space
579
+ - no_space
580
+ # 'compact' normally requires a space inside the brackets, with the exception
581
+ # that successive left brackets or right brackets are collapsed together
582
+ - compact
583
+ EnforcedStyleForEmptyBrackets: no_space
584
+ SupportedStylesForEmptyBrackets:
585
+ - space
586
+ - no_space
587
+
588
+ Layout/SpaceInsideBlockBraces:
589
+ EnforcedStyle: space
590
+ SupportedStyles:
591
+ - space
592
+ - no_space
593
+ EnforcedStyleForEmptyBraces: no_space
594
+ SupportedStylesForEmptyBraces:
595
+ - space
596
+ - no_space
597
+ # Space between `{` and `|`. Overrides `EnforcedStyle` if there is a conflict.
598
+ SpaceBeforeBlockParameters: true
599
+
600
+ Layout/SpaceInsideHashLiteralBraces:
601
+ EnforcedStyle: space
602
+ SupportedStyles:
603
+ - space
604
+ - no_space
605
+ # 'compact' normally requires a space inside hash braces, with the exception
606
+ # that successive left braces or right braces are collapsed together
607
+ - compact
608
+ EnforcedStyleForEmptyBraces: no_space
609
+ SupportedStylesForEmptyBraces:
610
+ - space
611
+ - no_space
612
+
613
+ Layout/SpaceInsideParens:
614
+ EnforcedStyle: no_space
615
+ SupportedStyles:
616
+ - space
617
+ - no_space
618
+
619
+ Layout/SpaceInsideReferenceBrackets:
620
+ EnforcedStyle: no_space
621
+ SupportedStyles:
622
+ - space
623
+ - no_space
624
+ EnforcedStyleForEmptyBrackets: no_space
625
+ SupportedStylesForEmptyBrackets:
626
+ - space
627
+ - no_space
628
+
629
+ Layout/SpaceInsideStringInterpolation:
630
+ EnforcedStyle: no_space
631
+ SupportedStyles:
632
+ - space
633
+ - no_space
634
+
635
+ Layout/ClassStructure:
636
+ Categories:
637
+ module_inclusion:
638
+ - include
639
+ - prepend
640
+ - extend
641
+ ExpectedOrder:
642
+ - module_inclusion
643
+ - constants
644
+ - public_class_methods
645
+ - initializer
646
+ - public_methods
647
+ - protected_methods
648
+ - private_methods
649
+
650
+ Layout/Tab:
651
+ # By default, the indentation width from Layout/IndentationWidth is used
652
+ # But it can be overridden by setting this parameter
653
+ # It is used during auto-correction to determine how many spaces should
654
+ # replace each tab.
655
+ IndentationWidth: ~
656
+
657
+ Layout/TrailingBlankLines:
658
+ EnforcedStyle: final_newline
659
+ SupportedStyles:
660
+ - final_newline
661
+ - final_blank_line
662
+
663
+ Layout/TrailingWhitespace:
664
+ AllowInHeredoc: false
665
+
666
+ #################### Naming ##########################
667
+
668
+ Naming/FileName:
669
+ # File names listed in `AllCops:Include` are excluded by default. Add extra
670
+ # excludes here.
671
+ Exclude: []
672
+ # When `true`, requires that each source file should define a class or module
673
+ # with a name which matches the file name (converted to ... case).
674
+ # It further expects it to be nested inside modules which match the names
675
+ # of subdirectories in its path.
676
+ ExpectMatchingDefinition: false
677
+ # If non-`nil`, expect all source file names to match the following regex.
678
+ # Only the file name itself is matched, not the entire file path.
679
+ # Use anchors as necessary if you want to match the entire name rather than
680
+ # just a part of it.
681
+ Regex: ~
682
+ # With `IgnoreExecutableScripts` set to `true`, this cop does not
683
+ # report offending filenames for executable scripts (i.e. source
684
+ # files with a shebang in the first line).
685
+ IgnoreExecutableScripts: true
686
+ AllowedAcronyms:
687
+ - CLI
688
+ - DSL
689
+ - ACL
690
+ - API
691
+ - ASCII
692
+ - CPU
693
+ - CSS
694
+ - DNS
695
+ - EOF
696
+ - GUID
697
+ - HTML
698
+ - HTTP
699
+ - HTTPS
700
+ - ID
701
+ - IP
702
+ - JSON
703
+ - LHS
704
+ - QPS
705
+ - RAM
706
+ - RHS
707
+ - RPC
708
+ - SLA
709
+ - SMTP
710
+ - SQL
711
+ - SSH
712
+ - TCP
713
+ - TLS
714
+ - TTL
715
+ - UDP
716
+ - UI
717
+ - UID
718
+ - UUID
719
+ - URI
720
+ - URL
721
+ - UTF8
722
+ - VM
723
+ - XML
724
+ - XMPP
725
+ - XSRF
726
+ - XSS
727
+
728
+ Naming/HeredocDelimiterNaming:
729
+ Blacklist:
730
+ - !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
731
+
732
+ Naming/HeredocDelimiterCase:
733
+ EnforcedStyle: uppercase
734
+ SupportedStyles:
735
+ - lowercase
736
+ - uppercase
737
+
738
+ Naming/MemoizedInstanceVariableName:
739
+ EnforcedStyleForLeadingUnderscores: disallowed
740
+ SupportedStylesForLeadingUnderscores:
741
+ - disallowed
742
+ - required
743
+ - optional
744
+
745
+ Naming/MethodName:
746
+ EnforcedStyle: snake_case
747
+ SupportedStyles:
748
+ - snake_case
749
+ - camelCase
750
+
751
+ Naming/PredicateName:
752
+ # Predicate name prefixes.
753
+ NamePrefix:
754
+ - is_
755
+ - has_
756
+ - have_
757
+ # Predicate name prefixes that should be removed.
758
+ NamePrefixBlacklist:
759
+ - is_
760
+ - has_
761
+ - have_
762
+ # Predicate names which, despite having a blacklisted prefix, or no `?`,
763
+ # should still be accepted
764
+ NameWhitelist:
765
+ - is_a?
766
+ # Method definition macros for dynamically generated methods.
767
+ MethodDefinitionMacros:
768
+ - define_method
769
+ - define_singleton_method
770
+ # Exclude Rspec specs because there is a strong convention to write spec
771
+ # helpers in the form of `have_something` or `be_something`.
772
+ Exclude:
773
+ - 'spec/**/*'
774
+
775
+ Naming/UncommunicativeBlockParamName:
776
+ # Parameter names may be equal to or greater than this value
777
+ MinNameLength: 1
778
+ AllowNamesEndingInNumbers: true
779
+ # Whitelisted names that will not register an offense
780
+ AllowedNames: []
781
+ # Blacklisted names that will register an offense
782
+ ForbiddenNames: []
783
+
784
+ Naming/UncommunicativeMethodParamName:
785
+ # Parameter names may be equal to or greater than this value
786
+ MinNameLength: 3
787
+ AllowNamesEndingInNumbers: true
788
+ # Whitelisted names that will not register an offense
789
+ AllowedNames:
790
+ - io
791
+ - id
792
+ - to
793
+ - by
794
+ - 'on'
795
+ - in
796
+ - at
797
+ # Blacklisted names that will register an offense
798
+ ForbiddenNames: []
799
+
800
+ Naming/VariableName:
801
+ EnforcedStyle: snake_case
802
+ SupportedStyles:
803
+ - snake_case
804
+ - camelCase
805
+
806
+ Naming/VariableNumber:
807
+ EnforcedStyle: normalcase
808
+ SupportedStyles:
809
+ - snake_case
810
+ - normalcase
811
+ - non_integer
812
+
813
+ #################### Style ###########################
814
+
815
+ Style/AccessModifierDeclarations:
816
+ EnforcedStyle: group
817
+ SupportedStyles:
818
+ - inline
819
+ - group
820
+
821
+ Style/Alias:
822
+ EnforcedStyle: prefer_alias
823
+ SupportedStyles:
824
+ - prefer_alias
825
+ - prefer_alias_method
826
+
827
+ Style/AndOr:
828
+ # Whether `and` and `or` are banned only in conditionals (conditionals)
829
+ # or completely (always).
830
+ EnforcedStyle: always
831
+ SupportedStyles:
832
+ - always
833
+ - conditionals
834
+
835
+ Style/AsciiComments:
836
+ AllowedChars: []
837
+
838
+ # Checks if usage of `%()` or `%Q()` matches configuration.
839
+ Style/BarePercentLiterals:
840
+ EnforcedStyle: bare_percent
841
+ SupportedStyles:
842
+ - percent_q
843
+ - bare_percent
844
+
845
+ Style/BlockDelimiters:
846
+ EnforcedStyle: line_count_based
847
+ SupportedStyles:
848
+ # The `line_count_based` style enforces braces around single line blocks and
849
+ # do..end around multi-line blocks.
850
+ - line_count_based
851
+ # The `semantic` style enforces braces around functional blocks, where the
852
+ # primary purpose of the block is to return a value and do..end for
853
+ # procedural blocks, where the primary purpose of the block is its
854
+ # side-effects.
855
+ #
856
+ # This looks at the usage of a block's method to determine its type (e.g. is
857
+ # the result of a `map` assigned to a variable or passed to another
858
+ # method) but exceptions are permitted in the `ProceduralMethods`,
859
+ # `FunctionalMethods` and `IgnoredMethods` sections below.
860
+ - semantic
861
+ # The `braces_for_chaining` style enforces braces around single line blocks
862
+ # and do..end around multi-line blocks, except for multi-line blocks whose
863
+ # return value is being chained with another method (in which case braces
864
+ # are enforced).
865
+ - braces_for_chaining
866
+ ProceduralMethods:
867
+ # Methods that are known to be procedural in nature but look functional from
868
+ # their usage, e.g.
869
+ #
870
+ # time = Benchmark.realtime do
871
+ # foo.bar
872
+ # end
873
+ #
874
+ # Here, the return value of the block is discarded but the return value of
875
+ # `Benchmark.realtime` is used.
876
+ - benchmark
877
+ - bm
878
+ - bmbm
879
+ - create
880
+ - each_with_object
881
+ - measure
882
+ - new
883
+ - realtime
884
+ - tap
885
+ - with_object
886
+ FunctionalMethods:
887
+ # Methods that are known to be functional in nature but look procedural from
888
+ # their usage, e.g.
889
+ #
890
+ # let(:foo) { Foo.new }
891
+ #
892
+ # Here, the return value of `Foo.new` is used to define a `foo` helper but
893
+ # doesn't appear to be used from the return value of `let`.
894
+ - let
895
+ - let!
896
+ - subject
897
+ - watch
898
+ IgnoredMethods:
899
+ # Methods that can be either procedural or functional and cannot be
900
+ # categorised from their usage alone, e.g.
901
+ #
902
+ # foo = lambda do |x|
903
+ # puts "Hello, #{x}"
904
+ # end
905
+ #
906
+ # foo = lambda do |x|
907
+ # x * 100
908
+ # end
909
+ #
910
+ # Here, it is impossible to tell from the return value of `lambda` whether
911
+ # the inner block's return value is significant.
912
+ - lambda
913
+ - proc
914
+ - it
915
+
916
+ Style/BracesAroundHashParameters:
917
+ EnforcedStyle: no_braces
918
+ SupportedStyles:
919
+ # The `braces` style enforces braces around all method parameters that are
920
+ # hashes.
921
+ - braces
922
+ # The `no_braces` style checks that the last parameter doesn't have braces
923
+ # around it.
924
+ - no_braces
925
+ # The `context_dependent` style checks that the last parameter doesn't have
926
+ # braces around it, but requires braces if the second to last parameter is
927
+ # also a hash literal.
928
+ - context_dependent
929
+
930
+ Style/ClassAndModuleChildren:
931
+ # Checks the style of children definitions at classes and modules.
932
+ #
933
+ # Basically there are two different styles:
934
+ #
935
+ # `nested` - have each child on a separate line
936
+ # class Foo
937
+ # class Bar
938
+ # end
939
+ # end
940
+ #
941
+ # `compact` - combine definitions as much as possible
942
+ # class Foo::Bar
943
+ # end
944
+ #
945
+ # The compact style is only forced, for classes or modules with one child.
946
+ EnforcedStyle: nested
947
+ SupportedStyles:
948
+ - nested
949
+ - compact
950
+
951
+ Style/ClassCheck:
952
+ EnforcedStyle: is_a?
953
+ SupportedStyles:
954
+ - is_a?
955
+ - kind_of?
956
+
957
+ # Align with the style guide.
958
+ Style/CollectionMethods:
959
+ # Mapping from undesired method to desired_method
960
+ # e.g. to use `detect` over `find`:
961
+ #
962
+ # CollectionMethods:
963
+ # PreferredMethods:
964
+ # find: detect
965
+ PreferredMethods:
966
+ collect: 'map'
967
+ collect!: 'map!'
968
+ inject: 'reduce'
969
+ detect: 'find'
970
+ find_all: 'select'
971
+
972
+ # Use '`' or '%x' around command literals.
973
+ Style/CommandLiteral:
974
+ EnforcedStyle: backticks
975
+ # backticks: Always use backticks.
976
+ # percent_x: Always use `%x`.
977
+ # mixed: Use backticks on single-line commands, and `%x` on multi-line commands.
978
+ SupportedStyles:
979
+ - backticks
980
+ - percent_x
981
+ - mixed
982
+ # If `false`, the cop will always recommend using `%x` if one or more backticks
983
+ # are found in the command string.
984
+ AllowInnerBackticks: false
985
+
986
+ # Checks formatting of special comments
987
+ Style/CommentAnnotation:
988
+ Keywords:
989
+ - TODO
990
+ - FIXME
991
+ - OPTIMIZE
992
+ - HACK
993
+ - REVIEW
994
+
995
+ Style/ConditionalAssignment:
996
+ EnforcedStyle: assign_to_condition
997
+ SupportedStyles:
998
+ - assign_to_condition
999
+ - assign_inside_condition
1000
+ # When configured to `assign_to_condition`, `SingleLineConditionsOnly`
1001
+ # will only register an offense when all branches of a condition are
1002
+ # a single line.
1003
+ # When configured to `assign_inside_condition`, `SingleLineConditionsOnly`
1004
+ # will only register an offense for assignment to a condition that has
1005
+ # at least one multiline branch.
1006
+ SingleLineConditionsOnly: true
1007
+ IncludeTernaryExpressions: true
1008
+
1009
+ # Checks that you have put a copyright in a comment before any code.
1010
+ #
1011
+ # You can override the default Notice in your .rubocop.yml file.
1012
+ #
1013
+ # In order to use autocorrect, you must supply a value for the
1014
+ # `AutocorrectNotice` key that matches the regexp Notice. A blank
1015
+ # `AutocorrectNotice` will cause an error during autocorrect.
1016
+ #
1017
+ # Autocorrect will add a copyright notice in a comment at the top
1018
+ # of the file immediately after any shebang or encoding comments.
1019
+ #
1020
+ # Example rubocop.yml:
1021
+ #
1022
+ # Style/Copyright:
1023
+ # Enabled: true
1024
+ # Notice: 'Copyright (\(c\) )?2015 Yahoo! Inc'
1025
+ # AutocorrectNotice: '# Copyright (c) 2015 Yahoo! Inc.'
1026
+ #
1027
+ Style/Copyright:
1028
+ Notice: '^Copyright (\(c\) )?2[0-9]{3} .+'
1029
+ AutocorrectNotice: ''
1030
+
1031
+ Style/Documentation:
1032
+ Enabled: false
1033
+
1034
+ # Warn on empty else statements
1035
+ # empty - warn only on empty `else`
1036
+ # nil - warn on `else` with nil in it
1037
+ # both - warn on empty `else` and `else` with `nil` in it
1038
+ Style/EmptyElse:
1039
+ EnforcedStyle: both
1040
+ SupportedStyles:
1041
+ - empty
1042
+ - nil
1043
+ - both
1044
+
1045
+ Style/EmptyMethod:
1046
+ EnforcedStyle: compact
1047
+ SupportedStyles:
1048
+ - compact
1049
+ - expanded
1050
+
1051
+ # Checks use of for or each in multiline loops.
1052
+ Style/For:
1053
+ EnforcedStyle: each
1054
+ SupportedStyles:
1055
+ - each
1056
+ - for
1057
+
1058
+ # Enforce the method used for string formatting.
1059
+ Style/FormatString:
1060
+ EnforcedStyle: format
1061
+ SupportedStyles:
1062
+ - format
1063
+ - sprintf
1064
+ - percent
1065
+
1066
+ # Enforce using either `%<token>s` or `%{token}`
1067
+ Style/FormatStringToken:
1068
+ EnforcedStyle: annotated
1069
+ SupportedStyles:
1070
+ # Prefer tokens which contain a sprintf like type annotation like
1071
+ # `%<name>s`, `%<age>d`, `%<score>f`
1072
+ - annotated
1073
+ # Prefer simple looking "template" style tokens like `%{name}`, `%{age}`
1074
+ - template
1075
+ - unannotated
1076
+
1077
+ Style/FrozenStringLiteralComment:
1078
+ EnforcedStyle: when_needed
1079
+ SupportedStyles:
1080
+ # `when_needed` will add the frozen string literal comment to files
1081
+ # only when the `TargetRubyVersion` is set to 2.3+.
1082
+ - when_needed
1083
+ # `always` will always add the frozen string literal comment to a file
1084
+ # regardless of the Ruby version or if `freeze` or `<<` are called on a
1085
+ # string literal. If you run code against multiple versions of Ruby, it is
1086
+ # possible that this will create errors in Ruby 2.3.0+.
1087
+ - always
1088
+ # `never` will enforce that the frozen string literal comment does not
1089
+ # exist in a file.
1090
+ - never
1091
+
1092
+ # Built-in global variables are allowed by default.
1093
+ Style/GlobalVars:
1094
+ AllowedVariables: []
1095
+
1096
+ # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
1097
+ # needs to have to trigger this cop
1098
+ Style/GuardClause:
1099
+ MinBodyLength: 1
1100
+
1101
+ Style/HashSyntax:
1102
+ EnforcedStyle: ruby19
1103
+ SupportedStyles:
1104
+ # checks for 1.9 syntax (e.g. {a: 1}) for all symbol keys
1105
+ - ruby19
1106
+ # checks for hash rocket syntax for all hashes
1107
+ - hash_rockets
1108
+ # forbids mixed key syntaxes (e.g. {a: 1, :b => 2})
1109
+ - no_mixed_keys
1110
+ # enforces both ruby19 and no_mixed_keys styles
1111
+ - ruby19_no_mixed_keys
1112
+ # Force hashes that have a symbol value to use hash rockets
1113
+ UseHashRocketsWithSymbolValues: false
1114
+ # Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
1115
+ PreferHashRocketsForNonAlnumEndingSymbols: false
1116
+
1117
+ Style/InverseMethods:
1118
+ # `InverseMethods` are methods that can be inverted by a not (`not` or `!`)
1119
+ # The relationship of inverse methods only needs to be defined in one direction.
1120
+ # Keys and values both need to be defined as symbols.
1121
+ InverseMethods:
1122
+ :any?: :none?
1123
+ :even?: :odd?
1124
+ :==: :!=
1125
+ :=~: :!~
1126
+ :<: :>=
1127
+ :>: :<=
1128
+ # `ActiveSupport` defines some common inverse methods. They are listed below,
1129
+ # and not enabled by default.
1130
+ #:present?: :blank?,
1131
+ #:include?: :exclude?
1132
+ # `InverseBlocks` are methods that are inverted by inverting the return
1133
+ # of the block that is passed to the method
1134
+ InverseBlocks:
1135
+ :select: :reject
1136
+ :select!: :reject!
1137
+
1138
+ Style/Lambda:
1139
+ EnforcedStyle: line_count_dependent
1140
+ SupportedStyles:
1141
+ - line_count_dependent
1142
+ - lambda
1143
+ - literal
1144
+
1145
+ Style/LambdaCall:
1146
+ EnforcedStyle: call
1147
+ SupportedStyles:
1148
+ - call
1149
+ - braces
1150
+
1151
+ Style/MethodCallWithArgsParentheses:
1152
+ IgnoreMacros: true
1153
+ IgnoredMethods: []
1154
+
1155
+ Style/MethodCallWithoutArgsParentheses:
1156
+ IgnoredMethods: []
1157
+
1158
+ Style/MethodDefParentheses:
1159
+ EnforcedStyle: require_parentheses
1160
+ SupportedStyles:
1161
+ - require_parentheses
1162
+ - require_no_parentheses
1163
+ - require_no_parentheses_except_multiline
1164
+
1165
+ Style/MissingElse:
1166
+ EnforcedStyle: both
1167
+ SupportedStyles:
1168
+ # if - warn when an if expression is missing an else branch
1169
+ # case - warn when a case expression is missing an else branch
1170
+ # both - warn when an if or case expression is missing an else branch
1171
+ - if
1172
+ - case
1173
+ - both
1174
+
1175
+ # Checks the grouping of mixins (`include`, `extend`, `prepend`) in `class` and
1176
+ # `module` bodies.
1177
+ Style/MixinGrouping:
1178
+ EnforcedStyle: separated
1179
+ SupportedStyles:
1180
+ # separated: each mixed in module goes in a separate statement.
1181
+ # grouped: mixed in modules are grouped into a single statement.
1182
+ - separated
1183
+ - grouped
1184
+
1185
+ Style/ModuleFunction:
1186
+ EnforcedStyle: module_function
1187
+ SupportedStyles:
1188
+ - module_function
1189
+ - extend_self
1190
+
1191
+ Style/MultilineMemoization:
1192
+ EnforcedStyle: keyword
1193
+ SupportedStyles:
1194
+ - keyword
1195
+ - braces
1196
+
1197
+ Style/NegatedIf:
1198
+ EnforcedStyle: both
1199
+ SupportedStyles:
1200
+ # both: prefix and postfix negated `if` should both use `unless`
1201
+ # prefix: only use `unless` for negated `if` statements positioned before the body of the statement
1202
+ # postfix: only use `unless` for negated `if` statements positioned after the body of the statement
1203
+ - both
1204
+ - prefix
1205
+ - postfix
1206
+
1207
+ Style/NestedParenthesizedCalls:
1208
+ Whitelist:
1209
+ - be
1210
+ - be_a
1211
+ - be_an
1212
+ - be_between
1213
+ - be_falsey
1214
+ - be_kind_of
1215
+ - be_instance_of
1216
+ - be_truthy
1217
+ - be_within
1218
+ - eq
1219
+ - eql
1220
+ - end_with
1221
+ - include
1222
+ - match
1223
+ - raise_error
1224
+ - respond_to
1225
+ - start_with
1226
+
1227
+ Style/Next:
1228
+ # With `always` all conditions at the end of an iteration needs to be
1229
+ # replaced by next - with `skip_modifier_ifs` the modifier if like this one
1230
+ # are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
1231
+ EnforcedStyle: skip_modifier_ifs
1232
+ # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
1233
+ # needs to have to trigger this cop
1234
+ MinBodyLength: 3
1235
+ SupportedStyles:
1236
+ - skip_modifier_ifs
1237
+ - always
1238
+
1239
+ Style/NonNilCheck:
1240
+ # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
1241
+ # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
1242
+ # **usually** OK, but might change behavior.
1243
+ #
1244
+ # With `IncludeSemanticChanges` set to `false`, this cop does not report
1245
+ # offenses for `!x.nil?` and does no changes that might change behavior.
1246
+ IncludeSemanticChanges: false
1247
+
1248
+ Style/NumericLiterals:
1249
+ MinDigits: 5
1250
+ Strict: false
1251
+
1252
+ Style/NumericLiteralPrefix:
1253
+ EnforcedOctalStyle: zero_with_o
1254
+ SupportedOctalStyles:
1255
+ - zero_with_o
1256
+ - zero_only
1257
+
1258
+ Style/NumericPredicate:
1259
+ EnforcedStyle: predicate
1260
+ SupportedStyles:
1261
+ - predicate
1262
+ - comparison
1263
+ # Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
1264
+ # false positives.
1265
+ Exclude:
1266
+ - 'spec/**/*'
1267
+
1268
+ Style/OptionHash:
1269
+ # A list of parameter names that will be flagged by this cop.
1270
+ SuspiciousParamNames:
1271
+ - options
1272
+ - opts
1273
+ - args
1274
+ - params
1275
+ - parameters
1276
+
1277
+ # Allow safe assignment in conditions.
1278
+ Style/ParenthesesAroundCondition:
1279
+ AllowSafeAssignment: true
1280
+ AllowInMultilineConditions: false
1281
+
1282
+ Style/PercentLiteralDelimiters:
1283
+ # Specify the default preferred delimiter for all types with the 'default' key
1284
+ # Override individual delimiters (even with default specified) by specifying
1285
+ # an individual key
1286
+ PreferredDelimiters:
1287
+ default: ()
1288
+ '%i': '[]'
1289
+ '%I': '[]'
1290
+ '%r': '{}'
1291
+ '%w': '[]'
1292
+ '%W': '[]'
1293
+
1294
+ Style/PercentQLiterals:
1295
+ EnforcedStyle: lower_case_q
1296
+ SupportedStyles:
1297
+ - lower_case_q # Use `%q` when possible, `%Q` when necessary
1298
+ - upper_case_q # Always use `%Q`
1299
+
1300
+ Style/PreferredHashMethods:
1301
+ EnforcedStyle: short
1302
+ SupportedStyles:
1303
+ - short
1304
+ - verbose
1305
+
1306
+ Style/RaiseArgs:
1307
+ EnforcedStyle: exploded
1308
+ SupportedStyles:
1309
+ - compact # raise Exception.new(msg)
1310
+ - exploded # raise Exception, msg
1311
+
1312
+ Style/RedundantReturn:
1313
+ # When `true` allows code like `return x, y`.
1314
+ AllowMultipleReturnValues: false
1315
+
1316
+ # Use `/` or `%r` around regular expressions.
1317
+ Style/RegexpLiteral:
1318
+ EnforcedStyle: slashes
1319
+ # slashes: Always use slashes.
1320
+ # percent_r: Always use `%r`.
1321
+ # mixed: Use slashes on single-line regexes, and `%r` on multi-line regexes.
1322
+ SupportedStyles:
1323
+ - slashes
1324
+ - percent_r
1325
+ - mixed
1326
+ # If `false`, the cop will always recommend using `%r` if one or more slashes
1327
+ # are found in the regexp string.
1328
+ AllowInnerSlashes: false
1329
+
1330
+ Style/RescueStandardError:
1331
+ EnforcedStyle: explicit
1332
+ # implicit: Do not include the error class, `rescue`
1333
+ # explicit: Require an error class `rescue StandardError`
1334
+ SupportedStyles:
1335
+ - implicit
1336
+ - explicit
1337
+
1338
+ Style/ReturnNil:
1339
+ EnforcedStyle: return
1340
+ SupportedStyles:
1341
+ - return
1342
+ - return_nil
1343
+
1344
+ Style/SafeNavigation:
1345
+ # Safe navigation may cause a statement to start returning `nil` in addition
1346
+ # to whatever it used to return.
1347
+ ConvertCodeThatCanStartToReturnNil: false
1348
+ Whitelist:
1349
+ - present?
1350
+ - blank?
1351
+ - presence
1352
+ - try
1353
+ - try!
1354
+
1355
+ Style/Semicolon:
1356
+ # Allow `;` to separate several expressions on the same line.
1357
+ AllowAsExpressionSeparator: false
1358
+
1359
+ Style/SignalException:
1360
+ EnforcedStyle: only_raise
1361
+ SupportedStyles:
1362
+ - only_raise
1363
+ - only_fail
1364
+ - semantic
1365
+
1366
+ Style/SingleLineBlockParams:
1367
+ Methods:
1368
+ - reduce:
1369
+ - acc
1370
+ - elem
1371
+ - inject:
1372
+ - acc
1373
+ - elem
1374
+
1375
+ Style/SingleLineMethods:
1376
+ AllowIfMethodIsEmpty: true
1377
+
1378
+ Style/SpecialGlobalVars:
1379
+ EnforcedStyle: use_english_names
1380
+ SupportedStyles:
1381
+ - use_perl_names
1382
+ - use_english_names
1383
+
1384
+ Style/StabbyLambdaParentheses:
1385
+ EnforcedStyle: require_parentheses
1386
+ SupportedStyles:
1387
+ - require_parentheses
1388
+ - require_no_parentheses
1389
+
1390
+ Style/StringLiterals:
1391
+ EnforcedStyle: single_quotes
1392
+ SupportedStyles:
1393
+ - single_quotes
1394
+ - double_quotes
1395
+ # If `true`, strings which span multiple lines using `\` for continuation must
1396
+ # use the same type of quotes on each line.
1397
+ ConsistentQuotesInMultiline: false
1398
+
1399
+ Style/StringLiteralsInInterpolation:
1400
+ EnforcedStyle: single_quotes
1401
+ SupportedStyles:
1402
+ - single_quotes
1403
+ - double_quotes
1404
+
1405
+ Style/StringMethods:
1406
+ # Mapping from undesired method to desired_method
1407
+ # e.g. to use `to_sym` over `intern`:
1408
+ #
1409
+ # StringMethods:
1410
+ # PreferredMethods:
1411
+ # intern: to_sym
1412
+ PreferredMethods:
1413
+ intern: to_sym
1414
+
1415
+ Style/SymbolArray:
1416
+ EnforcedStyle: percent
1417
+ MinSize: 2
1418
+ SupportedStyles:
1419
+ - percent
1420
+ - brackets
1421
+
1422
+ Style/SymbolProc:
1423
+ # A list of method names to be ignored by the check.
1424
+ # The names should be fairly unique, otherwise you'll end up ignoring lots of code.
1425
+ IgnoredMethods:
1426
+ - respond_to
1427
+ - define_method
1428
+
1429
+ Style/TernaryParentheses:
1430
+ EnforcedStyle: require_no_parentheses
1431
+ SupportedStyles:
1432
+ - require_parentheses
1433
+ - require_no_parentheses
1434
+ - require_parentheses_when_complex
1435
+ AllowSafeAssignment: true
1436
+
1437
+ Style/TrailingCommaInArguments:
1438
+ # If `comma`, the cop requires a comma after the last argument, but only for
1439
+ # parenthesized method calls where each argument is on its own line.
1440
+ # If `consistent_comma`, the cop requires a comma after the last argument,
1441
+ # for all parenthesized method calls with arguments.
1442
+ EnforcedStyleForMultiline: no_comma
1443
+ SupportedStylesForMultiline:
1444
+ - comma
1445
+ - consistent_comma
1446
+ - no_comma
1447
+
1448
+ Style/TrailingCommaInArrayLiteral:
1449
+ # If `comma`, the cop requires a comma after the last item in an array,
1450
+ # but only when each item is on its own line.
1451
+ # If `consistent_comma`, the cop requires a comma after the last item of all
1452
+ # non-empty array literals.
1453
+ EnforcedStyleForMultiline: no_comma
1454
+ SupportedStylesForMultiline:
1455
+ - comma
1456
+ - consistent_comma
1457
+ - no_comma
1458
+
1459
+ Style/TrailingCommaInHashLiteral:
1460
+ # If `comma`, the cop requires a comma after the last item in a hash,
1461
+ # but only when each item is on its own line.
1462
+ # If `consistent_comma`, the cop requires a comma after the last item of all
1463
+ # non-empty hash literals.
1464
+ EnforcedStyleForMultiline: no_comma
1465
+ SupportedStylesForMultiline:
1466
+ - comma
1467
+ - consistent_comma
1468
+ - no_comma
1469
+
1470
+ # `TrivialAccessors` requires exact name matches and doesn't allow
1471
+ # predicated methods by default.
1472
+ Style/TrivialAccessors:
1473
+ # When set to `false` the cop will suggest the use of accessor methods
1474
+ # in situations like:
1475
+ #
1476
+ # def name
1477
+ # @other_name
1478
+ # end
1479
+ #
1480
+ # This way you can uncover "hidden" attributes in your code.
1481
+ ExactNameMatch: true
1482
+ AllowPredicates: true
1483
+ # Allows trivial writers that don't end in an equal sign. e.g.
1484
+ #
1485
+ # def on_exception(action)
1486
+ # @on_exception=action
1487
+ # end
1488
+ # on_exception :restart
1489
+ #
1490
+ # Commonly used in DSLs
1491
+ AllowDSLWriters: false
1492
+ IgnoreClassMethods: false
1493
+ Whitelist:
1494
+ - to_ary
1495
+ - to_a
1496
+ - to_c
1497
+ - to_enum
1498
+ - to_h
1499
+ - to_hash
1500
+ - to_i
1501
+ - to_int
1502
+ - to_io
1503
+ - to_open
1504
+ - to_path
1505
+ - to_proc
1506
+ - to_r
1507
+ - to_regexp
1508
+ - to_str
1509
+ - to_s
1510
+ - to_sym
1511
+
1512
+ # `WordArray` enforces how array literals of word-like strings should be expressed.
1513
+ Style/WordArray:
1514
+ EnforcedStyle: percent
1515
+ SupportedStyles:
1516
+ # percent style: %w(word1 word2)
1517
+ - percent
1518
+ # bracket style: ['word1', 'word2']
1519
+ - brackets
1520
+ # The `MinSize` option causes the `WordArray` rule to be ignored for arrays
1521
+ # smaller than a certain size. The rule is only applied to arrays
1522
+ # whose element count is greater than or equal to `MinSize`.
1523
+ MinSize: 2
1524
+ # The regular expression `WordRegex` decides what is considered a word.
1525
+ WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'
1526
+
1527
+ Style/YodaCondition:
1528
+ EnforcedStyle: all_comparison_operators
1529
+ SupportedStyles:
1530
+ # check all comparison operators
1531
+ - all_comparison_operators
1532
+ # check only equality operators: `!=` and `==`
1533
+ - equality_operators_only
1534
+
1535
+ #################### Metrics ###############################
1536
+
1537
+ Metrics/AbcSize:
1538
+ # The ABC size is a calculated magnitude, so this number can be an Integer or
1539
+ # a Float.
1540
+ Max: 15
1541
+
1542
+ Metrics/BlockLength:
1543
+ CountComments: false # count full line comments?
1544
+ Max: 25
1545
+ ExcludedMethods: []
1546
+
1547
+ Metrics/BlockNesting:
1548
+ CountBlocks: false
1549
+ Max: 3
1550
+
1551
+ Metrics/ClassLength:
1552
+ CountComments: false # count full line comments?
1553
+ Max: 150
1554
+
1555
+ # Avoid complex methods.
1556
+ Metrics/CyclomaticComplexity:
1557
+ Max: 6
1558
+
1559
+ Metrics/LineLength:
1560
+ Enabled: false
1561
+
1562
+ Metrics/MethodLength:
1563
+ Enabled: false
1564
+
1565
+ Metrics/ModuleLength:
1566
+ CountComments: false # count full line comments?
1567
+ Max: 100
1568
+
1569
+ Metrics/ParameterLists:
1570
+ Max: 5
1571
+ CountKeywordArgs: true
1572
+
1573
+ Metrics/PerceivedComplexity:
1574
+ Max: 7
1575
+
1576
+ #################### Lint ##################################
1577
+
1578
+ # Allow safe assignment in conditions.
1579
+ Lint/AssignmentInCondition:
1580
+ AllowSafeAssignment: true
1581
+
1582
+ Lint/InheritException:
1583
+ # The default base class in favour of `Exception`.
1584
+ EnforcedStyle: runtime_error
1585
+ SupportedStyles:
1586
+ - runtime_error
1587
+ - standard_error
1588
+
1589
+ Lint/MissingCopEnableDirective:
1590
+ # Maximum number of consecutive lines the cop can be disabled for.
1591
+ # 0 allows only single-line disables
1592
+ # 1 would mean the maximum allowed is the following:
1593
+ # # rubocop:disable SomeCop
1594
+ # a = 1
1595
+ # # rubocop:enable SomeCop
1596
+ # .inf for any size
1597
+ MaximumRangeSize: .inf
1598
+
1599
+ Lint/SafeNavigationChain:
1600
+ Whitelist:
1601
+ - present?
1602
+ - blank?
1603
+ - presence
1604
+ - try
1605
+ - try!
1606
+
1607
+ Lint/SafeNavigationConsistency:
1608
+ Whitelist:
1609
+ - present?
1610
+ - blank?
1611
+ - presence
1612
+ - try
1613
+ - try!
1614
+
1615
+ # Checks for shadowed arguments
1616
+ Lint/ShadowedArgument:
1617
+ IgnoreImplicitReferences: false
1618
+
1619
+ # Checks for unused block arguments
1620
+ Lint/UnusedBlockArgument:
1621
+ IgnoreEmptyBlocks: true
1622
+ AllowUnusedKeywordArguments: false
1623
+
1624
+ # Checks for unused method arguments.
1625
+ Lint/UnusedMethodArgument:
1626
+ AllowUnusedKeywordArguments: false
1627
+ IgnoreEmptyMethods: true
1628
+
1629
+ Lint/Void:
1630
+ CheckForMethodsWithNoSideEffects: false
1631
+
1632
+ #################### Performance ###########################
1633
+
1634
+ Performance/DoubleStartEndWith:
1635
+ # Used to check for `starts_with?` and `ends_with?`.
1636
+ # These methods are defined by `ActiveSupport`.
1637
+ IncludeActiveSupportAliases: false
1638
+
1639
+ Performance/RedundantMerge:
1640
+ # Max number of key-value pairs to consider an offense
1641
+ MaxKeyValuePairs: 2
1642
+
1643
+ #################### Rails #################################
1644
+
1645
+ Rails/ActionFilter:
1646
+ EnforcedStyle: action
1647
+ SupportedStyles:
1648
+ - action
1649
+ - filter
1650
+ Include:
1651
+ - app/controllers/**/*.rb
1652
+
1653
+ Rails/AssertNot:
1654
+ Include:
1655
+ - '**/test/**/*'
1656
+
1657
+ Rails/Blank:
1658
+ # Convert usages of `nil? || empty?` to `blank?`
1659
+ NilOrEmpty: true
1660
+ # Convert usages of `!present?` to `blank?`
1661
+ NotPresent: true
1662
+ # Convert usages of `unless present?` to `if blank?`
1663
+ UnlessPresent: true
1664
+
1665
+ Rails/BulkChangeTable:
1666
+ Database: null
1667
+ SupportedDatabases:
1668
+ - mysql
1669
+ - postgresql
1670
+ Include:
1671
+ - db/migrate/*.rb
1672
+
1673
+ Rails/CreateTableWithTimestamps:
1674
+ Include:
1675
+ - db/migrate/*.rb
1676
+
1677
+ Rails/Date:
1678
+ # The value `strict` disallows usage of `Date.today`, `Date.current`,
1679
+ # `Date#to_time` etc.
1680
+ # The value `flexible` allows usage of `Date.current`, `Date.yesterday`, etc
1681
+ # (but not `Date.today`) which are overridden by ActiveSupport to handle current
1682
+ # time zone.
1683
+ EnforcedStyle: flexible
1684
+ SupportedStyles:
1685
+ - strict
1686
+ - flexible
1687
+
1688
+ Rails/Delegate:
1689
+ # When set to true, using the target object as a prefix of the
1690
+ # method name without using the `delegate` method will be a
1691
+ # violation. When set to false, this case is legal.
1692
+ EnforceForPrefixed: true
1693
+
1694
+ Rails/DynamicFindBy:
1695
+ Whitelist:
1696
+ - find_by_sql
1697
+
1698
+ Rails/EnumUniqueness:
1699
+ Include:
1700
+ - app/models/**/*.rb
1701
+
1702
+ Rails/Exit:
1703
+ Include:
1704
+ - app/**/*.rb
1705
+ - config/**/*.rb
1706
+ - lib/**/*.rb
1707
+ Exclude:
1708
+ - lib/**/*.rake
1709
+
1710
+ Rails/FilePath:
1711
+ EnforcedStyle: arguments
1712
+ SupportedStyles:
1713
+ - slashes
1714
+ - arguments
1715
+
1716
+ Rails/FindBy:
1717
+ Include:
1718
+ - app/models/**/*.rb
1719
+
1720
+ Rails/FindEach:
1721
+ Include:
1722
+ - app/models/**/*.rb
1723
+
1724
+ Rails/HasAndBelongsToMany:
1725
+ Include:
1726
+ - app/models/**/*.rb
1727
+
1728
+ Rails/HasManyOrHasOneDependent:
1729
+ Include:
1730
+ - app/models/**/*.rb
1731
+
1732
+ Rails/HttpStatus:
1733
+ EnforcedStyle: symbolic
1734
+ SupportedStyles:
1735
+ - numeric
1736
+ - symbolic
1737
+
1738
+ Rails/InverseOf:
1739
+ Include:
1740
+ - app/models/**/*.rb
1741
+
1742
+ Rails/LexicallyScopedActionFilter:
1743
+ Include:
1744
+ - app/controllers/**/*.rb
1745
+
1746
+ Rails/NotNullColumn:
1747
+ Include:
1748
+ - db/migrate/*.rb
1749
+
1750
+ Rails/Output:
1751
+ Include:
1752
+ - app/**/*.rb
1753
+ - config/**/*.rb
1754
+ - db/**/*.rb
1755
+ - lib/**/*.rb
1756
+
1757
+ Rails/Present:
1758
+ # Convert usages of `!nil? && !empty?` to `present?`
1759
+ NotNilAndNotEmpty: true
1760
+ # Convert usages of `!blank?` to `present?`
1761
+ NotBlank: true
1762
+ # Convert usages of `unless blank?` to `if present?`
1763
+ UnlessBlank: true
1764
+
1765
+ Rails/ReadWriteAttribute:
1766
+ Include:
1767
+ - app/models/**/*.rb
1768
+
1769
+ Rails/RefuteMethods:
1770
+ Include:
1771
+ - '**/test/**/*'
1772
+
1773
+ Rails/RequestReferer:
1774
+ EnforcedStyle: referer
1775
+ SupportedStyles:
1776
+ - referer
1777
+ - referrer
1778
+
1779
+ Rails/ReversibleMigration:
1780
+ Include:
1781
+ - db/migrate/*.rb
1782
+
1783
+ Rails/SafeNavigation:
1784
+ # This will convert usages of `try` to use safe navigation as well as `try!`.
1785
+ # `try` and `try!` work slightly differently. `try!` and safe navigation will
1786
+ # both raise a `NoMethodError` if the receiver of the method call does not
1787
+ # implement the intended method. `try` will not raise an exception for this.
1788
+ ConvertTry: false
1789
+
1790
+ Rails/ScopeArgs:
1791
+ Include:
1792
+ - app/models/**/*.rb
1793
+
1794
+ Rails/TimeZone:
1795
+ # The value `strict` means that `Time` should be used with `zone`.
1796
+ # The value `flexible` allows usage of `in_time_zone` instead of `zone`.
1797
+ EnforcedStyle: flexible
1798
+ SupportedStyles:
1799
+ - strict
1800
+ - flexible
1801
+
1802
+ Rails/UniqBeforePluck:
1803
+ EnforcedStyle: conservative
1804
+ SupportedStyles:
1805
+ - conservative
1806
+ - aggressive
1807
+ AutoCorrect: false
1808
+
1809
+ Rails/UnknownEnv:
1810
+ Environments:
1811
+ - development
1812
+ - test
1813
+ - production
1814
+
1815
+ Rails/SkipsModelValidations:
1816
+ Blacklist:
1817
+ - decrement!
1818
+ - decrement_counter
1819
+ - increment!
1820
+ - increment_counter
1821
+ - toggle!
1822
+ - touch
1823
+ - update_all
1824
+ - update_attribute
1825
+ - update_column
1826
+ - update_columns
1827
+ - update_counters
1828
+
1829
+ Rails/Validation:
1830
+ Include:
1831
+ - app/models/**/*.rb
1832
+
1833
+ Bundler/OrderedGems:
1834
+ TreatCommentsAsGroupSeparators: true
1835
+
1836
+ Gemspec/OrderedDependencies:
1837
+ TreatCommentsAsGroupSeparators: true