pJeyakumar / noticed_upgrade_project

2 stars 0 forks source link

Implement Ahoy and Ahoy Email Tracking with RuboCop Integration #12

Closed jonathanloos closed 4 months ago

jonathanloos commented 5 months ago

We should use ahoy for event tracking. Specifically:

  1. ahoy for events and visits
  2. ahoy_email for email tracking and click tracking in emails.
  3. RuboCop Integration
pJeyakumar commented 5 months ago

This issue will be resolved when Hugo implements ahoy_email while working on #14

jonathanloos commented 4 months ago

Hey @hvillero !

Here's some inspo for the Rubocop config. You should know we would lean on standard, rubocop-rails, rubocop-performance and rubocop-rspec as well as some others (see require) section of rubocop.yml.

And here's an example config if you want to use it!

inherit_from: .rubocop_todo.yml

######################################################################################################################
#######################                          CONFIG                                   ############################
######################################################################################################################

require:
  - rubocop-performance
  - standard
  - rubocop-rails
  - rubocop-rspec
  - rubocop-rspec_rails
  - rubocop-factory_bot
  - standard/cop/block_single_line_braces

AllCops:
  # Prevent RuboCop from exploding when it finds an older-than-3.0 .ruby-version
  TargetRubyVersion: 3.0
  NewCops: enable

Rails:
  Enabled: true # enable rubocop-rails cops
RSpec:
  Enabled: true # enable rubocop-rspec cops
Standard:
  Enabled: true

######################################################################################################################
#######################                          COPS                                     ############################
######################################################################################################################
Bundler/DuplicatedGem:
  Enabled: true

Bundler/GemComment:
  Enabled: true

Bundler/GemFilename:
  Enabled: true

Bundler/GemVersion:
  Enabled: true

Bundler/InsecureProtocolSource:
  Enabled: true

Bundler/OrderedGems:
  Enabled: true

Gemspec/DeprecatedAttributeAssignment:
  Enabled: true

Gemspec/DuplicatedAssignment:
  Enabled: true

Gemspec/OrderedDependencies:
  Enabled: true

Gemspec/RequiredRubyVersion:
  Enabled: true

Gemspec/RubyVersionGlobalsUsage:
  Enabled: true

Gemspec/RequireMFA:
  Enabled: true

Layout/AccessModifierIndentation:
  Enabled: true
  EnforcedStyle: indent
  IndentationWidth: ~

Layout/ArgumentAlignment:
  Enabled: true
  EnforcedStyle: with_fixed_indentation

Layout/ArrayAlignment:
  Enabled: true
  EnforcedStyle: with_fixed_indentation

Layout/AssignmentIndentation:
  Enabled: true
  IndentationWidth: ~

Layout/BeginEndAlignment:
  Enabled: true
  EnforcedStyleAlignWith: start_of_line
  AutoCorrect: true
  Severity: warning

Layout/BlockAlignment:
  Enabled: true
  EnforcedStyleAlignWith: either

Layout/BlockEndNewline:
  Enabled: true

Layout/CaseIndentation:
  Enabled: true

Layout/ClassStructure:
  Enabled: false

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:
  Enabled: true
  EnforcedStyle: leading

Layout/ElseAlignment:
  Enabled: true

Layout/EmptyComment:
  Enabled: true
  AllowBorderComment: true
  AllowMarginComment: true

Layout/EmptyLineAfterGuardClause:
  Enabled: true

Layout/EmptyLineAfterMagicComment:
  Enabled: true

Layout/EmptyLineAfterMultilineCondition:
  Enabled: true

Layout/EmptyLineBetweenDefs:
  Enabled: true
  AllowAdjacentOneLineDefs: false
  NumberOfEmptyLines: 1

Layout/EmptyLines:
  Enabled: true

Layout/EmptyLinesAroundAccessModifier:
  Enabled: true

Layout/EmptyLinesAroundArguments:
  Enabled: true

Layout/EmptyLinesAroundAttributeAccessor:
  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/EndAlignment:
  Enabled: true
  AutoCorrect: true
  EnforcedStyleAlignWith: variable
  Severity: warning

Layout/EndOfLine:
  Enabled: true
  EnforcedStyle: native

Layout/ExtraSpacing:
  Enabled: true
  AllowForAlignment: false
  AllowBeforeTrailingComments: false
  ForceEqualSignAlignment: false

Layout/FirstArgumentIndentation:
  Enabled: true
  EnforcedStyle: consistent
  IndentationWidth: ~

Layout/FirstArrayElementIndentation:
  Enabled: true
  EnforcedStyle: consistent
  IndentationWidth: ~

Layout/FirstArrayElementLineBreak:
  Enabled: true

Layout/FirstHashElementIndentation:
  Enabled: true
  EnforcedStyle: consistent
  IndentationWidth: ~

Layout/FirstHashElementLineBreak:
  Enabled: false

Layout/FirstMethodArgumentLineBreak:
  Enabled: true

Layout/FirstMethodParameterLineBreak:
  Enabled: true

Layout/FirstParameterIndentation:
  Enabled: true

Layout/HashAlignment:
  Enabled: true
  EnforcedHashRocketStyle: key
  EnforcedColonStyle: key
  EnforcedLastArgumentHashStyle: always_inspect

Layout/HeredocArgumentClosingParenthesis:
  Enabled: true

Layout/HeredocIndentation:
  Enabled: true

Layout/IndentationConsistency:
  Enabled: true
  EnforcedStyle: normal

Layout/IndentationStyle:
  Enabled: true
  IndentationWidth: ~

Layout/IndentationWidth:
  Enabled: true
  Width: 2

Layout/InitialIndentation:
  Enabled: true

Layout/LeadingCommentSpace:
  Enabled: true

Layout/LeadingEmptyLines:
  Enabled: true

Layout/LineEndStringConcatenationIndentation:
  Enabled: false

Layout/LineLength:
  Enabled: false

Layout/MultilineArrayBraceLayout:
  Enabled: true
  EnforcedStyle: symmetrical

Layout/MultilineArrayLineBreaks:
  Enabled: true

Layout/MultilineAssignmentLayout:
  Enabled: true
  EnforcedStyle: same_line

Layout/MultilineBlockLayout:
  Enabled: true

Layout/MultilineHashBraceLayout:
  Enabled: true
  EnforcedStyle: symmetrical

Layout/MultilineHashKeyLineBreaks:
  Enabled: false

Layout/MultilineMethodArgumentLineBreaks:
  Enabled: true

Layout/MultilineMethodCallBraceLayout:
  Enabled: true
  EnforcedStyle: symmetrical

Layout/MultilineMethodCallIndentation:
  Enabled: true
  EnforcedStyle: indented
  IndentationWidth: ~

Layout/MultilineMethodDefinitionBraceLayout:
  Enabled: true
  EnforcedStyle: symmetrical

Layout/MultilineOperationIndentation:
  Enabled: true
  EnforcedStyle: indented
  IndentationWidth: ~

Layout/ParameterAlignment:
  Enabled: true
  EnforcedStyle: with_fixed_indentation
  IndentationWidth: ~

Layout/RedundantLineBreak:
  Enabled: false

Layout/RescueEnsureAlignment:
  Enabled: true

Layout/SingleLineBlockChain:
  Enabled: false

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
  AllowForAlignment: true

Layout/SpaceBeforeBlockBraces:
  Enabled: true
  EnforcedStyle: space
  EnforcedStyleForEmptyBraces: space

Layout/SpaceBeforeBrackets:
  Enabled: false

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
  EnforcedStyle: no_space
  EnforcedStyleForEmptyBrackets: no_space

Layout/SpaceInsideArrayPercentLiteral:
  Enabled: true

Layout/SpaceInsideBlockBraces:
  Enabled: true
  EnforcedStyle: space
  EnforcedStyleForEmptyBraces: no_space
  SpaceBeforeBlockParameters: true

Layout/SpaceInsideHashLiteralBraces:
  Enabled: false
  EnforcedStyle: no_space
  EnforcedStyleForEmptyBraces: no_space

Layout/SpaceInsideParens:
  Enabled: true
  EnforcedStyle: no_space

Layout/SpaceInsidePercentLiteralDelimiters:
  Enabled: true

Layout/SpaceInsideRangeLiteral:
  Enabled: true

Layout/SpaceInsideReferenceBrackets:
  Enabled: true
  EnforcedStyle: no_space
  EnforcedStyleForEmptyBrackets: no_space

Layout/SpaceInsideStringInterpolation:
  Enabled: true
  EnforcedStyle: no_space

Layout/TrailingEmptyLines:
  Enabled: true
  EnforcedStyle: final_newline

Layout/TrailingWhitespace:
  Enabled: true
  AllowInHeredoc: true

Lint/AmbiguousAssignment:
  Enabled: true

Lint/AmbiguousBlockAssociation:
  Enabled: false

Lint/AmbiguousOperator:
  Enabled: true

Lint/AmbiguousOperatorPrecedence:
  Enabled: false

Lint/AmbiguousRange:
  Enabled: false

Lint/AmbiguousRegexpLiteral:
  Enabled: true

Lint/AssignmentInCondition:
  Enabled: true
  AllowSafeAssignment: true

Lint/BigDecimalNew:
  Enabled: true

Lint/BinaryOperatorWithIdenticalOperands:
  Enabled: true

Lint/BooleanSymbol:
  Enabled: true

Lint/CircularArgumentReference:
  Enabled: true

Lint/ConstantDefinitionInBlock:
  Enabled: true

Lint/ConstantResolution:
  Enabled: false

Lint/Debugger:
  Enabled: true

Lint/DeprecatedClassMethods:
  Enabled: true

Lint/DeprecatedConstants:
  Enabled: true

Lint/DeprecatedOpenSSLConstant:
  Enabled: true

Lint/DisjunctiveAssignmentInConstructor:
  Enabled: false

Lint/DuplicateBranch:
  Enabled: false

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/EmptyBlock:
  Enabled: false

Lint/EmptyClass:
  Enabled: false

Lint/EmptyConditionalBody:
  Enabled: false

Lint/EmptyEnsure:
  Enabled: true
  AutoCorrect: true

Lint/EmptyExpression:
  Enabled: true

Lint/EmptyFile:
  Enabled: false

Lint/EmptyInPattern:
  Enabled: false

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/HashCompareByIdentity:
  Enabled: false

Lint/HeredocMethodCallPosition:
  Enabled: false

Lint/IdentityComparison:
  Enabled: true

Lint/ImplicitStringConcatenation:
  Enabled: true

Lint/IneffectiveAccessModifier:
  Enabled: true

Lint/InheritException:
  Enabled: true
  EnforcedStyle: runtime_error

Lint/InterpolationCheck:
  Enabled: true

Lint/LambdaWithoutLiteralBlock:
  Enabled: false

Lint/LiteralAsCondition:
  Enabled: true

Lint/LiteralInInterpolation:
  Enabled: true

Lint/Loop:
  Enabled: true

Lint/MissingCopEnableDirective:
  Enabled: true
  MaximumRangeSize: .inf

Lint/MissingSuper:
  Enabled: false

Lint/MixedRegexpCaptureTypes:
  Enabled: true

Lint/MultipleComparison:
  Enabled: true

Lint/NestedMethodDefinition:
  Enabled: true

Lint/NestedPercentLiteral:
  Enabled: true

Lint/NextWithoutAccumulator:
  Enabled: true

Lint/NoReturnInBeginEndBlocks:
  Enabled: false

Lint/NonAtomicFileOperation:
  Enabled: false

Lint/NonDeterministicRequireOrder:
  Enabled: true

Lint/NonLocalExitFromIterator:
  Enabled: true

Lint/NumberConversion:
  Enabled: false

Lint/NumberedParameterAssignment:
  Enabled: true

Lint/OrAssignmentToConstant:
  Enabled: true

Lint/OrderedMagicComments:
  Enabled: true

Lint/OutOfRangeRegexpRef:
  Enabled: true

Lint/ParenthesesAsGroupedExpression:
  Enabled: true

Lint/PercentStringArray:
  Enabled: false

Lint/PercentSymbolArray:
  Enabled: true

Lint/RaiseException:
  Enabled: true

Lint/RandOne:
  Enabled: true

Lint/RedundantCopDisableDirective:
  Enabled: true

Lint/RedundantCopEnableDirective:
  Enabled: false

Lint/RedundantDirGlobSort:
  Enabled: false

Lint/RedundantRequireStatement:
  Enabled: true

Lint/RedundantSafeNavigation:
  Enabled: false

Lint/RedundantSplatExpansion:
  Enabled: true

Lint/RedundantStringCoercion:
  Enabled: true

Lint/RedundantWithIndex:
  Enabled: true

Lint/RedundantWithObject:
  Enabled: true

Lint/RegexpAsCondition:
  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/ScriptPermission:
  Enabled: false

Lint/SelfAssignment:
  Enabled: true

Lint/SendWithMixinArgument:
  Enabled: false

Lint/ShadowedArgument:
  Enabled: true
  IgnoreImplicitReferences: false

Lint/ShadowedException:
  Enabled: true

Lint/ShadowingOuterLocalVariable:
  Enabled: true

Lint/StructNewOverride:
  Enabled: true

Lint/SuppressedException:
  Enabled: true

Lint/SymbolConversion:
  Enabled: true

Lint/Syntax:
  Enabled: true

Lint/ToEnumArguments:
  Enabled: true

Lint/ToJSON:
  Enabled: true

Lint/TopLevelReturnWithArgument:
  Enabled: true

Lint/TrailingCommaInAttributeDeclaration:
  Enabled: true

Lint/TripleQuotes:
  Enabled: true

Lint/UnderscorePrefixedVariableName:
  Enabled: true

Lint/UnexpectedBlockArity:
  Enabled: false

Lint/UnifiedInteger:
  Enabled: true

Lint/UnmodifiedReduceAccumulator:
  Enabled: true

Lint/UnreachableCode:
  Enabled: true

Lint/UnreachableLoop:
  Enabled: true

Lint/UnusedBlockArgument:
  Enabled: true

Lint/UnusedMethodArgument:
  Enabled: true

Lint/UriEscapeUnescape:
  Enabled: true

Lint/UriRegexp:
  Enabled: true

Lint/UselessAccessModifier:
  Enabled: true

Lint/UselessAssignment:
  Enabled: true

Lint/UselessMethodDefinition:
  Enabled: true

Lint/UselessRescue:
  Enabled: false

Lint/UselessSetterCall:
  Enabled: true

Lint/UselessTimes:
  Enabled: true

Lint/Void:
  Enabled: true
  CheckForMethodsWithNoSideEffects: false

Lint/IncompatibleIoSelectWithFiberScheduler:
  Enabled: true

Lint/RequireRelativeSelfPath:
  Enabled: true

Lint/UselessRuby2Keywords:
  Enabled: true

Metrics/AbcSize:
  Enabled: false

Metrics/BlockLength:
  Enabled: false

Metrics/BlockNesting:
  Enabled: false

Metrics/ClassLength:
  Enabled: false

Metrics/CyclomaticComplexity:
  Enabled: false

Metrics/MethodLength:
  Enabled: false

Metrics/ModuleLength:
  Enabled: false

Metrics/ParameterLists:
  Enabled: false

Metrics/PerceivedComplexity:
  Enabled: false

Metrics/CollectionLiteralLength:
  Enabled: false

Migration/DepartmentName:
  Enabled: true

Naming/AccessorMethodName:
  Enabled: true

Naming/AsciiIdentifiers:
  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/FileName:
  Enabled: true

Naming/HeredocDelimiterCase:
  Enabled: true
  EnforcedStyle: uppercase

Naming/HeredocDelimiterNaming:
  Enabled: true

Naming/InclusiveLanguage:
  Enabled: false

Naming/MemoizedInstanceVariableName:
  Enabled: false

Naming/MethodName:
  Enabled: true

Naming/MethodParameterName:
  Enabled: true
  AllowedNames: [to, cc]

Naming/PredicateName:
  Enabled: true

Naming/RescuedExceptionsVariableName:
  Enabled: true

Naming/VariableName:
  Enabled: true
  EnforcedStyle: snake_case

Naming/VariableNumber:
  Enabled: true
  EnforcedStyle: snake_case
  AllowedIdentifiers: [S1, S2, S3, CPO2, CPO1, PO2, PO1, v1, v2]
  AllowedPatterns: ['GMT[\d\+-]', 'k1017', 'base64']

Naming/BlockForwarding:
  Enabled: true

Performance/AncestorsInclude:
  Enabled: false

Performance/ArraySemiInfiniteRangeSlice:
  Enabled: false

Performance/BigDecimalWithNumericArgument:
  Enabled: true

Performance/BindCall:
  Enabled: true

Performance/BlockGivenWithExplicitBlock:
  Enabled: true

Performance/Caller:
  Enabled: true

Performance/CaseWhenSplat:
  Enabled: false

Performance/Casecmp:
  Enabled: false

Performance/ChainArrayAllocation:
  Enabled: true

Performance/CollectionLiteralInLoop:
  Enabled: true

Performance/CompareWithBlock:
  Enabled: true

Performance/ConstantRegexp:
  Enabled: true

Performance/Count:
  Enabled: true

Performance/DeletePrefix:
  Enabled: false

Performance/DeleteSuffix:
  Enabled: false

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/IoReadlines:
  Enabled: true

Performance/MapCompact:
  Enabled: false

Performance/MethodObjectAsBlock:
  Enabled: true

Performance/OpenStruct:
  Enabled: false

Performance/RangeInclude:
  Enabled: true
  Safe: false

Performance/RedundantBlockCall:
  Enabled: true

Performance/RedundantEqualityComparisonBlock:
  Enabled: 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/SelectMap:
  Enabled: true

Performance/Size:
  Enabled: true

Performance/SortReverse:
  Enabled: true

Performance/Squeeze:
  Enabled: true

Performance/StartWith:
  Enabled: true

Performance/StringInclude:
  Enabled: false

Performance/StringReplacement:
  Enabled: true

Performance/Sum:
  Enabled: false

Performance/TimesMap:
  Enabled: false

Performance/UnfreezeString:
  Enabled: true

Performance/UriDefaultParser:
  Enabled: true

Performance/ConcurrentMonotonicTime:
  Enabled: true

Performance/StringIdentifierArgument:
  Enabled: true

Rails/ApplicationController:
  Enabled: false

Rails/FindBy:
  Enabled: false

Rails/FindEach:
  Enabled: false

Rails/WhereNotWithMultipleConditions:
  Enabled: false

Rails/TimeZone:
  Enabled: true

RSpec/EmptyExampleGroup:
  Enabled: false

RSpec/ExampleLength:
  Enabled: false

RSpec/SpecFilePathFormat:
  Enabled: true

RSpec/SpecFilePathSuffix:
  Enabled: true

RSpec/IndexedLet:
  Enabled: false

RSpec/MatchArray:
  Enabled: false

RSpec/MissingExampleGroupArgument:
  Enabled: false

Security/Eval:
  Enabled: true

Security/JSONLoad:
  Enabled: true
  AutoCorrect: false
  SafeAutoCorrect: false

Security/MarshalLoad:
  Enabled: true

Security/Open:
  Enabled: true
  Safe: false

Security/YAMLLoad:
  Enabled: true
  SafeAutoCorrect: false

Security/IoMethods:
  Enabled: true
  Safe: false

Standard/BlockSingleLineBraces:
  Enabled: true

Style/AccessModifierDeclarations:
  Enabled: false

Style/AccessorGrouping:
  Enabled: true

Style/Alias:
  Enabled: true
  EnforcedStyle: prefer_alias_method

Style/AndOr:
  Enabled: true

Style/ArgumentsForwarding:
  Enabled: true
  AllowOnlyRestArgument: true

Style/ArrayCoercion:
  Enabled: false

Style/ArrayJoin:
  Enabled: true

Style/AsciiComments:
  Enabled: false

Style/Attr:
  Enabled: true

Style/AutoResourceCleanup:
  Enabled: true

Style/BarePercentLiterals:
  Enabled: true
  EnforcedStyle: bare_percent

Style/BeginBlock:
  Enabled: true

Style/BisectedAttrAccessor:
  Enabled: true

Style/BlockComments:
  Enabled: true

Style/BlockDelimiters:
  Enabled: true

Style/CaseEquality:
  Enabled: false

Style/CaseLikeIf:
  Enabled: false

Style/CharacterLiteral:
  Enabled: true

Style/ClassAndModuleChildren:
  Enabled: false

Style/ClassCheck:
  Enabled: true
  EnforcedStyle: is_a?

Style/ClassEqualityComparison:
  Enabled: true

Style/ClassMethods:
  Enabled: true

Style/ClassMethodsDefinitions:
  Enabled: true

Style/ClassVars:
  Enabled: true

Style/CollectionCompact:
  Enabled: false

Style/CollectionMethods:
  Enabled: false

Style/ColonMethodCall:
  Enabled: true

Style/ColonMethodDefinition:
  Enabled: true

Style/CombinableLoops:
  Enabled: false

Style/CommandLiteral:
  Enabled: true
  EnforcedStyle: mixed
  AllowInnerBackticks: false

Style/CommentAnnotation:
  Enabled: false

Style/CommentedKeyword:
  Enabled: false

Style/ConditionalAssignment:
  Enabled: true
  EnforcedStyle: assign_to_condition
  SingleLineConditionsOnly: true
  IncludeTernaryExpressions: true

Style/ConstantVisibility:
  Enabled: false

Style/Copyright:
  Enabled: false

Style/DateTime:
  Enabled: false

Style/DefWithParentheses:
  Enabled: true

Style/Dir:
  Enabled: true

Style/DisableCopsWithinSourceCodeDirective:
  Enabled: false

Style/DocumentDynamicEvalDefinition:
  Enabled: false

Style/Documentation:
  Enabled: false  

Style/DocumentationMethod:
  Enabled: false

Style/DoubleCopDisableDirective:
  Enabled: true

Style/DoubleNegation:
  Enabled: false

Style/EachForSimpleLoop:
  Enabled: true

Style/EachWithObject:
  Enabled: true

Style/EmptyBlockParameter:
  Enabled: true

Style/EmptyCaseCondition:
  Enabled: true

Style/EmptyElse:
  Enabled: true
  EnforcedStyle: both

Style/EmptyLambdaParameter:
  Enabled: true

Style/EmptyLiteral:
  Enabled: true

Style/EmptyMethod:
  Enabled: true
  EnforcedStyle: expanded

Style/Encoding:
  Enabled: true

Style/EndBlock:
  Enabled: true
  AutoCorrect: true

Style/EndlessMethod:
  Enabled: true

Style/EvalWithLocation:
  Enabled: true

Style/EvenOdd:
  Enabled: true

Style/ExpandPathArguments:
  Enabled: true

Style/ExplicitBlockArgument:
  Enabled: true

Style/ExponentialNotation:
  Enabled: true

Style/FloatDivision:
  Enabled: false

Style/For:
  Enabled: true
  EnforcedStyle: each

Style/FormatString:
  Enabled: false

Style/FormatStringToken:
  Enabled: true

Style/FrozenStringLiteralComment:
  Enabled: false

Style/GlobalStdStream:
  Enabled: true

Style/GlobalVars:
  Enabled: true
  AllowedVariables: []

Style/GuardClause:
  Enabled: false

Style/HashAsLastArrayItem:
  Enabled: true

Style/HashConversion:
  Enabled: true

Style/HashEachMethods:
  Enabled: false

Style/HashExcept:
  Enabled: true

Style/HashLikeCase:
  Enabled: true

Style/HashSyntax:
  Enabled: true
  EnforcedStyle: ruby19_no_mixed_keys
  EnforcedShorthandSyntax: either

Style/HashTransformKeys:
  Enabled: false

Style/HashTransformValues:
  Enabled: false

Style/IdenticalConditionalBranches:
  Enabled: true

Style/IfInsideElse:
  Enabled: true

Style/IfUnlessModifier:
  Enabled: true

Style/IfUnlessModifierOfIfUnless:
  Enabled: true

Style/IfWithBooleanLiteralBranches:
  Enabled: true

Style/IfWithSemicolon:
  Enabled: true

Style/ImplicitRuntimeError:
  Enabled: false

Style/InPatternThen:
  Enabled: true

Style/InfiniteLoop:
  Enabled: true

Style/InlineComment:
  Enabled: false

Style/InverseMethods:
  Enabled: false

Style/IpAddresses:
  Enabled: true

Style/KeywordParametersOrder:
  Enabled: true

Style/Lambda:
  Enabled: false

Style/LambdaCall:
  Enabled: true
  EnforcedStyle: call

Style/LineEndConcatenation:
  Enabled: true
  SafeAutoCorrect: false

Style/MethodCallWithArgsParentheses:
  Enabled: true

Style/MethodCallWithoutArgsParentheses:
  Enabled: true

Style/MethodCalledOnDoEndBlock:
  Enabled: false

Style/MethodDefParentheses:
  Enabled: true

Style/MinMax:
  Enabled: true

Style/MissingElse:
  Enabled: false

Style/MissingRespondToMissing:
  Enabled: true

Style/MixinGrouping:
  Enabled: true
  EnforcedStyle: separated

Style/MixinUsage:
  Enabled: true

Style/ModuleFunction:
  Enabled: false

Style/MultilineBlockChain:
  Enabled: true

Style/MultilineIfModifier:
  Enabled: true

Style/MultilineIfThen:
  Enabled: true

Style/MultilineInPatternThen:
  Enabled: true

Style/MultilineMemoization:
  Enabled: true
  EnforcedStyle: keyword

Style/MultilineMethodSignature:
  Enabled: true

Style/MultilineTernaryOperator:
  Enabled: true

Style/MultilineWhenThen:
  Enabled: true

Style/MultipleComparison:
  Enabled: true

Style/MutableConstant:
  Enabled: false

Style/NegatedIf:
  Enabled: true

Style/NegatedIfElseCondition:
  Enabled: true

Style/NegatedUnless:
  Enabled: true

Style/NegatedWhile:
  Enabled: true

Style/NestedModifier:
  Enabled: true

Style/NestedParenthesizedCalls:
  Enabled: true
  AllowedMethods:
    - be
    - be_a
    - be_an
    - be_between
    - be_falsey
    - be_kind_of
    - be_instance_of
    - be_truthy
    - be_within
    - eq
    - eql
    - end_with
    - include
    - match
    - raise_error
    - respond_to
    - start_with

Style/NestedTernaryOperator:
  Enabled: true

Style/Next:
  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/NumericLiterals:
  Enabled: true

Style/NumericPredicate:
  Enabled: false

Style/OneLineConditional:
  Enabled: true

Style/OptionHash:
  Enabled: false

Style/OptionalArguments:
  Enabled: true

Style/OptionalBooleanParameter:
  Enabled: false

Style/OrAssignment:
  Enabled: true

Style/ParallelAssignment:
  Enabled: true

Style/ParenthesesAroundCondition:
  Enabled: true
  AllowSafeAssignment: true
  AllowInMultilineConditions: false

Style/PercentLiteralDelimiters:
  Enabled: true
  PreferredDelimiters:
    default: ()
    "%i": "[]"
    "%I": "[]"
    "%r": "{}"
    "%w": "[]"
    "%W": "[]"

Style/PercentQLiterals:
  Enabled: true

Style/PerlBackrefs:
  Enabled: true

Style/PreferredHashMethods:
  Enabled: false

Style/Proc:
  Enabled: true

Style/QuotedSymbols:
  Enabled: true

Style/RaiseArgs:
  Enabled: true

Style/RandomWithOffset:
  Enabled: true

Style/RedundantArgument:
  Enabled: false

Style/RedundantAssignment:
  Enabled: true

Style/RedundantBegin:
  Enabled: true

Style/RedundantCapitalW:
  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/RedundantParentheses:
  Enabled: true

Style/RedundantPercentQ:
  Enabled: true

Style/RedundantRegexpCharacterClass:
  Enabled: true

Style/RedundantRegexpEscape:
  Enabled: true

Style/RedundantReturn:
  Enabled: true
  AllowMultipleReturnValues: false

Style/RedundantSelf:
  Enabled: true

Style/RedundantSelfAssignment:
  Enabled: false

Style/RedundantSelfAssignmentBranch:
  Enabled: true

Style/RedundantSort:
  Enabled: true

Style/RedundantSortBy:
  Enabled: true

Style/RegexpLiteral:
  Enabled: true

Style/RescueModifier:
  Enabled: true

Style/RescueStandardError:
  Enabled: true
  EnforcedStyle: implicit

Style/ReturnNil:
  Enabled: true

Style/SafeNavigation:
  Enabled: false
  ConvertCodeThatCanStartToReturnNil: false
  AllowedMethods:
    - present?
    - blank?
    - presence
    - try
    - try!

Style/Sample:
  Enabled: true

Style/SelfAssignment:
  Enabled: true

Style/Semicolon:
  Enabled: true
  AllowAsExpressionSeparator: false

Style/Send:
  Enabled: false

Style/SignalException:
  Enabled: true

Style/SingleArgumentDig:
  Enabled: false

Style/SingleLineBlockParams:
  Enabled: false

Style/SingleLineMethods:
  Enabled: true
  AllowIfMethodIsEmpty: false

Style/SlicingWithRange:
  Enabled: false

Style/SoleNestedConditional:
  Enabled: true

Style/SpecialGlobalVars:
  Enabled: true

Style/StabbyLambdaParentheses:
  Enabled: true
  EnforcedStyle: require_parentheses

Style/StaticClass:
  Enabled: false

Style/StderrPuts:
  Enabled: true

Style/StringChars:
  Enabled: true

Style/StringConcatenation:
  Enabled: false

Style/StringHashKeys:
  Enabled: false

Style/StringLiterals:
  Enabled: true
  EnforcedStyle: double_quotes
  ConsistentQuotesInMultiline: false

Style/StringLiteralsInInterpolation:
  Enabled: true
  EnforcedStyle: double_quotes

Style/StringMethods:
  Enabled: true

Style/Strip:
  Enabled: true

Style/StructInheritance:
  Enabled: false

Style/SwapValues:
  Enabled: false

Style/SymbolArray:
  Enabled: true

Style/SymbolLiteral:
  Enabled: true

Style/SymbolProc:
  Enabled: false

Style/TernaryParentheses:
  Enabled: true
  EnforcedStyle: require_parentheses_when_complex
  AllowSafeAssignment: true

Style/TopLevelMethodDefinition:
  Enabled: true

Style/TrailingBodyOnClass:
  Enabled: true

Style/TrailingBodyOnMethodDefinition:
  Enabled: true

Style/TrailingBodyOnModule:
  Enabled: true

Style/TrailingCommaInArguments:
  Enabled: true
  EnforcedStyleForMultiline: no_comma

Style/TrailingCommaInArrayLiteral:
  Enabled: true
  EnforcedStyleForMultiline: no_comma

Style/TrailingCommaInBlockArgs:
  Enabled: true

Style/TrailingCommaInHashLiteral:
  Enabled: true
  EnforcedStyleForMultiline: no_comma

Style/TrailingMethodEndStatement:
  Enabled: true

Style/TrailingUnderscoreVariable:
  Enabled: true

Style/TrivialAccessors:
  Enabled: true
  ExactNameMatch: true
  AllowPredicates: true
  AllowDSLWriters: false
  IgnoreClassMethods: false
  AllowedMethods:
    - to_ary
    - to_a
    - to_c
    - to_enum
    - to_h
    - to_hash
    - to_i
    - to_int
    - to_io
    - to_open
    - to_path
    - to_proc
    - to_r
    - to_regexp
    - to_str
    - to_s
    - to_sym

Style/UnlessElse:
  Enabled: true

Style/UnlessLogicalOperators:
  Enabled: false

Style/UnpackFirst:
  Enabled: true

Style/VariableInterpolation:
  Enabled: true

Style/WhenThen:
  Enabled: true

Style/WhileUntilDo:
  Enabled: true

Style/WhileUntilModifier:
  Enabled: true

Style/WordArray:
  Enabled: true

Style/YodaCondition:
  Enabled: true
  EnforcedStyle: forbid_for_all_comparison_operators

Style/ZeroLengthPredicate:
  Enabled: false

Style/NumberedParameters:
  Enabled: false

Style/NumberedParametersLimit:
  Enabled: false

Style/SelectByRegexp:
  Enabled: false

Style/OpenStructUse:
  Enabled: false

Style/MapToHash:
  Enabled: false

Style/FileWrite:
  Enabled: true

Style/FileRead:
  Enabled: true

Style/RedundantConstantBase:
  Enabled: false

Style/RedundantFilterChain:
  Enabled: false

FactoryBot/FactoryAssociationWithStrategy:
  Enabled: false

FactoryBot/AssociationStyle:
  Enabled: false
jonathanloos commented 4 months ago

@hvillero are you able to update the ticket to include that you've added Rubocop? It's a bit nicer for traceability