1
0
Fork 0
mirror of https://github.com/thoughtbot/shoulda-matchers.git synced 2022-11-09 12:01:38 -05:00
thoughtbot--shoulda-matchers/.rubocop.yml

255 lines
5.3 KiB
YAML
Raw Normal View History

require:
- rubocop-packaging
- rubocop-rails
2018-01-24 01:51:35 -05:00
AllCops:
NewCops: disable
2018-01-24 01:51:35 -05:00
TargetRubyVersion: 2.4
Exclude:
- 'gemfiles/*'
Bundler/OrderedGems:
Include:
- '**/Gemfile'
Layout/ArgumentAlignment:
EnforcedStyle: with_fixed_indentation
2019-05-30 02:28:00 -04:00
Layout/CommentIndentation:
Enabled: false
Layout/ConditionPosition:
Enabled: false
Layout/DotPosition:
EnforcedStyle: trailing
2019-05-30 02:28:00 -04:00
Layout/EmptyLineBetweenDefs:
AllowAdjacentOneLineDefs: true
Layout/HeredocIndentation:
2019-05-30 02:28:00 -04:00
Enabled: false
Layout/LineLength:
Exclude:
- spec/**/*
IgnoredPatterns:
- !ruby/regexp /\A +(it|describe|context|shared_examples|include_examples|it_behaves_like) ["']/
- !ruby/regexp /\A(require|require_relative) ["']/
- '^[ ]*#.+$'
- '^[ ]*''.+?'' => ''.+?'',?$'
- '^[ ]*".+?" => ".+?",?$'
Max: 80
2019-01-29 20:49:38 -05:00
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
Layout/ParameterAlignment:
EnforcedStyle: with_fixed_indentation
2019-05-30 02:28:00 -04:00
Layout/SpaceInLambdaLiteral:
EnforcedStyle: require_space
Layout/SpaceInsideBlockBraces:
Enabled: false
Lint/AmbiguousBlockAssociation:
Exclude:
- spec/**/*
Lint/AmbiguousOperator:
Enabled: false
Lint/AmbiguousRegexpLiteral:
Enabled: false
Lint/AssignmentInCondition:
Enabled: false
Lint/DeprecatedClassMethods:
Enabled: false
Lint/ElseLayout:
Enabled: false
2019-05-30 02:28:00 -04:00
Lint/FlipFlop:
Enabled: false
Lint/LiteralInInterpolation:
Enabled: false
Lint/Loop:
Enabled: false
Lint/MissingSuper:
Enabled: false
Lint/ParenthesesAsGroupedExpression:
Enabled: false
Lint/RequireParentheses:
Enabled: false
2019-07-06 22:25:27 -04:00
Lint/SafeNavigationChain:
Enabled: false
Lint/SuppressedException:
Enabled: false
Lint/UnderscorePrefixedVariableName:
Enabled: false
Lint/Void:
Enabled: false
2019-05-30 02:28:00 -04:00
Metrics/AbcSize:
Enabled: false
Metrics/BlockLength:
Enabled: false
Metrics/ClassLength:
Enabled: false
Metrics/CyclomaticComplexity:
Enabled: false
2019-01-29 20:49:38 -05:00
Metrics/MethodLength:
Max: 30
Metrics/ModuleLength:
Enabled: true
Exclude:
- spec/**/*
2019-05-30 02:28:00 -04:00
Metrics/ParameterLists:
CountKeywordArgs: false
Metrics/PerceivedComplexity:
Enabled: false
Naming/AccessorMethodName:
Enabled: false
Naming/AsciiIdentifiers:
Enabled: false
Naming/BinaryOperatorParameterName:
Enabled: false
Naming/FileName:
Enabled: false
Naming/HeredocDelimiterNaming:
Enabled: false
2019-03-17 18:22:43 -04:00
Naming/MemoizedInstanceVariableName:
EnforcedStyleForLeadingUnderscores: required
Naming/PredicateName:
Enabled: false
Naming/RescuedExceptionsVariableName:
Enabled: false
Rails/Date:
Enabled: false
Rails/Delegate:
Enabled: false
Rails/HttpPositionalArguments:
Enabled: false
Rails/SkipsModelValidations:
Exclude:
- spec/**/*
Rails/TimeZone:
Enabled: false
Style/Alias:
Enabled: false
Style/ArrayJoin:
Enabled: false
Style/AsciiComments:
Enabled: false
Style/Attr:
Enabled: false
Style/BlockDelimiters:
Enabled: false
Style/CaseEquality:
Enabled: false
Style/CharacterLiteral:
Enabled: false
Style/ClassAndModuleChildren:
Enabled: false
Style/ClassVars:
Enabled: false
Style/CollectionMethods:
Enabled: true
Rewrite tests for validate_uniqueness_of * The main problem I had with the old tests is that information that the reader didn't need to care about was not properly abstracted away. For instance, a helper method used by almost all tests will always create a model called Example, and will always use an attribute called "attr" (on which the validation is present). However, in some tests the class or attribute is referred to directly. The reader shouldn't have to care about either of these things, since they are constant -- the tests should be readable enough so that this information is not necessary to understand the case being tested against. * Speaking of this helper method, some of the tests used it and some didn't. Some defined their own helper methods to represent a particular case (`case_sensitive: true`, `allow_nil`, etc.). This is now fixed so that all but two tests use the same helper method to define a model. This model is completely customizable -- one can specify the type of the attribute being validated, the names and types of scoped attributes, etc. * The tests around scoped attributes and different types are all basically the same, so they are now compressed into a shared context. * Related to this, we no longer have to worry about setting a proper value for a scope attribute. One had to know which type that attribute had and come up with a reasonable default for that type. Now there is a helper method that worries about this automatically. * Finally, we remove tests around case_insensitive against an integer attribute (these don't make any sense, and don't work).
2015-02-08 14:10:23 -05:00
PreferredMethods:
collect: map
find: detect
Rewrite tests for validate_uniqueness_of * The main problem I had with the old tests is that information that the reader didn't need to care about was not properly abstracted away. For instance, a helper method used by almost all tests will always create a model called Example, and will always use an attribute called "attr" (on which the validation is present). However, in some tests the class or attribute is referred to directly. The reader shouldn't have to care about either of these things, since they are constant -- the tests should be readable enough so that this information is not necessary to understand the case being tested against. * Speaking of this helper method, some of the tests used it and some didn't. Some defined their own helper methods to represent a particular case (`case_sensitive: true`, `allow_nil`, etc.). This is now fixed so that all but two tests use the same helper method to define a model. This model is completely customizable -- one can specify the type of the attribute being validated, the names and types of scoped attributes, etc. * The tests around scoped attributes and different types are all basically the same, so they are now compressed into a shared context. * Related to this, we no longer have to worry about setting a proper value for a scope attribute. One had to know which type that attribute had and come up with a reasonable default for that type. Now there is a helper method that worries about this automatically. * Finally, we remove tests around case_insensitive against an integer attribute (these don't make any sense, and don't work).
2015-02-08 14:10:23 -05:00
find_all: select
reduce: inject
Style/ColonMethodCall:
Enabled: false
Style/CommentAnnotation:
Enabled: false
Style/Documentation:
Enabled: false
Style/DoubleNegation:
Enabled: false
Style/EachWithObject:
Enabled: false
2019-07-06 22:25:27 -04:00
Style/EmptyElse:
Enabled: false
Style/EmptyLiteral:
Enabled: false
Style/EmptyMethod:
EnforcedStyle: expanded
Style/Encoding:
Enabled: false
Style/EvenOdd:
Enabled: false
Style/FormatString:
Enabled: false
Style/FormatStringToken:
EnforcedStyle: template
Style/FrozenStringLiteralComment:
Enabled: false
Style/GlobalVars:
Enabled: false
Style/GuardClause:
Enabled: false
Style/IfUnlessModifier:
Enabled: false
Style/IfWithSemicolon:
Enabled: false
Style/InlineComment:
Enabled: false
Style/InverseMethods:
Enabled: false
Style/Lambda:
Enabled: false
Style/LambdaCall:
Enabled: false
Style/LineEndConcatenation:
Enabled: false
Style/MethodCalledOnDoEndBlock:
Enabled: false
Style/ModuleFunction:
Enabled: false
Style/NegatedIf:
Enabled: false
Style/NegatedWhile:
Enabled: false
Style/Next:
Enabled: false
Style/NilComparison:
Enabled: false
Style/Not:
Enabled: false
Style/NumericLiterals:
Enabled: false
Style/NumericPredicate:
Enabled: false
Style/OneLineConditional:
Enabled: false
Style/OptionalBooleanParameter:
Enabled: false
Style/ParenthesesAroundCondition:
Enabled: false
Style/PercentLiteralDelimiters:
Enabled: false
Style/PerlBackrefs:
Enabled: false
Style/PreferredHashMethods:
Enabled: false
Style/Proc:
Enabled: false
Style/RaiseArgs:
Enabled: false
Style/RegexpLiteral:
Enabled: false
Style/SelfAssignment:
Enabled: false
Style/SignalException:
Enabled: false
Style/SingleLineBlockParams:
Enabled: false
Style/SingleLineMethods:
Enabled: false
Style/SpecialGlobalVars:
Enabled: false
Style/StringLiterals:
EnforcedStyle: single_quotes
Style/SymbolArray:
Enabled: false
Style/TrailingCommaInArguments:
EnforcedStyleForMultiline: consistent_comma
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: consistent_comma
Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: consistent_comma
Style/TrivialAccessors:
Enabled: false
Style/VariableInterpolation:
Enabled: false
Style/WhenThen:
Enabled: false
Style/WhileUntilModifier:
Enabled: false
Style/WordArray:
Enabled: false