mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
211 lines
5.3 KiB
YAML
211 lines
5.3 KiB
YAML
# Our Open Food Network style guide.
|
|
#
|
|
# These are the rules we agreed upon and we work towards. Code Climate uses
|
|
# these rules to rate our code and detect new violations. But when you run
|
|
# rubocop locally, the default configuration file `.rubocop.yml` loads
|
|
# our "todo lists" to ignore all current violations.
|
|
AllCops:
|
|
TargetRubyVersion: 2.1
|
|
TargetRailsVersion: 3.2
|
|
Exclude:
|
|
- '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:
|
|
Enabled: true
|
|
|
|
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
|
|
|
|
Metrics/LineLength:
|
|
Max: 100
|
|
|
|
## 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/**/*
|
|
|
|
# AFAIK, there is no good alternative to dynamic matchers until we upgrade
|
|
# to Rails 4 and can use #find_by. If there is a better approach, let's do it.
|
|
Rails/DynamicFindBy:
|
|
Enabled: false
|
|
|
|
# Same as above, #find_by is not available until Rails 4
|
|
Rails/FindBy:
|
|
Enabled: false
|
|
|
|
# Same as above, #update! is not available until Rails 4
|
|
Rails/ActiveRecordAliases:
|
|
Enabled: false
|
|
|
|
# This should be the programmer's discretion, perhaps we should review all of
|
|
# the uses of it an make specific exceptions though.
|
|
Rails/SkipsModelValidations:
|
|
Enabled: false
|
|
|
|
## 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/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:
|
|
Max: 15
|
|
|
|
Metrics/BlockLength:
|
|
Max: 25
|
|
ExcludedMethods: ["class_eval", "collection", "context", "describe", "it", "member", "namespace", "resource", "resources"]
|
|
|
|
Metrics/BlockNesting:
|
|
Max: 3
|
|
|
|
Metrics/ClassLength:
|
|
Max: 100
|
|
|
|
Metrics/ModuleLength:
|
|
Max: 100
|
|
|
|
Metrics/CyclomaticComplexity:
|
|
Max: 6
|
|
|
|
Metrics/MethodLength:
|
|
Max: 10
|
|
|
|
Metrics/ParameterLists:
|
|
Max: 5
|
|
|
|
Metrics/PerceivedComplexity:
|
|
Max: 7
|