18F/identity-idp

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
# This configuration only includes the cops that differ from the Rubocop
# defaults, which can be found here:
# https://github.com/bbatsov/rubocop/blob/master/config/default.yml
# https://github.com/bbatsov/rubocop/blob/master/config/enabled.yml
# https://github.com/bbatsov/rubocop/blob/master/config/disabled.yml
require:
- rubocop-rails
- rubocop-rspec
- rubocop-performance
- rubocop-capybara
- ./lib/linters/i18n_helper_html_linter.rb
- ./lib/linters/analytics_event_name_linter.rb
- ./lib/linters/localized_validation_message_linter.rb
- ./lib/linters/image_size_linter.rb
- ./lib/linters/mail_later_linter.rb
- ./lib/linters/redirect_back_linter.rb
- ./lib/linters/url_options_linter.rb
- ./lib/linters/errors_add_linter.rb
 
AllCops:
Exclude:
- 'bin/**/*'
- 'db/primary_migrate/*'
- 'db/schema.rb'
- 'db/worker_jobs_migrate/*'
- 'db/worker_jobs_schema.rb'
- 'lib/tasks/create_test_accounts.rb'
- 'node_modules/**/*'
- 'tmp/**/*'
- 'vendor/**/*'
- 'public/**/*'
TargetRubyVersion: 3.4
TargetRailsVersion: 8.0
UseCache: true
DisabledByDefault: true
SuggestExtensions: false
 
Rails:
Enabled: true
 
Bundler/DuplicatedGem:
Enabled: true
 
Bundler/InsecureProtocolSource:
Enabled: true
 
Capybara/CurrentPathExpectation:
Enabled: true
 
Gemspec/DuplicatedAssignment:
Enabled: true
 
IdentityIdp/I18nHelperHtmlLinter:
Enabled: true
Include:
- app/views/**/*.erb
- app/components/**/*.erb
- app/controllers/**/*.rb
 
IdentityIdp/AnalyticsEventNameLinter:
Enabled: true
Include:
- app/services/analytics_events.rb
 
IdentityIdp/LocalizedValidationMessageLinter:
Enabled: true
 
IdentityIdp/MailLaterLinter:
Enabled: true
 
IdentityIdp/UrlOptionsLinter:
Enabled: true
Exclude:
- 'spec/**/*.rb'
 
IdentityIdp/ErrorsAddLinter:
Enabled: true
Exclude:
- 'spec/**/*.rb'
 
IdentityIdp/ImageSizeLinter:
Enabled: true
Exclude:
- app/components/barcode_component.html.erb
- app/views/partials/multi_factor_authentication/_mfa_selection.html.erb
- app/views/shared/_nav_branded.html.erb
- app/views/sign_up/completions/show.html.erb
- app/views/users/two_factor_authentication_setup/index.html.erb
 
IdentityIdp/RedirectBackLinter:
Enabled: true
 
Layout/AccessModifierIndentation:
Enabled: true
EnforcedStyle: indent
IndentationWidth: null
Layout/ArgumentAlignment:
Enabled: true
 
Layout/ArrayAlignment:
Enabled: true
 
Layout/BeginEndAlignment:
Enabled: true
 
Layout/BlockAlignment:
Enabled: true
EnforcedStyleAlignWith: either
 
Layout/BlockEndNewline:
Enabled: true
 
Layout/ClosingHeredocIndentation:
Enabled: true
 
Layout/ClosingParenthesisIndentation:
Enabled: true
 
Layout/CommentIndentation:
Enabled: true
 
Layout/ConditionPosition:
Enabled: true
 
Layout/DefEndAlignment:
Enabled: true
EnforcedStyleAlignWith: start_of_line
AutoCorrect: true
Severity: warning
 
Layout/DotPosition:
Description: Checks the position of the dot in multi-line method calls.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains
EnforcedStyle: leading
SupportedStyles:
- leading
- trailing
 
Layout/EmptyComment:
Enabled: true
AllowBorderComment: true
AllowMarginComment: true
 
Layout/EmptyLineAfterMagicComment:
Enabled: true
 
Layout/EmptyLineBetweenDefs:
Enabled: true
AllowAdjacentOneLineDefs: false
NumberOfEmptyLines: 1
 
Layout/EmptyLines:
Enabled: true
 
Layout/EmptyLinesAroundAccessModifier:
Enabled: true
 
Layout/EmptyLinesAroundArguments:
Enabled: true
 
Layout/EmptyLinesAroundBeginBody:
Enabled: true
 
Layout/EmptyLinesAroundBlockBody:
Enabled: true
EnforcedStyle: no_empty_lines
 
Layout/EmptyLinesAroundClassBody:
Enabled: true
EnforcedStyle: no_empty_lines
 
Layout/EmptyLinesAroundExceptionHandlingKeywords:
Enabled: true
 
Layout/EmptyLinesAroundMethodBody:
Enabled: true
 
Layout/EmptyLinesAroundModuleBody:
Enabled: true
EnforcedStyle: no_empty_lines
 
Layout/EndOfLine:
Enabled: true
EnforcedStyle: native
 
Layout/ExtraSpacing:
AllowForAlignment: true
ForceEqualSignAlignment: false
 
Layout/FirstArgumentIndentation:
Enabled: true
EnforcedStyle: consistent
IndentationWidth: null
Layout/FirstArrayElementIndentation:
EnforcedStyle: special_inside_parentheses
SupportedStyles:
- special_inside_parentheses
- consistent
- align_brackets
IndentationWidth: null
Layout/FirstHashElementIndentation:
Enabled: true
EnforcedStyle: consistent
IndentationWidth: null
Layout/FirstMethodArgumentLineBreak:
Enabled: true
 
Layout/HashAlignment:
Enabled: true
 
Layout/HeredocIndentation:
Enabled: true
 
Layout/IndentationConsistency:
Enabled: true
EnforcedStyle: normal
 
Layout/IndentationStyle:
Enabled: true
 
Layout/IndentationWidth:
Enabled: true
 
Layout/InitialIndentation:
Enabled: true
 
Layout/LeadingCommentSpace:
Enabled: true
 
Layout/LeadingEmptyLines:
Enabled: true
 
Layout/LineLength:
Description: Limit lines to 100 characters.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#80-character-limits
Enabled: true
Max: 100
AllowURI: true
URISchemes:
- http
- https
Exclude:
- config/routes.rb
 
Layout/MultilineArrayBraceLayout:
Enabled: true
EnforcedStyle: symmetrical
 
Layout/MultilineBlockLayout:
Enabled: true
 
Layout/MultilineHashBraceLayout:
Enabled: true
EnforcedStyle: symmetrical
 
Layout/MultilineHashKeyLineBreaks:
Enabled: true
 
Layout/MultilineMethodCallBraceLayout:
Enabled: true
 
Layout/MultilineMethodCallIndentation:
Enabled: true
EnforcedStyle: indented
 
Layout/MultilineMethodDefinitionBraceLayout:
Enabled: true
EnforcedStyle: symmetrical
 
Layout/MultilineOperationIndentation:
EnforcedStyle: aligned
SupportedStyles:
- aligned
- indented
IndentationWidth: null
 
Layout/ParameterAlignment:
Description: Align the parameters of a method call if they span more than one line.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-double-indent
EnforcedStyle: with_first_parameter
SupportedStyles:
- with_first_parameter
- with_fixed_indentation
IndentationWidth: null
 
Layout/RescueEnsureAlignment:
Enabled: true
 
Layout/SpaceAfterColon:
Enabled: true
 
Layout/SpaceAfterComma:
Enabled: true
 
Layout/SpaceAfterMethodName:
Enabled: true
 
Layout/SpaceAfterNot:
Enabled: true
 
Layout/SpaceAfterSemicolon:
Enabled: true
 
Layout/SpaceAroundBlockParameters:
Enabled: true
EnforcedStyleInsidePipes: no_space
 
Layout/SpaceAroundEqualsInParameterDefault:
Enabled: true
EnforcedStyle: space
 
Layout/SpaceAroundKeyword:
Enabled: true
 
Layout/SpaceAroundMethodCallOperator:
Enabled: true
 
Layout/SpaceAroundOperators:
Enabled: true
EnforcedStyleForExponentOperator: space
AllowForAlignment: false
 
Layout/SpaceBeforeBlockBraces:
Enabled: true
EnforcedStyle: space
EnforcedStyleForEmptyBraces: space
 
Layout/SpaceBeforeComma:
Enabled: true
 
Layout/SpaceBeforeComment:
Enabled: true
 
Layout/SpaceBeforeFirstArg:
Enabled: true
AllowForAlignment: true
 
Layout/SpaceBeforeSemicolon:
Enabled: true
 
Layout/SpaceInLambdaLiteral:
Enabled: true
EnforcedStyle: require_no_space
 
Layout/SpaceInsideArrayLiteralBrackets:
Enabled: true
 
Layout/SpaceInsideBlockBraces:
Enabled: true
 
Layout/SpaceInsideHashLiteralBraces:
Enabled: true
 
Layout/SpaceInsideParens:
Enabled: true
 
Layout/TrailingEmptyLines:
Enabled: true
EnforcedStyle: final_newline
 
Layout/TrailingWhitespace:
Enabled: true
AllowInHeredoc: true
 
Lint/AmbiguousAssignment:
Enabled: true
 
Lint/AmbiguousOperator:
Enabled: true
 
Lint/AmbiguousRegexpLiteral:
Enabled: true
 
Lint/AssignmentInCondition:
Enabled: true
AllowSafeAssignment: true
 
Layout/AssignmentIndentation:
Enabled: true
IndentationWidth: 2
 
Lint/BigDecimalNew:
Enabled: true
 
Lint/BinaryOperatorWithIdenticalOperands:
Enabled: true
 
Lint/BooleanSymbol:
Enabled: true
 
Lint/CircularArgumentReference:
Enabled: true
 
Lint/ConstantReassignment:
Enabled: true
 
Lint/Debugger:
Enabled: true
 
Lint/DeprecatedClassMethods:
Enabled: true
 
Lint/DeprecatedConstants:
Enabled: true
 
Lint/DeprecatedOpenSSLConstant:
Enabled: true
 
Lint/DuplicateCaseCondition:
Enabled: true
 
Lint/DuplicateElsifCondition:
Enabled: true
 
Lint/DuplicateHashKey:
Enabled: true
 
Lint/DuplicateMethods:
Enabled: true
 
Lint/DuplicateRegexpCharacterClassElement:
Enabled: true
 
Lint/DuplicateRequire:
Enabled: true
 
Lint/DuplicateRescueException:
Enabled: true
 
Lint/EachWithObjectArgument:
Enabled: true
 
Lint/ElseLayout:
Enabled: true
 
Lint/EmptyEnsure:
Enabled: true
AutoCorrect: true
 
Lint/EmptyExpression:
Enabled: true
 
Lint/EmptyInPattern:
Enabled: true
 
Lint/EmptyInterpolation:
Enabled: true
 
Lint/EmptyWhen:
Enabled: true
AllowComments: true
 
Lint/EnsureReturn:
Enabled: true
 
Lint/ErbNewArguments:
Enabled: true
 
Lint/FlipFlop:
Enabled: true
 
Lint/FloatComparison:
Enabled: true
 
Lint/FloatOutOfRange:
Enabled: true
 
Lint/FormatParameterMismatch:
Enabled: true
 
Lint/IdentityComparison:
Enabled: true
 
Lint/ImplicitStringConcatenation:
Enabled: true
 
Lint/IneffectiveAccessModifier:
Enabled: true
 
Lint/InheritException:
Enabled: true
EnforcedStyle: runtime_error
 
Lint/InterpolationCheck:
Enabled: true
 
Lint/LiteralAsCondition:
Enabled: true
 
Lint/LiteralInInterpolation:
Enabled: true
 
Lint/Loop:
Enabled: true
 
Lint/MissingCopEnableDirective:
Enabled: true
MaximumRangeSize: .inf
 
Lint/MixedRegexpCaptureTypes:
Enabled: true
 
Lint/MultipleComparison:
Enabled: true
 
Lint/NestedMethodDefinition:
Enabled: true
 
Lint/NestedPercentLiteral:
Enabled: true
 
Lint/NextWithoutAccumulator:
Enabled: true
 
Lint/NonDeterministicRequireOrder:
Enabled: true
 
Lint/NonLocalExitFromIterator:
Enabled: true
 
Lint/NumberedParameterAssignment:
Enabled: true
 
Lint/OrAssignmentToConstant:
Enabled: true
 
Lint/OrderedMagicComments:
Enabled: true
 
Lint/OutOfRangeRegexpRef:
Enabled: true
 
Lint/ParenthesesAsGroupedExpression:
Enabled: true
 
Lint/PercentSymbolArray:
Enabled: true
 
Lint/RaiseException:
Enabled: true
 
Lint/RandOne:
Enabled: true
 
Lint/RedundantCopDisableDirective:
Enabled: true
 
Lint/RedundantCopEnableDirective:
Enabled: true
 
Lint/RedundantRequireStatement:
Enabled: true
 
Lint/RedundantSplatExpansion:
Enabled: true
 
Lint/RedundantStringCoercion:
Enabled: true
 
Lint/RedundantWithIndex:
Enabled: true
 
Lint/RedundantWithObject:
Enabled: true
 
Lint/RegexpAsCondition:
Enabled: true
 
Lint/RequireRelativeSelfPath:
Enabled: true
 
Lint/RequireParentheses:
Enabled: true
 
Lint/RescueException:
Enabled: true
 
Lint/RescueType:
Enabled: true
 
Lint/ReturnInVoidContext:
Enabled: true
 
Lint/SafeNavigationChain:
Enabled: true
AllowedMethods:
- present?
- blank?
- presence
- try
- try!
 
Lint/SafeNavigationConsistency:
Enabled: true
AllowedMethods:
- present?
- blank?
- presence
- try
- try!
 
Lint/SafeNavigationWithEmpty:
Enabled: true
 
Lint/SelfAssignment:
Enabled: true
 
Lint/ShadowedArgument:
Enabled: true
IgnoreImplicitReferences: false
 
Lint/SymbolConversion:
Enabled: true
 
Lint/Syntax:
Enabled: true
 
Lint/TopLevelReturnWithArgument:
Enabled: true
 
Lint/TrailingCommaInAttributeDeclaration:
Enabled: true
 
Lint/UnderscorePrefixedVariableName:
Enabled: true
 
Lint/UnifiedInteger:
Enabled: true
 
Lint/UnreachableCode:
Enabled: true
 
Lint/UnusedMethodArgument:
Enabled: true
AllowUnusedKeywordArguments: false
 
Lint/UnusedBlockArgument:
Enabled: true
AllowUnusedKeywordArguments: true
 
Lint/UriEscapeUnescape:
Enabled: true
 
Lint/UriRegexp:
Enabled: true
 
Lint/UselessAssignment:
Enabled: true
 
Lint/UselessSetterCall:
Enabled: true
 
Lint/UselessTimes:
Enabled: true
 
Lint/Void:
Enabled: true
CheckForMethodsWithNoSideEffects: false
 
Metrics/BlockLength:
CountComments: false
Enabled: true
Max: 25
AllowedMethods:
- Struct.new
- RedactedStruct.new
Exclude:
- Rakefile
- '**/*.rake'
- config/environments/*.rb
- config/routes.rb
- spec/**/*.rb
- scripts/**/*
 
Metrics/ParameterLists:
CountKeywordArgs: false
 
Migration/DepartmentName:
Enabled: true
 
Naming/BinaryOperatorParameterName:
Enabled: true
 
Naming/BlockParameterName:
Enabled: true
MinNameLength: 1
AllowNamesEndingInNumbers: true
AllowedNames: []
ForbiddenNames: []
 
Naming/ClassAndModuleCamelCase:
Enabled: true
 
Naming/ConstantName:
Enabled: true
 
Naming/HeredocDelimiterCase:
Enabled: true
EnforcedStyle: uppercase
 
Naming/MemoizedInstanceVariableName:
Enabled: true
EnforcedStyleForLeadingUnderscores: disallowed
 
Naming/MethodParameterName:
MinNameLength: 2
 
Naming/PredicateName:
Enabled: true
AllowedMethods:
- is_a?
ForbiddenPrefixes:
# overriding to allow "has_"
- is_
- have_
 
Naming/VariableName:
Exclude:
- spec/services/pii/nist_encryption_spec.rb
 
Performance/BigDecimalWithNumericArgument:
Enabled: true
 
Performance/BindCall:
Enabled: true
 
Performance/BlockGivenWithExplicitBlock:
Enabled: true
 
Performance/Caller:
Enabled: true
 
Performance/CollectionLiteralInLoop:
Enabled: false
 
Performance/CompareWithBlock:
Enabled: true
 
Performance/ConstantRegexp:
Enabled: true
 
Performance/Count:
Enabled: true
 
Performance/DeletePrefix:
Enabled: true
 
Performance/DeleteSuffix:
Enabled: true
 
Performance/Detect:
Enabled: true
 
Performance/DoubleStartEndWith:
Enabled: true
IncludeActiveSupportAliases: false
 
Performance/EndWith:
Enabled: true
 
Performance/FixedSize:
Enabled: true
 
Performance/FlatMap:
Enabled: true
EnabledForFlattenWithoutParams: false
 
Performance/InefficientHashSearch:
Enabled: true
Safe: false
 
Performance/RangeInclude:
Enabled: true
Safe: false
 
Performance/RedundantMatch:
Enabled: true
 
Performance/RedundantMerge:
Enabled: true
MaxKeyValuePairs: 2
 
Performance/RedundantSortBlock:
Enabled: true
 
Performance/RedundantSplitRegexpArgument:
Enabled: true
 
Performance/RedundantStringChars:
Enabled: true
 
Performance/RegexpMatch:
Enabled: true
 
Performance/ReverseEach:
Enabled: true
 
Performance/ReverseFirst:
Enabled: true
 
Performance/Size:
Enabled: true
 
Performance/SortReverse:
Enabled: true
 
Performance/Squeeze:
Enabled: true
 
Performance/StartWith:
Enabled: true
 
Performance/StringBytesize:
Enabled: true
 
Performance/StringIdentifierArgument:
Enabled: true
 
Performance/StringInclude:
Enabled: true
 
Performance/StringReplacement:
Enabled: true
 
Performance/UnfreezeString:
Enabled: true
 
Performance/UriDefaultParser:
Enabled: true
 
Rails/ActionControllerFlashBeforeRender:
Enabled: true
 
Rails/ActionControllerTestCase:
Enabled: true
 
Rails/ActionOrder:
Enabled: false
 
Rails/ActiveRecordCallbacksOrder:
Enabled: true
 
Rails/ActiveSupportOnLoad:
Enabled: true
 
Rails/AddColumnIndex:
Enabled: true
 
Rails/AfterCommitOverride:
Enabled: true
 
Rails/AttributeDefaultBlockValue:
Enabled: true
 
Rails/ApplicationMailer:
Enabled: false
 
Rails/Blank:
Enabled: false
 
Rails/CompactBlank:
Enabled: false
 
Rails/DangerousColumnNames:
Enabled: true
 
Rails/Delegate:
Enabled: false
 
Rails/DeprecatedActiveModelErrorsMethods:
Enabled: false
 
Rails/DotSeparatedKeys:
Enabled: false
 
Rails/DuplicateAssociation:
Enabled: true
 
Rails/DurationArithmetic:
Enabled: false
 
Rails/DuplicateScope:
Enabled: false
 
Rails/DynamicFindBy:
Exclude:
- spec/features/**/*.rb
 
Rails/EagerEvaluationLogMessage:
Enabled: true
 
Rails/EnumSyntax:
Enabled: true
 
Rails/EnvLocal:
Enabled: true
 
# Disabling this can cause confusing errors and disabling it should be avoided
Rails/Exit:
Enabled: true
 
Rails/ExpandedDateRange:
Enabled: true
 
Rails/FilePath:
Enabled: false
 
Rails/FindById:
Enabled: true
 
Rails/FreezeTime:
Enabled: true
 
Rails/HttpPositionalArguments:
Description: Use keyword arguments instead of positional arguments in http method calls.
Enabled: true
Include:
- spec/**/*
- test/**/*
 
Rails/I18nLazyLookup:
Enabled: false
 
Rails/I18nLocaleAssignment:
Enabled: false
 
Rails/I18nLocaleTexts:
Enabled: false
 
Rails/IgnoredColumnsAssignment:
Enabled: false
 
Rails/Inquiry:
Enabled: true
 
Rails/MailerName:
Enabled: true
 
Rails/MatchRoute:
Enabled: true
 
Rails/MigrationClassName:
Enabled: true
 
Rails/NegateInclude:
Enabled: false
 
Rails/Output:
Enabled: true
Include:
- app/**/*.rb
- config/**/*.rb
- db/**/*.rb
- lib/**/*.rb
- spec/**/*.rb # in addition to default
 
Rails/Pluck:
Enabled: false
 
Rails/PluckInWhere:
Enabled: true
 
Rails/Present:
Enabled: false
 
Rails/RedundantActiveRecordAllMethod:
Enabled: true
 
Rails/RedundantPresenceValidationOnBelongsTo:
Enabled: false
 
Rails/RedundantTravelBack:
Enabled: true
 
Rails/RelativeDateConstant:
Enabled: false
 
Rails/RenderInline:
Enabled: true
 
Rails/RenderPlainText:
Enabled: true
 
Rails/ResponseParsedBody:
Enabled: false
 
Rails/RootJoinChain:
Enabled: true
 
Rails/RootPathnameMethods:
Enabled: false
 
Rails/RootPublicPath:
Enabled: true
 
Rails/SelectMap:
Enabled: true
 
Rails/ShortI18n:
Enabled: true
 
Rails/SkipsModelValidations:
Enabled: true
Exclude:
- 'spec/**/*.rb'
 
Rails/StripHeredoc:
Enabled: false
 
Rails/SquishedSQLHeredocs:
Enabled: false
 
Rails/ThreeStateBooleanColumn:
Enabled: true
 
Rails/TimeZone:
Description: Checks the correct usage of time zone aware methods.
StyleGuide: https://github.com/bbatsov/rails-style-guide#time
Enabled: true
EnforcedStyle: strict
SupportedStyles:
- strict
- flexible
 
Rails/TimeZoneAssignment:
Enabled: true
 
Rails/ToFormattedS:
Enabled: false
 
Rails/ToSWithArgument:
Enabled: false
 
Rails/TopLevelHashWithIndifferentAccess:
Enabled: true
 
Rails/TransactionExitStatement:
Enabled: true
 
Rails/UnusedIgnoredColumns:
Enabled: true
 
Rails/UnusedRenderContent:
Enabled: true
 
Rails/WhereEquals:
Enabled: true
 
Rails/WhereExists:
Enabled: true
 
Rails/WhereMissing:
Enabled: true
 
Rails/WhereNot:
Enabled: false
 
Rails/WhereNotWithMultipleConditions:
Enabled: true
 
Rails/WhereRange:
Enabled: false
 
RSpec/LeakyConstantDeclaration:
Enabled: true
 
RSpec/MissingExpectationTargetMethod:
Enabled: true
 
RSpec/RedundantPredicateMatcher:
Enabled: true
 
Security/Eval:
Enabled: true
 
Security/JSONLoad:
Enabled: true
AutoCorrect: false
SafeAutoCorrect: false
 
Security/Open:
Enabled: true
Safe: false
 
Security/YAMLLoad:
Enabled: true
SafeAutoCorrect: false
 
Style/Alias:
Enabled: true
EnforcedStyle: prefer_alias_method
 
Style/AndOr:
Description: Use &&/|| instead of and/or.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-and-or-or
EnforcedStyle: conditionals
SupportedStyles:
- always
- conditionals
 
Style/ArgumentsForwarding:
UseAnonymousForwarding: false
Enabled: true
 
Style/ArrayJoin:
Enabled: true
 
Style/Attr:
Enabled: true
 
Style/BarePercentLiterals:
Enabled: true
EnforcedStyle: bare_percent
 
Style/BeginBlock:
Enabled: true
 
Style/BlockComments:
Enabled: true
 
Style/BlockDelimiters:
Enabled: true
EnforcedStyle: line_count_based
 
Style/CharacterLiteral:
Enabled: true
 
Style/ClassCheck:
Enabled: true
EnforcedStyle: is_a?
 
Style/ClassEqualityComparison:
Enabled: true
 
Style/ClassMethods:
Enabled: true
 
Style/CollectionMethods:
Enabled: true
 
Style/ColonMethodCall:
Enabled: true
 
Style/ColonMethodDefinition:
Enabled: true
 
Style/CommandLiteral:
Enabled: true
EnforcedStyle: mixed
AllowInnerBackticks: false
 
Style/CommentedKeyword:
Enabled: true
 
Style/DefWithParentheses:
Enabled: true
 
Style/Dir:
Enabled: true
 
Style/DirEmpty:
Enabled: true
 
Style/EachForSimpleLoop:
Enabled: true
 
Style/EachWithObject:
Enabled: true
 
Style/EmptyBlockParameter:
Enabled: true
 
Style/EmptyCaseCondition:
Enabled: true
 
Style/EmptyElse:
EnforcedStyle: both
SupportedStyles:
- empty
- nil
- both
 
Style/EmptyLambdaParameter:
Enabled: true
 
Style/Encoding:
Enabled: true
 
Style/EndBlock:
Enabled: true
AutoCorrect: true
 
Style/EvalWithLocation:
Enabled: true
 
Style/ExactRegexpMatch:
Enabled: true
 
Style/For:
Enabled: true
EnforcedStyle: each
 
Style/FrozenStringLiteralComment:
Enabled: true
Exclude:
- 'spec/**/*.rb'
- '.irbrc'
- '.rubocop.yml'
- 'Brewfile'
- 'Gemfile'
- 'Rakefile'
 
Style/GlobalVars:
Enabled: true
AllowedVariables: []
 
Style/HashConversion:
Enabled: true
 
Style/HashExcept:
Enabled: true
 
Style/HashSyntax:
EnforcedStyle: ruby19
EnforcedShorthandSyntax: either
 
Style/IdenticalConditionalBranches:
Enabled: true
 
Style/IfInsideElse:
Enabled: true
 
Style/IfUnlessModifier:
Description: Favor modifier if/unless usage when you have a single-line body.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
Enabled: false
 
Style/IfUnlessModifierOfIfUnless:
Enabled: true
 
Style/IfWithSemicolon:
Enabled: true
 
Style/InfiniteLoop:
Enabled: true
 
Style/InPatternThen:
Enabled: true
 
Style/KeywordParametersOrder:
Enabled: true
 
Style/LambdaCall:
Enabled: true
EnforcedStyle: call
 
Style/LineEndConcatenation:
Enabled: true
SafeAutoCorrect: false
 
Style/MethodCallWithoutArgsParentheses:
Enabled: true
AllowedMethods: []
 
Style/MethodDefParentheses:
Enabled: true
 
Style/MissingRespondToMissing:
Enabled: true
 
Style/MixinGrouping:
Enabled: true
EnforcedStyle: separated
 
Style/MixinUsage:
Enabled: true
 
Style/MultilineIfModifier:
Enabled: true
 
Style/MultilineIfThen:
Enabled: true
 
Style/MultilineInPatternThen:
Enabled: true
 
Style/MultilineMemoization:
Enabled: true
EnforcedStyle: keyword
 
Style/MultilineWhenThen:
Enabled: true
 
Style/MutableConstant:
Enabled: true
EnforcedStyle: strict
 
Style/NegatedWhile:
Enabled: true
 
Style/NestedModifier:
Enabled: true
 
Style/NestedTernaryOperator:
Enabled: true
 
Style/NilComparison:
Enabled: true
EnforcedStyle: predicate
 
Style/NilLambda:
Enabled: true
 
Style/NonNilCheck:
Enabled: true
IncludeSemanticChanges: false
 
Style/Not:
Enabled: true
 
Style/NumericLiteralPrefix:
Enabled: true
EnforcedOctalStyle: zero_with_o
 
Style/OneLineConditional:
Enabled: true
 
Style/OpenStructUse:
Enabled: true
 
Style/OptionalArguments:
Enabled: true
 
Style/OrAssignment:
Enabled: true
 
Style/PercentLiteralDelimiters:
PreferredDelimiters:
default: '()'
'%i': '[]'
'%I': '[]'
'%r': '{}'
'%w': '[]'
'%W': '[]'
 
Style/Proc:
Enabled: true
 
Style/RandomWithOffset:
Enabled: true
 
Style/RedundantAssignment:
Enabled: true
 
Style/RedundantCondition:
Enabled: true
 
Style/RedundantConditional:
Enabled: true
 
Style/RedundantException:
Enabled: true
 
Style/RedundantFetchBlock:
Enabled: true
 
Style/RedundantFileExtensionInRequire:
Enabled: true
 
Style/RedundantFreeze:
Enabled: true
 
Style/RedundantInterpolation:
Enabled: true
 
Style/RedundantHeredocDelimiterQuotes:
Enabled: true
 
Style/RedundantLineContinuation:
Enabled: true
 
Style/RedundantArrayConstructor:
Enabled: true
 
Style/RedundantFilterChain:
Enabled: true
 
Style/RedundantRegexpConstructor:
Enabled: true
 
Style/RedundantParentheses:
Enabled: true
 
Style/RedundantPercentQ:
Enabled: true
 
Style/RedundantRegexpCharacterClass:
Enabled: true
 
Style/RedundantRegexpEscape:
Enabled: true
 
Style/RedundantSort:
Enabled: true
 
Style/RedundantSortBy:
Enabled: true
 
Style/RescueModifier:
Enabled: true
 
Style/SafeNavigation:
Enabled: true
ConvertCodeThatCanStartToReturnNil: false
AllowedMethods:
- present?
- blank?
- presence
- try
- try!
 
Style/Sample:
Enabled: true
 
Style/SelfAssignment:
Enabled: true
 
Style/Semicolon:
Enabled: true
AllowAsExpressionSeparator: false
 
Style/StabbyLambdaParentheses:
Enabled: true
EnforcedStyle: require_parentheses
 
Style/StderrPuts:
Enabled: true
 
Style/StringChars:
Enabled: true
 
Style/StringLiterals:
Description: Checks if uses of quotes match the configured preference.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
EnforcedStyle: single_quotes
SupportedStyles:
- single_quotes
- double_quotes
ConsistentQuotesInMultiline: true
 
Style/Strip:
Enabled: true
 
Style/SymbolLiteral:
Enabled: true
 
Style/TrailingBodyOnClass:
Enabled: true
 
Style/TrailingBodyOnMethodDefinition:
Enabled: true
 
Style/TrailingBodyOnModule:
Enabled: true
 
Style/TrailingCommaInArguments:
EnforcedStyleForMultiline: comma
SupportedStylesForMultiline:
- comma
- consistent_comma
- no_comma
 
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: comma
SupportedStylesForMultiline:
- comma
- consistent_comma
- no_comma
 
Style/TrailingCommaInBlockArgs:
Enabled: true
 
Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: comma
SupportedStylesForMultiline:
- comma
- consistent_comma
- no_comma
 
Style/TrailingMethodEndStatement:
Enabled: true
 
Style/UnlessElse:
Enabled: true
 
Style/UnpackFirst:
Enabled: true
 
Style/VariableInterpolation:
Enabled: true
 
Style/WhenThen:
Enabled: true
 
Style/WhileUntilDo:
Enabled: true
 
Style/YodaCondition:
Enabled: true
EnforcedStyle: forbid_for_all_comparison_operators