# Omakase Ruby styling for Rails inherit_gem: { rubocop-rails-omakase: rubocop.yml } # Overwrite or add rules to create your own house style # # # Use `[a, [b, c]]` not `[ a, [ b, c ] ]` # Layout/SpaceInsideArrayLiteralBrackets: # Enabled: false AllCops: SuggestExtensions: false TargetRubyVersion: 3.3.4 DisabledByDefault: true Exclude: - '**/templates/**/*' - '**/vendor/**/*' - '**/vendor/**/.*' - '**/node_modules/**/*' - 'db/**/*' - 'config/**/*' - 'script/**/*' - 'bin/*' - 'public/views/*' - 'bin/**/*' - 'config/**/*' - 'db/**/*' - 'tmp/**/*' - 'spec/spec_helper.rb' - 'spec/rails_helper.rb' - 'Rakefile' - !ruby/regexp /old_and_unused\.rb$/ Bundler/InsecureProtocolSource: Enabled: true Include: - '**/*.gemfile' - '**/Gemfile' - '**/gems.rb' Bundler/DuplicatedGem: Enabled: true Include: - '**/*.gemfile' - '**/Gemfile' - '**/gems.rb' Bundler/GemComment: Enabled: false Bundler/OrderedGems: Enabled: true Include: - '**/*.gemfile' - '**/Gemfile' - '**/gems.rb' Gemspec/DuplicatedAssignment: Enabled: true Include: - '**/*.gemspec' Gemspec/OrderedDependencies: Enabled: true Include: - '**/*.gemspec' Layout/AccessModifierIndentation: Enabled: true EnforcedStyle: indent IndentationWidth: ~ Layout/ArgumentAlignment: Enabled: true EnforcedStyle: with_first_argument Layout/ArrayAlignment: Enabled: true Layout/HashAlignment: Enabled: true EnforcedColonStyle: table EnforcedLastArgumentHashStyle: always_inspect EnforcedHashRocketStyle: table Layout/ParameterAlignment: Enabled: true EnforcedStyle: with_fixed_indentation IndentationWidth: ~ Layout/BlockAlignment: Enabled: true EnforcedStyleAlignWith: either Layout/BlockEndNewline: Enabled: true # Disabled because IndentOneStep can't be configured for one-liner cases. See: # https://github.com/rubocop-hq/rubocop/issues/6447 # Layout/CaseIndentation: # Enabled: true Layout/ClosingHeredocIndentation: Enabled: true Layout/ClosingParenthesisIndentation: Enabled: false Layout/CommentIndentation: Enabled: true Layout/ConditionPosition: Enabled: true Layout/DefEndAlignment: Enabled: true EnforcedStyleAlignWith: start_of_line AutoCorrect: false Severity: warning Layout/DotPosition: Enabled: true EnforcedStyle: leading Layout/ElseAlignment: Enabled: true 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/EndAlignment: Enabled: true AutoCorrect: true EnforcedStyleAlignWith: variable Severity: warning Layout/EndOfLine: Enabled: true EnforcedStyle: native Layout/ExtraSpacing: Enabled: true AllowForAlignment: true AllowBeforeTrailingComments: true ForceEqualSignAlignment: false Layout/FirstArgumentIndentation: Enabled: true EnforcedStyle: consistent_relative_to_receiver Layout/FirstArrayElementIndentation: Enabled: true EnforcedStyle: special_inside_parentheses IndentationWidth: ~ Layout/AssignmentIndentation: Enabled: true IndentationWidth: ~ Layout/FirstHashElementIndentation: Enabled: true EnforcedStyle: consistent IndentationWidth: ~ Layout/HeredocIndentation: Enabled: true Layout/IndentationConsistency: Enabled: true EnforcedStyle: normal Layout/IndentationWidth: Enabled: true Width: 2 AllowedPatterns: [] Layout/InitialIndentation: Enabled: true Layout/LeadingEmptyLines: Enabled: true Layout/LeadingCommentSpace: Enabled: true Layout/MultilineArrayBraceLayout: Enabled: true EnforcedStyle: symmetrical Layout/MultilineBlockLayout: Enabled: true Layout/MultilineHashBraceLayout: Enabled: true EnforcedStyle: symmetrical 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/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/SpaceAroundOperators: Enabled: true AllowForAlignment: true 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 EnforcedStyle: no_space EnforcedStyleForEmptyBrackets: no_space Layout/SpaceInsideArrayPercentLiteral: Enabled: true Layout/SpaceInsideBlockBraces: Enabled: true EnforcedStyle: space EnforcedStyleForEmptyBraces: no_space SpaceBeforeBlockParameters: true Layout/SpaceInsideHashLiteralBraces: Enabled: true EnforcedStyle: 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/IndentationStyle: Enabled: true IndentationWidth: ~ Layout/TrailingEmptyLines: Enabled: true EnforcedStyle: final_newline Layout/TrailingWhitespace: Enabled: true AllowInHeredoc: false Lint/AmbiguousOperator: Enabled: true Lint/AmbiguousRegexpLiteral: Enabled: true Lint/AssignmentInCondition: Enabled: true AllowSafeAssignment: true Lint/BigDecimalNew: Enabled: true Lint/BooleanSymbol: Enabled: true Lint/CircularArgumentReference: Enabled: true Lint/Debugger: Enabled: true Lint/DeprecatedClassMethods: Enabled: true Lint/DuplicateCaseCondition: Enabled: true Lint/DuplicateMethods: Enabled: true Lint/DuplicateHashKey: Enabled: true Lint/EachWithObjectArgument: Enabled: true Lint/ElseLayout: Enabled: true Lint/EmptyEnsure: Enabled: true AutoCorrect: false Lint/EmptyExpression: Enabled: true Lint/EmptyInterpolation: Enabled: true Lint/EmptyWhen: Enabled: true Lint/EnsureReturn: Enabled: true Lint/ErbNewArguments: Enabled: true Lint/FlipFlop: Enabled: true Lint/FloatOutOfRange: Enabled: true Lint/FormatParameterMismatch: 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/MultipleComparison: Enabled: true Lint/NestedMethodDefinition: Enabled: true Lint/NestedPercentLiteral: Enabled: true Lint/NextWithoutAccumulator: Enabled: true Lint/NonLocalExitFromIterator: Enabled: true Lint/OrderedMagicComments: Enabled: true Lint/ParenthesesAsGroupedExpression: Enabled: true Lint/PercentSymbolArray: Enabled: true Lint/RandOne: 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/ShadowedArgument: Enabled: true IgnoreImplicitReferences: false Lint/ShadowedException: Enabled: true Lint/RedundantStringCoercion: Enabled: true Lint/Syntax: Enabled: true Lint/UnderscorePrefixedVariableName: Enabled: true Lint/UnifiedInteger: Enabled: true Lint/RedundantRequireStatement: Enabled: true Lint/RedundantSplatExpansion: Enabled: true Lint/UnreachableCode: Enabled: true Lint/UriEscapeUnescape: Enabled: true Lint/UriRegexp: Enabled: true Lint/UselessAssignment: Enabled: true Lint/UselessSetterCall: Enabled: true Lint/Void: Enabled: true CheckForMethodsWithNoSideEffects: false Naming/AsciiIdentifiers: Enabled: true Naming/BinaryOperatorParameterName: Enabled: true Naming/ClassAndModuleCamelCase: Enabled: true Naming/ConstantName: Enabled: true Naming/HeredocDelimiterCase: Enabled: true EnforcedStyle: uppercase Naming/MethodName: Enabled: true EnforcedStyle: snake_case Naming/BlockParameterName: Enabled: true MinNameLength: 1 AllowNamesEndingInNumbers: true AllowedNames: [] ForbiddenNames: [] Naming/VariableName: Enabled: true EnforcedStyle: snake_case Performance/Caller: Enabled: true Performance/CompareWithBlock: Enabled: true Performance/Count: Enabled: true Performance/Detect: Enabled: true Performance/DoubleStartEndWith: Enabled: true IncludeActiveSupportAliases: false Performance/EndWith: Enabled: true SafeAutoCorrect: false AutoCorrect: false 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/RegexpMatch: Enabled: true Performance/ReverseEach: Enabled: true Performance/Size: Enabled: true Performance/StartWith: Enabled: true SafeAutoCorrect: false AutoCorrect: false Performance/StringReplacement: Enabled: true Performance/UnfreezeString: Enabled: true Performance/UriDefaultParser: Enabled: true Security/Eval: Enabled: false Security/JSONLoad: Enabled: true AutoCorrect: false SafeAutoCorrect: false Security/Open: Enabled: true Safe: false Security/YAMLLoad: Enabled: true SafeAutoCorrect: false Style/FrozenStringLiteralComment: Enabled: false EnforcedStyle: never Style/Alias: Enabled: true EnforcedStyle: prefer_alias Style/AndOr: Enabled: true EnforcedStyle: always Style/ArrayJoin: Enabled: true Style/Attr: Enabled: true Style/BarePercentLiterals: Enabled: true EnforcedStyle: bare_percent Style/BeginBlock: Enabled: true Style/BlockComments: Enabled: true Style/CharacterLiteral: Enabled: true Style/ClassCheck: Enabled: true EnforcedStyle: is_a? Style/ClassMethods: Enabled: true #Style/ColonMethodCall: # Enabled: true Style/ColonMethodDefinition: Enabled: true #Style/CommandLiteral: # Enabled: true # EnforcedStyle: mixed # AllowInnerBackticks: false Style/CommentedKeyword: Enabled: true Style/ConditionalAssignment: Enabled: false EnforcedStyle: assign_inside_condition SingleLineConditionsOnly: true IncludeTernaryExpressions: true Style/DefWithParentheses: Enabled: true Style/Dir: Enabled: true 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 Style/EvalWithLocation: Enabled: true Style/For: Enabled: true EnforcedStyle: each Style/GlobalVars: Enabled: true AllowedVariables: [] Style/HashSyntax: Enabled: false EnforcedStyle: ruby19_no_mixed_keys Style/IdenticalConditionalBranches: Enabled: true Style/IfInsideElse: Enabled: true Style/IfUnlessModifierOfIfUnless: Enabled: true Style/IfWithSemicolon: Enabled: true Style/InfiniteLoop: Enabled: true Style/LambdaCall: Enabled: true EnforcedStyle: call Style/LineEndConcatenation: Enabled: true SafeAutoCorrect: false Style/MethodCallWithoutArgsParentheses: Enabled: true AllowedMethods: [] Lint/MissingSuper: Enabled: false Style/MissingRespondToMissing: Enabled: true Style/MixinGrouping: Enabled: true EnforcedStyle: separated Style/MixinUsage: Enabled: true Style/MultilineIfModifier: Enabled: true Style/MultilineIfThen: Enabled: true Style/MultilineMemoization: Enabled: true EnforcedStyle: keyword Style/NegatedIf: Enabled: true EnforcedStyle: both 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/NilComparison: Enabled: true EnforcedStyle: predicate Style/NonNilCheck: Enabled: true IncludeSemanticChanges: false Style/Not: Enabled: true Style/NumericLiteralPrefix: Enabled: true EnforcedOctalStyle: zero_with_o Style/OneLineConditional: Enabled: true Style/OptionalArguments: Enabled: true Style/OrAssignment: 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 EnforcedStyle: lower_case_q Style/PreferredHashMethods: Enabled: true EnforcedStyle: short Style/Proc: Enabled: true Style/RandomWithOffset: Enabled: true Style/RedundantBegin: Enabled: true Style/RedundantConditional: Enabled: true Style/RedundantException: Enabled: true Style/RedundantFreeze: Enabled: true Style/RedundantParentheses: Enabled: true Style/RedundantReturn: Enabled: true AllowMultipleReturnValues: false Style/RedundantSelf: Enabled: true Style/RedundantSortBy: Enabled: true Style/RescueModifier: Enabled: false Style/RescueStandardError: Enabled: true EnforcedStyle: implicit 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/SingleLineMethods: Enabled: true AllowIfMethodIsEmpty: false Style/StabbyLambdaParentheses: Enabled: true EnforcedStyle: require_parentheses Style/StderrPuts: Enabled: true Style/StringLiterals: Enabled: true EnforcedStyle: single_quotes ConsistentQuotesInMultiline: false Style/StringLiteralsInInterpolation: Enabled: true EnforcedStyle: single_quotes Style/Strip: Enabled: true Style/SymbolLiteral: Enabled: true Style/TernaryParentheses: Enabled: true EnforcedStyle: require_no_parentheses AllowSafeAssignment: true Style/TrailingBodyOnClass: Enabled: true Style/TrailingBodyOnMethodDefinition: Enabled: true Style/TrailingBodyOnModule: Enabled: true Style/TrailingCommaInArrayLiteral: Enabled: true EnforcedStyleForMultiline: no_comma Style/TrailingCommaInHashLiteral: Enabled: true EnforcedStyleForMultiline: no_comma Style/TrailingMethodEndStatement: 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/RedundantCapitalW: Enabled: true Style/RedundantCondition: Enabled: true Style/RedundantInterpolation: Enabled: true Style/RedundantPercentQ: Enabled: true Style/RedundantSort: 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 ####Style # Timeout.timeout(500) { "oke" }, not Timeout::timeout(500) { "oke" } Style/ColonMethodCall: Enabled: true Style/CommandLiteral: EnforcedStyle: backticks AllowInnerBackticks: false # Time.iso8601('2016-06-29'), not DateTime.iso8601('2016-06-29') Style/ConstantVisibility: Enabled: true Style/ClassAndModuleChildren: Enabled: false Style/Documentation: Enabled: false Style/ClassVars: Enabled: false #Style/GuardClause: # Enabled: true Metrics/BlockLength: Enabled: false Metrics/MethodLength: Enabled: false Metrics/PerceivedComplexity: Enabled: false Metrics/AbcSize: Enabled: false Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Naming/AccessorMethodName: Enabled: false Naming/MethodParameterName: Enabled: true MinNameLength: 1 AllowedNames: - _ Layout/ClassStructure: Enabled: true