cookstyle 0.0.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,6 +25,8 @@ AllCops:
25
25
  - '**/Berksfile'
26
26
  - '**/Cheffile'
27
27
  - '**/Vagabondfile'
28
+ - '**/Fastfile'
29
+ - '**/*Fastfile'
28
30
  Exclude:
29
31
  - 'vendor/**/*'
30
32
  # Default formatter will be used if no -f/--format option is given.
@@ -37,6 +39,9 @@ AllCops:
37
39
  # behavior by overriding DisplayStyleGuide, or by giving the
38
40
  # -S/--display-style-guide option.
39
41
  DisplayStyleGuide: false
42
+ # When specifying style guide URLs, any paths and/or fragments will be
43
+ # evaluated relative to the base URL.
44
+ StyleGuideBaseURL: https://github.com/bbatsov/ruby-style-guide
40
45
  # Extra details are not displayed in offense messages by default. Change
41
46
  # behavior by overriding ExtraDetails, or by giving the
42
47
  # -E/--extra-details option.
@@ -63,9 +68,20 @@ AllCops:
63
68
  # which is "/tmp" on Unix-like systems, but could be something else on other
64
69
  # systems.
65
70
  CacheRootDirectory: /tmp
66
- # What version of the Ruby interpreter is the inspected code intended to
71
+ # The default cache root directory is /tmp, which on most systems is
72
+ # writable by any system user. This means that it is possible for a
73
+ # malicious user to anticipate the location of Rubocop's cache directory,
74
+ # and create a symlink in its place that could cause Rubocop to overwrite
75
+ # unintended files, or read malicious input. If you are certain that your
76
+ # cache location is secure from this kind of attack, and wish to use a
77
+ # symlinked cache location, set this value to "true".
78
+ AllowSymlinksInCacheRootDirectory: false
79
+ # What MRI version of the Ruby interpreter is the inspected code intended to
67
80
  # run on? (If there is more than one, set this to the lowest version.)
68
- TargetRubyVersion: 2.0
81
+ # If a value is specified for TargetRubyVersion then it is used.
82
+ # Else if .ruby-version exists and it contains an MRI version it is used.
83
+ # Otherwise we fallback to the oldest officially supported Ruby version (2.1).
84
+ TargetRubyVersion: ~
69
85
 
70
86
  # Indent private/protected/public as deep as method definitions
71
87
  Style/AccessModifierIndentation:
@@ -165,6 +181,9 @@ Style/AlignParameters:
165
181
  SupportedStyles:
166
182
  - with_first_parameter
167
183
  - with_fixed_indentation
184
+ # By default, the indentation width from Style/IndentationWidth is used
185
+ # But it can be overridden by setting this parameter
186
+ IndentationWidth: ~
168
187
 
169
188
  Style/AndOr:
170
189
  # Whether `and` and `or` are banned only in conditionals (conditionals)
@@ -379,6 +398,9 @@ Style/Copyright:
379
398
  Notice: '^Copyright (\(c\) )?2[0-9]{3} .+'
380
399
  AutocorrectNotice: ''
381
400
 
401
+ Style/DocumentationMethod:
402
+ RequireForNonPublicMethods: false
403
+
382
404
  # Multi-line method chaining should be done with leading dots.
383
405
  Style/DotPosition:
384
406
  EnforcedStyle: leading
@@ -413,22 +435,33 @@ Style/EmptyLinesAroundClassBody:
413
435
  EnforcedStyle: no_empty_lines
414
436
  SupportedStyles:
415
437
  - empty_lines
438
+ - empty_lines_except_namespace
439
+ - empty_lines_special
416
440
  - no_empty_lines
417
441
 
418
442
  Style/EmptyLinesAroundModuleBody:
419
443
  EnforcedStyle: no_empty_lines
420
444
  SupportedStyles:
421
445
  - empty_lines
446
+ - empty_lines_except_namespace
447
+ - empty_lines_special
422
448
  - no_empty_lines
423
449
 
450
+ Style/EmptyMethod:
451
+ EnforcedStyle: compact
452
+ SupportedStyles:
453
+ - compact
454
+ - expanded
455
+
424
456
  # Checks whether the source file has a utf-8 encoding comment or not
425
457
  # AutoCorrectEncodingComment must match the regex
426
458
  # /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
427
459
  Style/Encoding:
428
- EnforcedStyle: always
460
+ EnforcedStyle: never
429
461
  SupportedStyles:
430
462
  - when_needed
431
463
  - always
464
+ - never
432
465
  AutoCorrectEncodingComment: '# encoding: utf-8'
433
466
 
434
467
  Style/ExtraSpacing:
@@ -515,11 +548,18 @@ Style/GuardClause:
515
548
  Style/HashSyntax:
516
549
  EnforcedStyle: ruby19
517
550
  SupportedStyles:
551
+ # checks for 1.9 syntax (e.g. {a: 1}) for all symbol keys
518
552
  - ruby19
519
- - ruby19_no_mixed_keys
553
+ # checks for hash rocket syntax for all hashes
520
554
  - hash_rockets
521
- # Force hashes that have a symbol value to use hash rockets
555
+ # forbids mixed key syntaxes (e.g. {a: 1, :b => 2})
556
+ - no_mixed_keys
557
+ # enforces both ruby19 and no_mixed_keys styles
558
+ - ruby19_no_mixed_keys
559
+ # Force hashes that have a symbol value to use hash rockets
522
560
  UseHashRocketsWithSymbolValues: false
561
+ # Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
562
+ PreferHashRocketsForNonAlnumEndingSymbols: false
523
563
 
524
564
  Style/IfUnlessModifier:
525
565
  MaxLineLength: 80
@@ -590,6 +630,19 @@ Style/IndentHash:
590
630
  # But it can be overridden by setting this parameter
591
631
  IndentationWidth: ~
592
632
 
633
+ Style/Lambda:
634
+ EnforcedStyle: line_count_dependent
635
+ SupportedStyles:
636
+ - line_count_dependent
637
+ - lambda
638
+ - literal
639
+
640
+ Style/SpaceInLambdaLiteral:
641
+ EnforcedStyle: require_no_space
642
+ SupportedStyles:
643
+ - require_no_space
644
+ - require_space
645
+
593
646
  Style/LambdaCall:
594
647
  EnforcedStyle: call
595
648
  SupportedStyles:
@@ -617,6 +670,16 @@ Style/NonNilCheck:
617
670
  # offenses for `!x.nil?` and does no changes that might change behavior.
618
671
  IncludeSemanticChanges: false
619
672
 
673
+ Style/NumericPredicate:
674
+ EnforcedStyle: predicate
675
+ SupportedStyles:
676
+ - predicate
677
+ - comparison
678
+ # Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
679
+ # false positives.
680
+ Exclude:
681
+ - 'spec/**/*'
682
+
620
683
  Style/MethodDefParentheses:
621
684
  EnforcedStyle: require_parentheses
622
685
  SupportedStyles:
@@ -630,6 +693,22 @@ Style/MethodName:
630
693
  - snake_case
631
694
  - camelCase
632
695
 
696
+ Style/ModuleFunction:
697
+ EnforcedStyle: module_function
698
+ SupportedStyles:
699
+ - module_function
700
+ - extend_self
701
+
702
+ Style/MultilineArrayBraceLayout:
703
+ EnforcedStyle: symmetrical
704
+ SupportedStyles:
705
+ # symmetrical: closing brace is positioned in same way as opening brace
706
+ # new_line: closing brace is always on a new line
707
+ # same_line: closing brace is always on the same line as last element
708
+ - symmetrical
709
+ - new_line
710
+ - same_line
711
+
633
712
  Style/MultilineAssignmentLayout:
634
713
  # The types of assignments which are subject to this rule.
635
714
  SupportedTypes:
@@ -648,15 +727,46 @@ Style/MultilineAssignmentLayout:
648
727
  # for the set of supported types.
649
728
  - new_line
650
729
 
730
+ Style/MultilineHashBraceLayout:
731
+ EnforcedStyle: symmetrical
732
+ SupportedStyles:
733
+ # symmetrical: closing brace is positioned in same way as opening brace
734
+ # new_line: closing brace is always on a new line
735
+ # same_line: closing brace is always on same line as last element
736
+ - symmetrical
737
+ - new_line
738
+ - same_line
739
+
740
+ Style/MultilineMethodCallBraceLayout:
741
+ EnforcedStyle: symmetrical
742
+ SupportedStyles:
743
+ # symmetrical: closing brace is positioned in same way as opening brace
744
+ # new_line: closing brace is always on a new line
745
+ # same_line: closing brace is always on the same line as last argument
746
+ - symmetrical
747
+ - new_line
748
+ - same_line
749
+
651
750
  Style/MultilineMethodCallIndentation:
652
751
  EnforcedStyle: aligned
653
752
  SupportedStyles:
654
753
  - aligned
655
754
  - indented
755
+ - indented_relative_to_receiver
656
756
  # By default, the indentation width from Style/IndentationWidth is used
657
757
  # But it can be overridden by setting this parameter
658
758
  IndentationWidth: ~
659
759
 
760
+ Style/MultilineMethodDefinitionBraceLayout:
761
+ EnforcedStyle: symmetrical
762
+ SupportedStyles:
763
+ # symmetrical: closing brace is positioned in same way as opening brace
764
+ # new_line: closing brace is always on a new line
765
+ # same_line: closing brace is always on the same line as last parameter
766
+ - symmetrical
767
+ - new_line
768
+ - same_line
769
+
660
770
  Style/MultilineOperationIndentation:
661
771
  EnforcedStyle: aligned
662
772
  SupportedStyles:
@@ -669,6 +779,12 @@ Style/MultilineOperationIndentation:
669
779
  Style/NumericLiterals:
670
780
  MinDigits: 5
671
781
 
782
+ Style/NumericLiteralPrefix:
783
+ EnforcedOctalStyle: zero_with_o
784
+ SupportedOctalStyles:
785
+ - zero_with_o
786
+ - zero_only
787
+
672
788
  Style/OptionHash:
673
789
  # A list of parameter names that will be flagged by this cop.
674
790
  SuspiciousParamNames:
@@ -686,6 +802,7 @@ Style/PercentLiteralDelimiters:
686
802
  PreferredDelimiters:
687
803
  '%': ()
688
804
  '%i': ()
805
+ '%I': ()
689
806
  '%q': ()
690
807
  '%Q': ()
691
808
  '%r': '{}'
@@ -715,6 +832,16 @@ Style/PredicateName:
715
832
  # should still be accepted
716
833
  NameWhitelist:
717
834
  - is_a?
835
+ # Exclude Rspec specs because there is a strong convetion to write spec
836
+ # helpers in the form of `have_something` or `be_something`.
837
+ Exclude:
838
+ - 'spec/**/*'
839
+
840
+ Style/PreferredHashMethods:
841
+ EnforcedStyle: short
842
+ SupportedStyles:
843
+ - short
844
+ - verbose
718
845
 
719
846
  Style/RaiseArgs:
720
847
  EnforcedStyle: exploded
@@ -740,6 +867,11 @@ Style/RegexpLiteral:
740
867
  # are found in the regexp string.
741
868
  AllowInnerSlashes: false
742
869
 
870
+ Style/SafeNavigation:
871
+ # Safe navigation may cause a statement to start returning `nil` in addition
872
+ # to whatever it used to return.
873
+ ConvertCodeThatCanStartToReturnNil: false
874
+
743
875
  Style/Semicolon:
744
876
  # Allow ; to separate several expressions on the same line.
745
877
  AllowAsExpressionSeparator: false
@@ -754,11 +886,11 @@ Style/SignalException:
754
886
  Style/SingleLineBlockParams:
755
887
  Methods:
756
888
  - reduce:
757
- - a
758
- - e
889
+ - acc
890
+ - elem
759
891
  - inject:
760
- - a
761
- - e
892
+ - acc
893
+ - elem
762
894
 
763
895
  Style/SingleLineMethods:
764
896
  AllowIfMethodIsEmpty: true
@@ -846,6 +978,9 @@ Style/SpaceInsideHashLiteralBraces:
846
978
  SupportedStyles:
847
979
  - space
848
980
  - no_space
981
+ # 'compact' normally requires a space inside hash braces, with the exception
982
+ # that successive left braces or right braces are collapsed together
983
+ - compact
849
984
 
850
985
  Style/SpaceInsideStringInterpolation:
851
986
  EnforcedStyle: no_space
@@ -864,6 +999,15 @@ Style/SymbolProc:
864
999
  # The names should be fairly unique, otherwise you'll end up ignoring lots of code.
865
1000
  IgnoredMethods:
866
1001
  - respond_to
1002
+ - define_method
1003
+
1004
+ Style/TernaryParentheses:
1005
+ EnforcedStyle: require_no_parentheses
1006
+ SupportedStyles:
1007
+ - require_parentheses
1008
+ - require_no_parentheses
1009
+ - require_parentheses_when_complex
1010
+ AllowSafeAssignment: true
867
1011
 
868
1012
  Style/TrailingBlankLines:
869
1013
  EnforcedStyle: final_newline
@@ -941,14 +1085,27 @@ Style/VariableName:
941
1085
  - snake_case
942
1086
  - camelCase
943
1087
 
1088
+ Style/VariableNumber:
1089
+ EnforcedStyle: normalcase
1090
+ SupportedStyles:
1091
+ - snake_case
1092
+ - normalcase
1093
+ - non_integer
1094
+
944
1095
  Style/WhileUntilModifier:
945
1096
  MaxLineLength: 80
946
1097
 
1098
+ # WordArray enforces how array literals of word-like strings should be expressed.
947
1099
  Style/WordArray:
948
1100
  EnforcedStyle: percent
949
1101
  SupportedStyles:
1102
+ # percent style: %w(word1 word2)
950
1103
  - percent
1104
+ # bracket style: ['word1', 'word2']
951
1105
  - brackets
1106
+ # The MinSize option causes the WordArray rule to be ignored for arrays
1107
+ # smaller than a certain size. The rule is only applied to arrays
1108
+ # whose element count is greater than or equal to MinSize.
952
1109
  MinSize: 0
953
1110
  # The regular expression WordRegex decides what is considered a word.
954
1111
  WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'
@@ -956,7 +1113,7 @@ Style/WordArray:
956
1113
  ##################### Metrics ##################################
957
1114
 
958
1115
  Metrics/AbcSize:
959
- # The ABC size is a calculated magnitude, so this number can be a Fixnum or
1116
+ # The ABC size is a calculated magnitude, so this number can be an Integer or
960
1117
  # a Float.
961
1118
  Max: 15
962
1119
 
@@ -984,11 +1141,26 @@ Metrics/LineLength:
984
1141
  URISchemes:
985
1142
  - http
986
1143
  - https
1144
+ # The IgnoreCopDirectives option causes the LineLength rule to ignore cop
1145
+ # directives like '# rubocop: enable ...' when calculating a line's length.
1146
+ IgnoreCopDirectives: false
1147
+ # The IgnoredPatterns option is a list of !ruby/regexp and/or string
1148
+ # elements. Strings will be converted to Regexp objects. A line that matches
1149
+ # any regular expression listed in this option will be ignored by LineLength.
1150
+ IgnoredPatterns: []
987
1151
 
988
1152
  Metrics/MethodLength:
989
1153
  CountComments: false # count full line comments?
990
1154
  Max: 10
991
1155
 
1156
+ Metrics/BlockLength:
1157
+ CountComments: false # count full line comments?
1158
+ Max: 25
1159
+ Exclude:
1160
+ - 'Rakefile'
1161
+ - '**/*.rake'
1162
+ - 'spec/**/*.rb'
1163
+
992
1164
  Metrics/ParameterLists:
993
1165
  Max: 5
994
1166
  CountKeywordArgs: true
@@ -1006,7 +1178,7 @@ Lint/AssignmentInCondition:
1006
1178
  Lint/BlockAlignment:
1007
1179
  # The value `start_of_block` means that the `end` should be aligned with line
1008
1180
  # where the `do` keyword appears.
1009
- # The value `start_of_line` means it should be aligned with the whole
1181
+ # The value `start_of_line` means it should be aligned with the whole
1010
1182
  # expression's starting line.
1011
1183
  # The value `either` means both are allowed.
1012
1184
  AlignWith: either
@@ -1042,9 +1214,17 @@ Lint/DefEndAlignment:
1042
1214
  - def
1043
1215
  AutoCorrect: false
1044
1216
 
1217
+ Lint/InheritException:
1218
+ # The default base class in favour of `Exception`.
1219
+ EnforcedStyle: runtime_error
1220
+ SupportedStyles:
1221
+ - runtime_error
1222
+ - standard_error
1223
+
1045
1224
  # Checks for unused block arguments
1046
1225
  Lint/UnusedBlockArgument:
1047
1226
  IgnoreEmptyBlocks: true
1227
+ AllowUnusedKeywordArguments: false
1048
1228
 
1049
1229
  # Checks for unused method arguments.
1050
1230
  Lint/UnusedMethodArgument:
@@ -1078,6 +1258,22 @@ Rails/Date:
1078
1258
  - strict
1079
1259
  - flexible
1080
1260
 
1261
+ Rails/DynamicFindBy:
1262
+ Whitelist:
1263
+ - find_by_sql
1264
+
1265
+ Rails/EnumUniqueness:
1266
+ Include:
1267
+ - app/models/**/*.rb
1268
+
1269
+ Rails/Exit:
1270
+ Include:
1271
+ - app/**/*.rb
1272
+ - config/**/*.rb
1273
+ - lib/**/*.rb
1274
+ Exclude:
1275
+ - lib/**/*.rake
1276
+
1081
1277
  Rails/FindBy:
1082
1278
  Include:
1083
1279
  - app/models/**/*.rb
@@ -1090,6 +1286,10 @@ Rails/HasAndBelongsToMany:
1090
1286
  Include:
1091
1287
  - app/models/**/*.rb
1092
1288
 
1289
+ Rails/NotNullColumn:
1290
+ Include:
1291
+ - db/migrate/*.rb
1292
+
1093
1293
  Rails/Output:
1094
1294
  Include:
1095
1295
  - app/**/*.rb
@@ -1101,6 +1301,19 @@ Rails/ReadWriteAttribute:
1101
1301
  Include:
1102
1302
  - app/models/**/*.rb
1103
1303
 
1304
+ Rails/RequestReferer:
1305
+ EnforcedStyle: referer
1306
+ SupportedStyles:
1307
+ - referer
1308
+ - referrer
1309
+
1310
+ Rails/SafeNavigation:
1311
+ # This will convert usages of `try` to use safe navigation as well as `try!`.
1312
+ # `try` and `try!` work slighly differently. `try!` and safe navigation will
1313
+ # both raise a `NoMethodError` if the receiver of the method call does not
1314
+ # implement the intended method. `try` will not raise an exception for this.
1315
+ ConvertTry: false
1316
+
1104
1317
  Rails/ScopeArgs:
1105
1318
  Include:
1106
1319
  - app/models/**/*.rb
@@ -1113,6 +1326,13 @@ Rails/TimeZone:
1113
1326
  - strict
1114
1327
  - flexible
1115
1328
 
1329
+ Rails/UniqBeforePluck:
1330
+ EnforcedMode: conservative
1331
+ SupportedModes:
1332
+ - conservative
1333
+ - aggressive
1334
+ AutoCorrect: false
1335
+
1116
1336
  Rails/Validation:
1117
1337
  Include:
1118
1338
  - app/models/**/*.rb