mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-11 18:26:50 +00:00
242 lines
5.2 KiB
YAML
242 lines
5.2 KiB
YAML
# Our Open Food Network style guide.
|
|
#
|
|
# These are the rules we agreed upon and we work towards.
|
|
AllCops:
|
|
NewCops: disable
|
|
SuggestExtensions: false
|
|
TargetRailsVersion: 5.0
|
|
Exclude:
|
|
- 'bin/**/*'
|
|
- 'db/**/*'
|
|
- 'config/**/*'
|
|
- 'script/**/*'
|
|
- 'vendor/**/*'
|
|
- 'node_modules/**/*'
|
|
# Excluding: inadequate Naming/FileName rule rejects GemFile name with camelcase
|
|
- 'engines/web/Gemfile'
|
|
|
|
## OFN SETTINGS
|
|
#
|
|
# Cop settings that have been agreed upon by the OFN community
|
|
|
|
Rails/SkipsModelValidations:
|
|
AllowedMethods:
|
|
- "touch"
|
|
- "touch_all"
|
|
- "update_all"
|
|
- "update_attribute"
|
|
- "update_column"
|
|
- "update_columns"
|
|
|
|
Style/Documentation:
|
|
Enabled: false
|
|
|
|
Style/StringLiterals:
|
|
Enabled: false
|
|
|
|
Style/HashSyntax:
|
|
Enabled: true
|
|
EnforcedStyle: ruby19_no_mixed_keys
|
|
|
|
Style/Send:
|
|
Enabled: true
|
|
|
|
Layout/MultilineMethodCallIndentation:
|
|
Enabled: true
|
|
EnforcedStyle: indented
|
|
|
|
Layout/LineLength:
|
|
Enabled: true
|
|
Max: 100
|
|
|
|
Lint/RaiseException:
|
|
Enabled: true
|
|
|
|
Lint/StructNewOverride:
|
|
Enabled: true
|
|
|
|
Bundler/DuplicatedGem:
|
|
Enabled: false
|
|
|
|
## TEMPORARY/CONTESTED SETTINGS
|
|
#
|
|
# These are still to be decided upon, but recommended for inclusion by
|
|
# oeoeaio after scrutinising offenses the codebase
|
|
|
|
# Don't think this is a big issue, mostly picking up RPSEC scope definitions
|
|
# with lamdas and RSpec '.to change{}' blocks
|
|
Lint/AmbiguousBlockAssociation:
|
|
Enabled: false
|
|
|
|
# Heaps of offences (> 100) in specs, mostly in situations where two or more
|
|
# instances of a model are required, but only one is referenced. Difficult to
|
|
# fix without making the spec look messy or rewriting it.
|
|
# Should definitely fix at some point.
|
|
Lint/UselessAssignment:
|
|
Exclude:
|
|
- spec/**/*
|
|
|
|
## Relaxed.Ruby.Style SETTINGS
|
|
#
|
|
# These styles are a starting point for the conversation around conventions
|
|
# They should be removed or tweaked and moved above as decisions are made
|
|
# NOTE: Cops which did not fail at the time of writing were removed
|
|
|
|
Layout/DotPosition:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styledotposition
|
|
|
|
Layout/SpaceBeforeBlockBraces:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
|
|
|
|
Layout/SpaceInsideParens:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens
|
|
|
|
Style/Alias:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylealias
|
|
|
|
Style/BlockDelimiters:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters
|
|
|
|
Style/CommentAnnotation:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylecommentannotation
|
|
|
|
Style/DoubleNegation:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styledoublenegation
|
|
|
|
Style/FormatString:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styleformatstring
|
|
|
|
Style/HashEachMethods:
|
|
Enabled: false
|
|
|
|
Style/HashTransformKeys:
|
|
Enabled: false
|
|
|
|
Style/HashTransformValues:
|
|
Enabled: false
|
|
|
|
Style/IfUnlessModifier:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier
|
|
|
|
Style/Lambda:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylelambda
|
|
|
|
Style/MultilineBlockChain:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain
|
|
|
|
Style/NegatedIf:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylenegatedif
|
|
|
|
Style/NegatedWhile:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile
|
|
|
|
Style/ParallelAssignment:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styleparallelassignment
|
|
|
|
Style/PercentLiteralDelimiters:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters
|
|
|
|
Style/Semicolon:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylesemicolon
|
|
|
|
Style/SingleLineMethods:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods
|
|
|
|
Style/TrailingCommaInArguments:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainarguments
|
|
|
|
Style/TrailingCommaInArrayLiteral:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainliteral
|
|
|
|
Style/TrailingCommaInHashLiteral:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainliteral
|
|
|
|
Style/WordArray:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#stylewordarray
|
|
|
|
Style/SymbolArray:
|
|
Enabled: false
|
|
StyleGuide: https://rubocop.readthedocs.io/en/latest/cops_style/#stylesymbolarray
|
|
|
|
Lint/AmbiguousRegexpLiteral:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral
|
|
|
|
Lint/AssignmentInCondition:
|
|
Enabled: false
|
|
StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition
|
|
|
|
Metrics/AbcSize:
|
|
Enabled: true
|
|
Max: 15
|
|
|
|
Metrics/BlockLength:
|
|
Enabled: true
|
|
Max: 25
|
|
IgnoredMethods: [
|
|
"class_eval",
|
|
"collection",
|
|
"context",
|
|
"describe",
|
|
"feature",
|
|
"it",
|
|
"member",
|
|
"namespace",
|
|
"resource",
|
|
"resources",
|
|
"scenario",
|
|
"shared_examples",
|
|
]
|
|
|
|
Metrics/BlockNesting:
|
|
Enabled: true
|
|
Max: 3
|
|
|
|
Metrics/ClassLength:
|
|
Enabled: true
|
|
Max: 100
|
|
|
|
Metrics/ModuleLength:
|
|
Enabled: true
|
|
Max: 100
|
|
|
|
Metrics/CyclomaticComplexity:
|
|
Enabled: true
|
|
Max: 6
|
|
|
|
Metrics/MethodLength:
|
|
Enabled: true
|
|
Max: 10
|
|
|
|
Metrics/ParameterLists:
|
|
Enabled: true
|
|
Max: 5
|
|
|
|
Metrics/PerceivedComplexity:
|
|
Enabled: true
|
|
Max: 7
|
|
|
|
Naming/PredicateName:
|
|
Enabled: false
|