diff --git a/.github/linters/.ruby-lint.yml b/.github/linters/.ruby-lint.yml index c70ad84d..b9c4d880 100644 --- a/.github/linters/.ruby-lint.yml +++ b/.github/linters/.ruby-lint.yml @@ -3,182 +3,6 @@ # Rubocop Config file # ####################### -################################################################################ -############################## Rails Rules ##################################### -################################################################################ - -# Set the linter to enable rails rules -Rails: - Enabled: true - -################################################################################ -############################# Security Rules ################################### -################################################################################ - -# Security rules -Security/Open: - Enabled: false -################################################################################ -############################# Metrics Rules #################################### -################################################################################ - -# Commonly used screens these days easily fit more than 80 characters. -Metrics/LineLength: - Max: 120 - -# Too short methods lead to extraction of single-use methods, which can make -# the code easier to read (by naming things), but can also clutter the class -Metrics/MethodLength: - Max: 30 - -# The guiding principle of classes is SRP, -# SRP can't be accurately measured by LoC -Metrics/ClassLength: - Max: 1500 - -# Turn off the Assignment Branch Condition size for the case of these scripts -Metrics/AbcSize: - Enabled: false - -# Set the complexity of the metrics -Metrics/PerceivedComplexity: - Max: 10 - -# Set the complexity of the cyle -Metrics/CyclomaticComplexity: - Max: 10 - -################################################################################ -########################## Layout Rules ######################################## -################################################################################ - -# No space makes the method definition shorter and differentiates -# from a regular assignment. -Layout/SpaceAroundEqualsInParameterDefault: - EnforcedStyle: no_space - -# Indenting the chained dots beneath each other is not supported by this cop, -# see https://github.com/bbatsov/rubocop/issues/1633 -Layout/MultilineOperationIndentation: - Enabled: false - -Layout/SpaceInsideBlockBraces: - # The space here provides no real gain in readability while consuming - # horizontal space that could be used for a better parameter name. - # Also {| differentiates better from a hash than { | does. - SpaceBeforeBlockParameters: false - -# No trailing space differentiates better from the block: -# foo} means hash, foo } means block. -Layout/SpaceInsideHashLiteralBraces: - EnforcedStyle: no_space - -################################################################################ -########################### Style Rules ######################################## -################################################################################ - -# Single quotes being faster is hardly measurable and only affects parse time. -# Enforcing double quotes reduces the times where you need to change them -# when introducing an interpolation. Use single quotes only if their semantics -# are needed. -Style/StringLiterals: - EnforcedStyle: double_quotes - -# We do not need to support Ruby 1.9, so this is good to use. -Style/SymbolArray: - Enabled: true - -# Mixing the styles looks just silly. -Style/HashSyntax: - EnforcedStyle: ruby19_no_mixed_keys - -# has_key? and has_value? are far more readable than key? and value? -Style/PreferredHashMethods: - Enabled: false - -# String#% is by far the least verbose and only object oriented variant. -Style/FormatString: - EnforcedStyle: percent - -Style/CollectionMethods: - Enabled: true - PreferredMethods: - # inject seems more common in the community. - reduce: "inject" - -# Either allow this style or don't. Marking it as safe with parenthesis -# is silly. Let's try to live without them for now. -Style/ParenthesesAroundCondition: - AllowSafeAssignment: false - -# A specialized exception class will take one or more arguments -# and construct the message from it. So both variants make sense. -Style/RaiseArgs: - Enabled: false - -# Fail is an alias of raise. Avoid aliases, -# it's more cognitive load for no gain. The argument that fail -# should be used to abort the program is wrong too, -# there's Kernel#abort for that. -Style/SignalException: - EnforcedStyle: only_raise - -# { ... } for multi-line blocks is okay, follow Weirichs rule instead: -# https://web.archive.org/web/20140221124509/http://onestepback.org/index.cgi/Tech/Ruby/BraceVsDoEnd.rdoc -Style/BlockDelimiters: - Enabled: false - -# do / end blocks should be used for side effects, -# methods that run a block for side effects and have -# a useful return value are rare, assign the return -# value to a local variable for those cases. -Style/MethodCalledOnDoEndBlock: - Enabled: true - -# Enforcing the names of variables? To single letter ones? Just no. -Style/SingleLineBlockParams: - Enabled: false - -# Check with yard instead. -Style/Documentation: - Enabled: false - -# Style preference -Style/MethodDefParentheses: - Enabled: false - -################################################################################ -########################### Linter Rules ####################################### -################################################################################ - -# There are valid cases, for example debugging Cucumber steps, -# also they'll fail CI anyway -Lint/Debugger: - Enabled: false - -# Shadowing outer local variables with block parameters is often useful -# to not reinvent a new name for the same thing, it highlights the relation -# between the outer variable and the parameter. The cases where it's actually -# confusing are rare, and usually bad for other reasons already, for example -# because the method is too long. -Lint/ShadowingOuterLocalVariable: - Enabled: false - -# Suppressing exceptions can be perfectly fine, and be it to avoid to -# explicitly type nil into the rescue since that's what you want to return, -# or suppressing LoadError for optional dependencies -Lint/HandleExceptions: - Enabled: false - -Lint/AssignmentInCondition: - AllowSafeAssignment: false - -################################################################################ -############################ Naming Rules ###################################### -################################################################################ - -# This is just silly. Calling the argument `other` in all cases makes no sense. -Naming/BinaryOperatorParameterName: - Enabled: false - -################################################################################ +inherit_gem: + rubocop-github: + - config/default.yml diff --git a/TEMPLATES/.ruby-lint.yml b/TEMPLATES/.ruby-lint.yml index b0d89533..b9c4d880 100644 --- a/TEMPLATES/.ruby-lint.yml +++ b/TEMPLATES/.ruby-lint.yml @@ -3,186 +3,6 @@ # Rubocop Config file # ####################### -################################################################################ -############################## Rails Rules ##################################### -################################################################################ - -# Set the linter to enable rails rules -# Note: the old style was to do the following. Now we just need to do the -# require to allow rubocop to enable rails -# https://stackoverflow.com/questions/41892310/how-to-enable-rubocop-rails-cops-automatically -# Rails: -# Enabled: true -require: rubocop-rails - -################################################################################ -############################# Security Rules ################################### -################################################################################ - -# Security rules -Security/Open: - Enabled: false -################################################################################ -############################# Metrics Rules #################################### -################################################################################ - -# Commonly used screens these days easily fit more than 80 characters. -Metrics/LineLength: - Max: 120 - -# Too short methods lead to extraction of single-use methods, which can make -# the code easier to read (by naming things), but can also clutter the class -Metrics/MethodLength: - Max: 30 - -# The guiding principle of classes is SRP, -# SRP can't be accurately measured by LoC -Metrics/ClassLength: - Max: 1500 - -# Turn off the Assignment Branch Condition size for the case of these scripts -Metrics/AbcSize: - Enabled: false - -# Set the complexity of the metrics -Metrics/PerceivedComplexity: - Max: 10 - -# Set the complexity of the cyle -Metrics/CyclomaticComplexity: - Max: 10 - -################################################################################ -########################## Layout Rules ######################################## -################################################################################ - -# No space makes the method definition shorter and differentiates -# from a regular assignment. -Layout/SpaceAroundEqualsInParameterDefault: - EnforcedStyle: no_space - -# Indenting the chained dots beneath each other is not supported by this cop, -# see https://github.com/bbatsov/rubocop/issues/1633 -Layout/MultilineOperationIndentation: - Enabled: false - -Layout/SpaceInsideBlockBraces: - # The space here provides no real gain in readability while consuming - # horizontal space that could be used for a better parameter name. - # Also {| differentiates better from a hash than { | does. - SpaceBeforeBlockParameters: false - -# No trailing space differentiates better from the block: -# foo} means hash, foo } means block. -Layout/SpaceInsideHashLiteralBraces: - EnforcedStyle: no_space - -################################################################################ -########################### Style Rules ######################################## -################################################################################ - -# Single quotes being faster is hardly measurable and only affects parse time. -# Enforcing double quotes reduces the times where you need to change them -# when introducing an interpolation. Use single quotes only if their semantics -# are needed. -Style/StringLiterals: - EnforcedStyle: double_quotes - -# We do not need to support Ruby 1.9, so this is good to use. -Style/SymbolArray: - Enabled: true - -# Mixing the styles looks just silly. -Style/HashSyntax: - EnforcedStyle: ruby19_no_mixed_keys - -# has_key? and has_value? are far more readable than key? and value? -Style/PreferredHashMethods: - Enabled: false - -# String#% is by far the least verbose and only object oriented variant. -Style/FormatString: - EnforcedStyle: percent - -Style/CollectionMethods: - Enabled: true - PreferredMethods: - # inject seems more common in the community. - reduce: "inject" - -# Either allow this style or don't. Marking it as safe with parenthesis -# is silly. Let's try to live without them for now. -Style/ParenthesesAroundCondition: - AllowSafeAssignment: false - -# A specialized exception class will take one or more arguments -# and construct the message from it. So both variants make sense. -Style/RaiseArgs: - Enabled: false - -# Fail is an alias of raise. Avoid aliases, -# it's more cognitive load for no gain. The argument that fail -# should be used to abort the program is wrong too, -# there's Kernel#abort for that. -Style/SignalException: - EnforcedStyle: only_raise - -# { ... } for multi-line blocks is okay, follow Weirichs rule instead: -# https://web.archive.org/web/20140221124509/http://onestepback.org/index.cgi/Tech/Ruby/BraceVsDoEnd.rdoc -Style/BlockDelimiters: - Enabled: false - -# do / end blocks should be used for side effects, -# methods that run a block for side effects and have -# a useful return value are rare, assign the return -# value to a local variable for those cases. -Style/MethodCalledOnDoEndBlock: - Enabled: true - -# Enforcing the names of variables? To single letter ones? Just no. -Style/SingleLineBlockParams: - Enabled: false - -# Check with yard instead. -Style/Documentation: - Enabled: false - -# Style preference -Style/MethodDefParentheses: - Enabled: false - -################################################################################ -########################### Linter Rules ####################################### -################################################################################ - -# There are valid cases, for example debugging Cucumber steps, -# also they'll fail CI anyway -Lint/Debugger: - Enabled: false - -# Shadowing outer local variables with block parameters is often useful -# to not reinvent a new name for the same thing, it highlights the relation -# between the outer variable and the parameter. The cases where it's actually -# confusing are rare, and usually bad for other reasons already, for example -# because the method is too long. -Lint/ShadowingOuterLocalVariable: - Enabled: false - -# Suppressing exceptions can be perfectly fine, and be it to avoid to -# explicitly type nil into the rescue since that's what you want to return, -# or suppressing LoadError for optional dependencies -Lint/SuppressedException: - Enabled: false - -Lint/AssignmentInCondition: - AllowSafeAssignment: false - -################################################################################ -############################ Naming Rules ###################################### -################################################################################ - -# This is just silly. Calling the argument `other` in all cases makes no sense. -Naming/BinaryOperatorParameterName: - Enabled: false - -################################################################################ +inherit_gem: + rubocop-github: + - config/default.yml