Skip to content

Instantly share code, notes, and snippets.

@dblandin
Created March 17, 2017 00:15
Show Gist options
  • Save dblandin/0fd4a0c33e3c0a5fc713f6059bbaa12e to your computer and use it in GitHub Desktop.
Save dblandin/0fd4a0c33e3c0a5fc713f6059bbaa12e to your computer and use it in GitHub Desktop.
AllCops:
TargetRubyVersion: 2.3
Exclude:
- 'angular/**/*'
- 'bin/*'
- 'db/migrate/*'
- 'db/schema.rb'
- 'db/seeds/*'
- 'db/seed*'
- 'app/models/ability.rb'
#--- If you modify/customize cops, move it to this section to make it clear
Rails:
Enabled: true
# Supports --auto-correct
Rails/HttpPositionalArguments:
Description: Use keyword arguments instead of positional arguments in http method
calls.
Enabled: false
Include:
- spec/**/*
- test/**/*
Rails/Output:
Description: Checks for calls to puts, print, etc.
Enabled: false
Include:
- app/**/*.rb
- config/**/*.rb
- db/**/*.rb
- lib/**/*.rb
Rails/OutputSafety:
Description: The use of `html_safe` or `raw` may be a security risk.
Enabled: false
# Supports --auto-correct
Style/EmptyLinesAroundClassBody:
Description: Keeps track of empty lines around class bodies.
Enabled: false
EnforcedStyle: no_empty_lines
SupportedStyles:
- empty_lines
- no_empty_lines
Style/Documentation:
Description: Document classes and non-namespace modules.
Enabled: false
Style/SingleLineBlockParams:
Description: Enforces the names of some block params.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#reduce-blocks
Enabled: false
Methods:
- reduce:
- a
- e
- inject:
- a
- e
Metrics/BlockLength:
Description: Avoid long blocks with many lines.
Enabled: false
CountComments: false
Max: 25
Metrics/LineLength:
Description: Limit lines to 80 characters.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#80-character-limits
Enabled: true
Max: 100
AllowHeredoc: true
AllowURI: true
URISchemes:
- http
- https
IgnoreCopDirectives: true
Style/ClassAndModuleChildren:
Description: Checks style of children classes and modules.
Enabled: false
EnforcedStyle: nested
SupportedStyles:
- nested
- compact
# Supports --auto-correct
Style/IfUnlessModifier:
Description: Favor modifier if/unless usage when you have a single-line body.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
Enabled: true
MaxLineLength: 100
#--- Unmodified cops below this point
# Type 'Lint':
Lint/AmbiguousOperator:
Description: Checks for ambiguous operators in the first argument of a method invocation
without parentheses.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#parens-as-args
Enabled: true
Lint/AmbiguousRegexpLiteral:
Description: Checks for ambiguous regexp literals in the first argument of a method
invocation without parenthesis.
Enabled: true
Lint/AssignmentInCondition:
Description: Don't use assignment in conditions.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition
Enabled: true
AllowSafeAssignment: true
# Supports --auto-correct
Lint/BlockAlignment:
Description: Align block ends correctly.
Enabled: true
AlignWith: either
SupportedStyles:
- either
- start_of_block
- start_of_line
Lint/CircularArgumentReference:
Description: Don't refer to the keyword argument in the default value.
Enabled: true
Lint/ConditionPosition:
Description: Checks for condition placed in a confusing position relative to the keyword.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#same-line-condition
Enabled: true
# Supports --auto-correct
Lint/Debugger:
Description: Check for debugger calls.
Enabled: true
# Supports --auto-correct
Lint/DefEndAlignment:
Description: Align ends corresponding to defs correctly.
Enabled: true
AlignWith: start_of_line
SupportedStyles:
- start_of_line
- def
AutoCorrect: false
# Supports --auto-correct
Lint/DeprecatedClassMethods:
Description: Check for deprecated class method calls.
Enabled: true
Lint/DuplicateMethods:
Description: Check for duplicate methods calls.
Enabled: true
Lint/DuplicatedKey:
Description: Check for duplicate keys in hash literals.
Enabled: true
Lint/EachWithObjectArgument:
Description: Check for immutable argument given to each_with_object.
Enabled: true
Lint/ElseLayout:
Description: Check for odd code arrangement in an else block.
Enabled: true
Lint/EmptyEnsure:
Description: Checks for empty ensure block.
Enabled: true
Lint/EmptyInterpolation:
Description: Checks for empty string interpolation.
Enabled: true
# Supports --auto-correct
Lint/EndAlignment:
Description: Align ends correctly.
Enabled: true
AlignWith: keyword
SupportedStyles:
- keyword
- variable
- start_of_line
AutoCorrect: false
Lint/EndInMethod:
Description: END blocks should not be placed inside method definitions.
Enabled: true
Lint/EnsureReturn:
Description: Do not use return in an ensure block.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-return-ensure
Enabled: true
Lint/Eval:
Description: The use of eval represents a serious security risk.
Enabled: true
Lint/FloatOutOfRange:
Description: Catches floating-point literals too large or small for Ruby to represent.
Enabled: true
Lint/FormatParameterMismatch:
Description: The number of parameters to format/sprint must match the fields.
Enabled: true
Lint/HandleExceptions:
Description: Don't suppress exception.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
Enabled: true
Lint/ImplicitStringConcatenation:
Description: Checks for adjacent string literals on the same line, which could better
be represented as a single string literal.
Enabled: true
Lint/IneffectiveAccessModifier:
Description: Checks for attempts to use `private` or `protected` to set the visibility
of a class method, which does not work.
Enabled: true
# Supports --auto-correct
Lint/InheritException:
Description: Avoid inheriting from the `Exception` class.
Enabled: true
EnforcedStyle: runtime_error
SupportedStyles:
- runtime_error
- standard_error
Lint/InvalidCharacterLiteral:
Description: Checks for invalid character literals with a non-escaped whitespace character.
Enabled: true
Lint/LiteralInCondition:
Description: Checks of literals used in conditions.
Enabled: true
# Supports --auto-correct
Lint/LiteralInInterpolation:
Description: Checks for literals used in interpolation.
Enabled: true
Lint/Loop:
Description: Use Kernel#loop with break rather than begin/end/until or begin/end/while
for post-loop tests.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#loop-with-break
Enabled: true
Lint/NestedMethodDefinition:
Description: Do not use nested method definitions.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-methods
Enabled: true
Lint/NextWithoutAccumulator:
Description: Do not omit the accumulator when calling `next` in a `reduce`/`inject`
block.
Enabled: true
Lint/NonLocalExitFromIterator:
Description: Do not use return in iterator to cause non-local exit.
Enabled: true
Lint/ParenthesesAsGroupedExpression:
Description: Checks for method calls with a space before the opening parenthesis.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#parens-no-spaces
Enabled: true
# Supports --auto-correct
Lint/PercentStringArray:
Description: Checks for unwanted commas and quotes in %w/%W literals.
Enabled: true
# Supports --auto-correct
Lint/PercentSymbolArray:
Description: Checks for unwanted commas and colons in %i/%I literals.
Enabled: true
Lint/RandOne:
Description: Checks for `rand(1)` calls. Such calls always return `0` and most likely
a mistake.
Enabled: true
Lint/RequireParentheses:
Description: Use parentheses in the method call to avoid confusion about precedence.
Enabled: true
Lint/RescueException:
Description: Avoid rescuing the Exception class.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-blind-rescues
Enabled: true
Lint/ShadowedException:
Description: Avoid rescuing a higher level exception before a lower level exception.
Enabled: true
Lint/ShadowingOuterLocalVariable:
Description: Do not use the same name as outer local variable for block arguments
or block local variables.
Enabled: true
# Supports --auto-correct
Lint/StringConversionInInterpolation:
Description: Checks for Object#to_s usage in string interpolation.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-to-s
Enabled: true
Lint/UnderscorePrefixedVariableName:
Description: Do not use prefix `_` for a variable that is used.
Enabled: true
# Supports --auto-correct
Lint/UnifiedInteger:
Description: Use Integer instead of Fixnum or Bignum
Enabled: true
# Supports --auto-correct
Lint/UnneededDisable:
Description: 'Checks for rubocop:disable comments that can be removed. Note: this
cop is not disabled when disabling all cops. It must be explicitly disabled.'
Enabled: true
# Supports --auto-correct
Lint/UnneededSplatExpansion:
Description: Checks for splat unnecessarily being called on literals
Enabled: true
Lint/UnreachableCode:
Description: Unreachable code.
Enabled: true
# Supports --auto-correct
Lint/UnusedBlockArgument:
Description: Checks for unused block arguments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
Enabled: true
IgnoreEmptyBlocks: true
AllowUnusedKeywordArguments: false
# Supports --auto-correct
Lint/UnusedMethodArgument:
Description: Checks for unused method arguments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
Enabled: true
AllowUnusedKeywordArguments: false
IgnoreEmptyMethods: true
Lint/UselessAccessModifier:
Description: Checks for useless access modifiers.
Enabled: true
ContextCreatingMethods: []
Lint/UselessAssignment:
Description: Checks for useless assignment to a local variable.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
Enabled: true
Lint/UselessComparison:
Description: Checks for comparison of something with itself.
Enabled: true
Lint/UselessElseWithoutRescue:
Description: Checks for useless `else` in `begin..end` without `rescue`.
Enabled: true
Lint/UselessSetterCall:
Description: Checks for useless setter call to a local variable.
Enabled: true
Lint/Void:
Description: Possible use of operator/literal/variable in void context.
Enabled: true
# Type 'Metrics':
Metrics/AbcSize:
Description: A calculated magnitude based on number of assignments, branches, and
conditions.
Reference: http://c2.com/cgi/wiki?AbcMetric
Enabled: true
Max: 20
Metrics/BlockNesting:
Description: Avoid excessive block nesting
StyleGuide: https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count
Enabled: true
Max: 4
Metrics/ClassLength:
Description: Avoid classes longer than 250 lines of code.
Enabled: true
CountComments: false
Max: 250
Metrics/CyclomaticComplexity:
Description: A complexity metric that is strongly correlated to the number of test
cases needed to validate a method.
Enabled: true
Max: 6
Metrics/MethodLength:
Description: Avoid methods longer than 30 lines of code.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#short-methods
Enabled: true
CountComments: false
Max: 30
Metrics/ModuleLength:
Description: Avoid modules longer than 250 lines of code.
Enabled: true
CountComments: false
Max: 250
Metrics/ParameterLists:
Description: Avoid parameter lists longer than three or four parameters.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#too-many-params
Enabled: true
Max: 5
CountKeywordArgs: true
Metrics/PerceivedComplexity:
Description: A complexity metric geared towards measuring complexity for a human reader.
Enabled: true
Max: 7
# Type 'Performance':
# Supports --auto-correct
Performance/CaseWhenSplat:
Description: Place `when` conditions that use splat at the end of the list of `when`
branches.
Enabled: true
# Supports --auto-correct
Performance/Casecmp:
Description: Use `casecmp` rather than `downcase ==`, `upcase ==`, `== downcase`,
or `== upcase`..
Reference: https://github.com/JuanitoFatas/fast-ruby#stringcasecmp-vs-stringdowncase---code
Enabled: true
# Supports --auto-correct
Performance/Count:
Description: Use `count` instead of `select...size`, `reject...size`, `select...count`,
`reject...count`, `select...length`, and `reject...length`.
SafeMode: true
Enabled: true
# Supports --auto-correct
Performance/Detect:
Description: Use `detect` instead of `select.first`, `find_all.first`, `select.last`,
and `find_all.last`.
Reference: https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code
SafeMode: true
Enabled: true
Performance/DoubleStartEndWith:
Description: Use `str.{start,end}_with?(x, ..., y, ...)` instead of `str.{start,end}_with?(x,
...) || str.{start,end}_with?(y, ...)`.
Enabled: true
# Supports --auto-correct
Performance/EndWith:
Description: Use `end_with?` instead of a regex match anchored to the end of a string.
Reference: https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end
AutoCorrect: false
Enabled: true
Performance/FixedSize:
Description: Do not compute the size of statically sized objects except in constants
Enabled: true
# Supports --auto-correct
Performance/FlatMap:
Description: Use `Enumerable#flat_map` instead of `Enumerable#map...Array#flatten(1)`
or `Enumberable#collect..Array#flatten(1)`
Reference: https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code
Enabled: true
EnabledForFlattenWithoutParams: false
# Supports --auto-correct
Performance/HashEachMethods:
Description: Use `Hash#each_key` and `Hash#each_value` instead of `Hash#keys.each`
and `Hash#values.each`.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#hash-each
Enabled: true
AutoCorrect: false
# Supports --auto-correct
Performance/LstripRstrip:
Description: Use `strip` instead of `lstrip.rstrip`.
Enabled: true
# Supports --auto-correct
Performance/RangeInclude:
Description: Use `Range#cover?` instead of `Range#include?`.
Reference: https://github.com/JuanitoFatas/fast-ruby#cover-vs-include-code
Enabled: true
# Supports --auto-correct
Performance/RedundantBlockCall:
Description: Use `yield` instead of `block.call`.
Reference: https://github.com/JuanitoFatas/fast-ruby#proccall-vs-yield-code
Enabled: true
# Supports --auto-correct
Performance/RedundantMatch:
Description: Use `=~` instead of `String#match` or `Regexp#match` in a context where
the returned `MatchData` is not needed.
Enabled: true
# Supports --auto-correct
Performance/RedundantMerge:
Description: Use Hash#[]=, rather than Hash#merge! with a single key-value pair.
Reference: https://github.com/JuanitoFatas/fast-ruby#hashmerge-vs-hash-code
Enabled: true
MaxKeyValuePairs: 2
# Supports --auto-correct
Performance/RedundantSortBy:
Description: Use `sort` instead of `sort_by { |x| x }`.
Enabled: true
# Supports --auto-correct
Performance/ReverseEach:
Description: Use `reverse_each` instead of `reverse.each`.
Reference: https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code
Enabled: true
# Supports --auto-correct
Performance/Sample:
Description: Use `sample` instead of `shuffle.first`, `shuffle.last`, and `shuffle[Fixnum]`.
Reference: https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code
Enabled: true
# Supports --auto-correct
Performance/Size:
Description: Use `size` instead of `count` for counting the number of elements in
`Array` and `Hash`.
Reference: https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code
Enabled: true
# Supports --auto-correct
Performance/SortWithBlock:
Description: Use `sort_by(&:foo)` instead of `sort_by { |a, b| a.foo <=> b.foo }`.
Enabled: true
# Supports --auto-correct
Performance/StartWith:
Description: Use `start_with?` instead of a regex match anchored to the beginning
of a string.
Reference: https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end
AutoCorrect: false
Enabled: true
# Supports --auto-correct
Performance/StringReplacement:
Description: Use `tr` instead of `gsub` when you are replacing the same number of
characters. Use `delete` instead of `gsub` when you are deleting characters.
Reference: https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code
Enabled: true
# Supports --auto-correct
Performance/TimesMap:
Description: Checks for .times.map calls.
Enabled: true
# Type 'Rails':
# Supports --auto-correct
Rails/ActionFilter:
Description: Enforces consistent use of action filter methods.
Enabled: true
EnforcedStyle: action
SupportedStyles:
- action
- filter
Include:
- app/controllers/**/*.rb
Rails/Date:
Description: Checks the correct usage of date aware methods, such as Date.today, Date.current
etc.
Enabled: true
EnforcedStyle: flexible
SupportedStyles:
- strict
- flexible
# Supports --auto-correct
Rails/Delegate:
Description: Prefer delegate method for delegations.
Enabled: true
# Supports --auto-correct
Rails/DelegateAllowBlank:
Description: Do not use allow_blank as an option to delegate.
Enabled: true
# Supports --auto-correct
Rails/DynamicFindBy:
Description: Use `find_by` instead of dynamic `find_by_*`.
StyleGuide: https://github.com/bbatsov/rails-style-guide#find_by
Enabled: true
Whitelist:
- find_by_sql
Rails/Exit:
Description: Favor `fail`, `break`, `return`, etc. over `exit` in application or library
code outside of Rake files to avoid exits during unit testing or running in production.
Enabled: true
Include:
- app/**/*.rb
- config/**/*.rb
- lib/**/*.rb
# Supports --auto-correct
Rails/FindBy:
Description: Prefer find_by over where.first.
StyleGuide: https://github.com/bbatsov/rails-style-guide#find_by
Enabled: true
Include:
- app/models/**/*.rb
# Supports --auto-correct
Rails/FindEach:
Description: Prefer all.find_each over all.find.
StyleGuide: https://github.com/bbatsov/rails-style-guide#find-each
Enabled: true
Include:
- app/models/**/*.rb
Rails/HasAndBelongsToMany:
Description: Prefer has_many :through to has_and_belongs_to_many.
StyleGuide: https://github.com/bbatsov/rails-style-guide#has-many-through
Enabled: true
Include:
- app/models/**/*.rb
Rails/NotNullColumn:
Description: Do not add a NOT NULL column without a default value
Enabled: true
Include:
- db/migrate/*.rb
Rails/Output:
Description: Checks for calls to puts, print, etc.
Enabled: false
Include:
- app/**/*.rb
- config/**/*.rb
- db/**/*.rb
- lib/**/*.rb
# Supports --auto-correct
Rails/PluralizationGrammar:
Description: Checks for incorrect grammar when using methods like `3.day.ago`.
Enabled: true
# Supports --auto-correct
Rails/ReadWriteAttribute:
Description: Checks for read_attribute(:attr) and write_attribute(:attr, val).
StyleGuide: https://github.com/bbatsov/rails-style-guide#read-attribute
Enabled: true
Include:
- app/models/**/*.rb
# Supports --auto-correct
Rails/RequestReferer:
Description: Use consistent syntax for request.referer.
Enabled: true
EnforcedStyle: referer
SupportedStyles:
- referer
- referrer
# Supports --auto-correct
Rails/SafeNavigation:
Description: Use Ruby's safe navigation operator (`&.`) instead of `try!`
Enabled: true
ConvertTry: false
# Supports --auto-correct
Rails/SaveBang:
Description: Identifies possible cases where Active Record save! or related should
be used.
StyleGuide: https://github.com/bbatsov/rails-style-guide#save-bang
Enabled: false
Rails/ScopeArgs:
Description: Checks the arguments of ActiveRecord scopes.
Enabled: true
Include:
- app/models/**/*.rb
Rails/TimeZone:
Description: Checks the correct usage of time zone aware methods.
StyleGuide: https://github.com/bbatsov/rails-style-guide#time
Reference: http://danilenko.org/2012/7/6/rails_timezones
Enabled: true
EnforcedStyle: flexible
SupportedStyles:
- strict
- flexible
# Supports --auto-correct
Rails/UniqBeforePluck:
Description: Prefer the use of uniq or distinct before pluck.
Enabled: true
EnforcedMode: conservative
SupportedModes:
- conservative
- aggressive
AutoCorrect: false
# Supports --auto-correct
Rails/Validation:
Description: Use validates :attribute, hash of validations.
Enabled: true
Include:
- app/models/**/*.rb
# Type 'Security:
# Supports --auto-correct
Security/JSONLoad:
Description: Prefer usage of JSON.parse
Reference: http://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load
Enabled: true
AutoCorrect: false
# Type 'Style' :
# Supports --auto-correct
Style/AccessModifierIndentation:
Description: Check indentation of private/protected visibility modifiers.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected
Enabled: true
EnforcedStyle: indent
SupportedStyles:
- outdent
- indent
IndentationWidth:
Style/AccessorMethodName:
Description: Check the naming of accessor methods for get_/set_.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#accessor_mutator_method_names
Enabled: true
# Supports --auto-correct
Style/Alias:
Description: Use alias_method instead of alias.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#alias-method
Enabled: true
EnforcedStyle: prefer_alias
SupportedStyles:
- prefer_alias
- prefer_alias_method
# Supports --auto-correct
Style/AlignArray:
Description: Align the elements of an array literal if they span more than one line.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays
Enabled: true
# Supports --auto-correct
Style/AlignHash:
Description: Align the elements of a hash literal if they span more than one line.
Enabled: true
EnforcedHashRocketStyle: key
EnforcedColonStyle: key
EnforcedLastArgumentHashStyle: always_inspect
SupportedLastArgumentHashStyles:
- always_inspect
- always_ignore
- ignore_implicit
- ignore_explicit
# Supports --auto-correct
Style/AlignParameters:
Description: Align the parameters of a method call if they span more than one line.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-double-indent
Enabled: true
EnforcedStyle: with_first_parameter
SupportedStyles:
- with_first_parameter
- with_fixed_indentation
IndentationWidth:
# Supports --auto-correct
Style/AndOr:
Description: Use &&/|| instead of and/or.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-and-or-or
Enabled: true
EnforcedStyle: always
SupportedStyles:
- always
- conditionals
# Supports --auto-correct
Style/ArrayJoin:
Description: Use Array#join instead of Array#*.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#array-join
Enabled: true
Style/AsciiComments:
Description: Use only ascii symbols in comments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#english-comments
Enabled: true
Style/AsciiIdentifiers:
Description: Use only ascii symbols in identifiers.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#english-identifiers
Enabled: true
# Supports --auto-correct
Style/Attr:
Description: Checks for uses of Module#attr.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#attr
Enabled: true
Style/AutoResourceCleanup:
Description: Suggests the usage of an auto resource cleanup version of a method (if
available).
Enabled: false
# Supports --auto-correct
Style/BarePercentLiterals:
Description: Checks if usage of %() or %Q() matches configuration.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand
Enabled: true
EnforcedStyle: bare_percent
SupportedStyles:
- percent_q
- bare_percent
Style/BeginBlock:
Description: Avoid the use of BEGIN blocks.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks
Enabled: true
# Supports --auto-correct
Style/BlockComments:
Description: Do not use block comments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-block-comments
Enabled: true
# Supports --auto-correct
Style/BlockDelimiters:
Description: Avoid using {...} for multi-line blocks (multiline chaining is always
ugly). Prefer {...} over do...end for single-line blocks.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
Enabled: true
EnforcedStyle: line_count_based
SupportedStyles:
- line_count_based
- semantic
- braces_for_chaining
ProceduralMethods:
- benchmark
- bm
- bmbm
- create
- each_with_object
- measure
- new
- realtime
- tap
- with_object
FunctionalMethods:
- let
- let!
- subject
- watch
IgnoredMethods:
- lambda
- proc
- it
# Supports --auto-correct
Style/BlockEndNewline:
Description: Put end statement of multiline block on its own line.
Enabled: true
# Supports --auto-correct
Style/BracesAroundHashParameters:
Description: Enforce braces style around hash parameters.
Enabled: true
EnforcedStyle: no_braces
SupportedStyles:
- braces
- no_braces
- context_dependent
Style/CaseEquality:
Description: Avoid explicit use of the case equality operator(===).
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-case-equality
Enabled: true
# Supports --auto-correct
Style/CaseIndentation:
Description: Indentation of when in a case/when/[else/]end.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-when-to-case
Enabled: true
IndentWhenRelativeTo: case
SupportedStyles:
- case
- end
IndentOneStep: false
IndentationWidth:
# Supports --auto-correct
Style/CharacterLiteral:
Description: Checks for uses of character literals.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-character-literals
Enabled: true
Style/ClassAndModuleCamelCase:
Description: Use CamelCase for classes and modules.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#camelcase-classes
Enabled: true
Style/ClassAndModuleChildren:
Description: Checks style of children classes and modules.
Enabled: false
EnforcedStyle: nested
SupportedStyles:
- nested
- compact
# Supports --auto-correct
Style/ClassCheck:
Description: Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.
Enabled: true
EnforcedStyle: is_a?
SupportedStyles:
- is_a?
- kind_of?
# Supports --auto-correct
Style/ClassMethods:
Description: Use self when defining module/class methods.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#def-self-class-methods
Enabled: true
Style/ClassVars:
Description: Avoid the use of class variables.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-class-vars
Enabled: true
# Supports --auto-correct
Style/ClosingParenthesisIndentation:
Description: Checks the indentation of hanging closing parentheses.
Enabled: true
# Supports --auto-correct
Style/CollectionMethods:
Description: Preferred collection methods.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
Enabled: false
PreferredMethods:
collect: map
collect!: map!
inject: reduce
detect: find
find_all: select
# Supports --auto-correct
Style/ColonMethodCall:
Description: 'Do not use :: for method call.'
StyleGuide: https://github.com/bbatsov/ruby-style-guide#double-colons
Enabled: true
# Supports --auto-correct
Style/CommandLiteral:
Description: Use `` or %x around command literals.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-x
Enabled: true
EnforcedStyle: backticks
SupportedStyles:
- backticks
- percent_x
- mixed
AllowInnerBackticks: false
# Supports --auto-correct
Style/CommentAnnotation:
Description: Checks formatting of annotation comments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#annotate-keywords
Enabled: true
Keywords:
- TODO
- FIXME
- OPTIMIZE
- HACK
- REVIEW
# Supports --auto-correct
Style/CommentIndentation:
Description: Indentation of comments.
Enabled: true
# Supports --auto-correct
Style/ConditionalAssignment:
Description: Use the return value of `if` and `case` statements for assignment to
a variable and variable comparison instead of assigning that variable inside of
each branch.
Enabled: true
EnforcedStyle: assign_to_condition
SupportedStyles:
- assign_to_condition
- assign_inside_condition
SingleLineConditionsOnly: true
Style/ConstantName:
Description: Constants should use SCREAMING_SNAKE_CASE.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#screaming-snake-case
Enabled: true
# Supports --auto-correct
Style/Copyright:
Description: Include a copyright notice in each file before any code.
Enabled: false
Notice: "^Copyright (\\(c\\) )?2[0-9]{3} .+"
AutocorrectNotice: ''
# Supports --auto-correct
Style/DefWithParentheses:
Description: Use def with parentheses when there are arguments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#method-parens
Enabled: true
Style/Documentation:
Description: Document classes and non-namespace modules.
Enabled: false
Style/DocumentationMethod:
Description: Public methods.
Enabled: false
RequireForNonPublicMethods: false
# Supports --auto-correct
Style/DotPosition:
Description: Checks the position of the dot in multi-line method calls.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains
Enabled: true
EnforcedStyle: leading
SupportedStyles:
- leading
- trailing
Style/DoubleNegation:
Description: Checks for uses of double negation (!!).
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-bang-bang
Enabled: true
# Supports --auto-correct
Style/EachForSimpleLoop:
Description: Use `Integer#times` for a simple loop which iterates a fixed number of
times.
Enabled: true
# Supports --auto-correct
Style/EachWithObject:
Description: Prefer `each_with_object` over `inject` or `reduce`.
Enabled: true
# Supports --auto-correct
Style/ElseAlignment:
Description: Align elses and elsifs correctly.
Enabled: true
# Supports --auto-correct
Style/EmptyCaseCondition:
Description: Avoid empty condition in case statements.
Enabled: true
# Supports --auto-correct
Style/EmptyElse:
Description: Avoid empty else-clauses.
Enabled: true
EnforcedStyle: both
SupportedStyles:
- empty
- nil
- both
# Supports --auto-correct
Style/EmptyLineBetweenDefs:
Description: Use empty lines between defs.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods
Enabled: true
AllowAdjacentOneLineDefs: false
# Supports --auto-correct
Style/EmptyLines:
Description: Don't use several empty lines in a row.
Enabled: true
# Supports --auto-correct
Style/EmptyLinesAroundAccessModifier:
Description: Keep blank lines around access modifiers.
Enabled: true
# Supports --auto-correct
Style/EmptyLinesAroundBlockBody:
Description: Keeps track of empty lines around block bodies.
Enabled: true
EnforcedStyle: no_empty_lines
SupportedStyles:
- empty_lines
- no_empty_lines
# Supports --auto-correct
Style/EmptyLinesAroundMethodBody:
Description: Keeps track of empty lines around method bodies.
Enabled: true
# Supports --auto-correct
Style/EmptyLinesAroundModuleBody:
Description: Keeps track of empty lines around module bodies.
Enabled: true
EnforcedStyle: no_empty_lines
SupportedStyles:
- empty_lines
- no_empty_lines
# Supports --auto-correct
Style/EmptyLiteral:
Description: Prefer literals to Array.new/Hash.new/String.new.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#literal-array-hash
Enabled: true
# Supports --auto-correct
Style/Encoding:
Description: Use UTF-8 as the source file encoding.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#utf-8
Enabled: false
EnforcedStyle: never
SupportedStyles:
- when_needed
- always
- never
AutoCorrectEncodingComment: "# encoding: utf-8"
Style/EndBlock:
Description: Avoid the use of END blocks.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-END-blocks
Enabled: true
Style/EndOfLine:
Description: Use Unix-style line endings.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#crlf
Enabled: true
# Supports --auto-correct
Style/EvenOdd:
Description: Favor the use of Fixnum#even? && Fixnum#odd?
StyleGuide: https://github.com/bbatsov/ruby-style-guide#predicate-methods
Enabled: true
# Supports --auto-correct
Style/ExtraSpacing:
Description: Do not use unnecessary spacing.
Enabled: true
AllowForAlignment: true
ForceEqualSignAlignment: false
Style/FileName:
Description: Use snake_case for source file names.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-files
Enabled: true
Exclude: []
ExpectMatchingDefinition: false
Regex:
IgnoreExecutableScripts: true
# Supports --auto-correct
Style/FirstArrayElementLineBreak:
Description: Checks for a line break before the first element in a multi-line array.
Enabled: false
# Supports --auto-correct
Style/FirstHashElementLineBreak:
Description: Checks for a line break before the first element in a multi-line hash.
Enabled: false
# Supports --auto-correct
Style/FirstMethodArgumentLineBreak:
Description: Checks for a line break before the first argument in a multi-line method
call.
Enabled: false
# Supports --auto-correct
Style/FirstMethodParameterLineBreak:
Description: Checks for a line break before the first parameter in a multi-line method
parameter definition.
Enabled: false
# Supports --auto-correct
Style/FirstParameterIndentation:
Description: Checks the indentation of the first parameter in a method call.
Enabled: true
EnforcedStyle: special_for_inner_method_call_in_parentheses
SupportedStyles:
- consistent
- special_for_inner_method_call
- special_for_inner_method_call_in_parentheses
IndentationWidth:
Style/FlipFlop:
Description: Checks for flip flops
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-flip-flops
Enabled: true
Style/For:
Description: Checks use of for or each in multiline loops.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-for-loops
Enabled: true
EnforcedStyle: each
SupportedStyles:
- for
- each
Style/FormatString:
Description: Enforce the use of Kernel#sprintf, Kernel#format or String#%.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#sprintf
Enabled: true
EnforcedStyle: format
SupportedStyles:
- format
- sprintf
- percent
# Supports --auto-correct
Style/FrozenStringLiteralComment:
Description: Add the frozen_string_literal comment to the top of files to help transition
from Ruby 2.3.0 to Ruby 3.0.
Enabled: false
EnforcedStyle: when_needed
SupportedStyles:
- when_needed
- always
Style/GlobalVars:
Description: Do not introduce global variables.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#instance-vars
Reference: http://www.zenspider.com/Languages/Ruby/QuickRef.html
Enabled: true
AllowedVariables: []
Style/GuardClause:
Description: Check for conditionals that can be replaced with guard clauses
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
Enabled: true
MinBodyLength: 1
# Supports --auto-correct
Style/HashSyntax:
Description: 'Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax { :a => 1,
:b => 2 }.'
StyleGuide: https://github.com/bbatsov/ruby-style-guide#hash-literals
Enabled: true
EnforcedStyle: ruby19
SupportedStyles:
- ruby19
- hash_rockets
- no_mixed_keys
- ruby19_no_mixed_keys
UseHashRocketsWithSymbolValues: false
PreferHashRocketsForNonAlnumEndingSymbols: false
Style/IdenticalConditionalBranches:
Description: Checks that conditional statements do not have an identical line at the
end of each branch, which can validly be moved out of the conditional.
Enabled: true
Style/IfInsideElse:
Description: Finds if nodes inside else, which can be converted to elsif.
Enabled: true
# Supports --auto-correct
Style/IfUnlessModifier:
Description: Favor modifier if/unless usage when you have a single-line body.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
Enabled: true
MaxLineLength: 100
Style/IfUnlessModifierOfIfUnless:
Description: Avoid modifier if/unless usage on conditionals.
Enabled: true
Style/IfWithSemicolon:
Description: Do not use if x; .... Use the ternary operator instead.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs
Enabled: true
Style/ImplicitRuntimeError:
Description: Use `raise` or `fail` with an explicit exception class and message, rather
than just a message.
Enabled: false
# Supports --auto-correct
Style/IndentArray:
Description: Checks the indentation of the first element in an array literal.
Enabled: true
EnforcedStyle: special_inside_parentheses
SupportedStyles:
- special_inside_parentheses
- consistent
- align_brackets
IndentationWidth:
# Supports --auto-correct
Style/IndentAssignment:
Description: Checks the indentation of the first line of the right-hand-side of a
multi-line assignment.
Enabled: true
IndentationWidth:
# Supports --auto-correct
Style/IndentHash:
Description: Checks the indentation of the first key in a hash literal.
Enabled: true
EnforcedStyle: special_inside_parentheses
SupportedStyles:
- special_inside_parentheses
- consistent
- align_braces
IndentationWidth:
# Supports --auto-correct
Style/IndentationConsistency:
Description: Keep indentation straight.
Enabled: true
EnforcedStyle: normal
SupportedStyles:
- normal
- rails
# Supports --auto-correct
Style/IndentationWidth:
Description: Use 2 spaces for indentation.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
Enabled: true
Width: 2
# Supports --auto-correct
Style/InfiniteLoop:
Description: Use Kernel#loop for infinite loops.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#infinite-loop
Enabled: true
# Supports --auto-correct
Style/InitialIndentation:
Description: Checks the indentation of the first non-blank non-comment line in a file.
Enabled: true
Style/InlineComment:
Description: Avoid trailing inline comments.
Enabled: false
# Supports --auto-correct
Style/Lambda:
Description: Use the new lambda literal syntax for single-line blocks.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#lambda-multi-line
Enabled: true
EnforcedStyle: line_count_dependent
SupportedStyles:
- line_count_dependent
- lambda
- literal
# Supports --auto-correct
Style/LambdaCall:
Description: Use lambda.call(...) instead of lambda.(...).
StyleGuide: https://github.com/bbatsov/ruby-style-guide#proc-call
Enabled: true
EnforcedStyle: call
SupportedStyles:
- call
- braces
# Supports --auto-correct
Style/LeadingCommentSpace:
Description: Comments should start with a space.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#hash-space
Enabled: true
# Supports --auto-correct
Style/LineEndConcatenation:
Description: Use \ instead of + or << to concatenate two string literals at line end.
Enabled: true
# Supports --auto-correct
Style/MethodCallParentheses:
Description: Do not use parentheses for method calls with no arguments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-args-no-parens
Enabled: true
Style/MethodCalledOnDoEndBlock:
Description: Avoid chaining a method call on a do...end block.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
Enabled: false
# Supports --auto-correct
Style/MethodDefParentheses:
Description: Checks if the method definitions have or don't have parentheses.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#method-parens
Enabled: true
EnforcedStyle: require_parentheses
SupportedStyles:
- require_parentheses
- require_no_parentheses
- require_no_parentheses_except_multiline
Style/MethodMissing:
Description: Avoid using `method_missing`.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-method-missing
Enabled: true
Style/MethodName:
Description: Use the configured style when naming methods.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars
Enabled: true
EnforcedStyle: snake_case
SupportedStyles:
- snake_case
- camelCase
Style/MissingElse:
Description: Require if/case expressions to have an else branches. If enabled, it
is recommended that Style/UnlessElse and Style/EmptyElse be enabled. This will conflict
with Style/EmptyElse if Style/EmptyElse is configured to style "both"
Enabled: false
EnforcedStyle: both
SupportedStyles:
- if
- case
- both
Style/ModuleFunction:
Description: Checks for usage of `extend self` in modules.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#module-function
Enabled: true
EnforcedStyle: module_function
SupportedStyles:
- module_function
- extend_self
# Supports --auto-correct
Style/MultilineArrayBraceLayout:
Description: Checks that the closing brace in an array literal is either on the same
line as the last array element, or a new line.
Enabled: true
EnforcedStyle: symmetrical
SupportedStyles:
- symmetrical
- new_line
- same_line
# Supports --auto-correct
Style/MultilineAssignmentLayout:
Description: Check for a newline after the assignment operator in multi-line assignments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-conditional-assignment
Enabled: false
SupportedTypes:
- block
- case
- class
- if
- kwbegin
- module
EnforcedStyle: new_line
SupportedStyles:
- same_line
- new_line
Style/MultilineBlockChain:
Description: Avoid multi-line chains of blocks.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#single-line-blocks
Enabled: true
# Supports --auto-correct
Style/MultilineBlockLayout:
Description: Ensures newlines after multiline block do statements.
Enabled: true
# Supports --auto-correct
Style/MultilineHashBraceLayout:
Description: Checks that the closing brace in a hash literal is either on the same
line as the last hash element, or a new line.
Enabled: true
EnforcedStyle: symmetrical
SupportedStyles:
- symmetrical
- new_line
- same_line
# Supports --auto-correct
Style/MultilineIfThen:
Description: Do not use then for multi-line if/unless.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-then
Enabled: true
# Supports --auto-correct
Style/MultilineMemoization:
Description: Wrap multiline memoizations in a `begin` and `end` block.
Enabled: true
# Supports --auto-correct
Style/MultilineMethodCallBraceLayout:
Description: Checks that the closing brace in a method call is either on the same
line as the last method argument, or a new line.
Enabled: true
EnforcedStyle: symmetrical
SupportedStyles:
- symmetrical
- new_line
- same_line
# Supports --auto-correct
Style/MultilineMethodCallIndentation:
Description: Checks indentation of method calls with the dot operator that span more
than one line.
Enabled: true
EnforcedStyle: aligned
SupportedStyles:
- aligned
- indented
- indented_relative_to_receiver
IndentationWidth:
# Supports --auto-correct
Style/MultilineMethodDefinitionBraceLayout:
Description: Checks that the closing brace in a method definition is either on the
same line as the last method parameter, or a new line.
Enabled: true
EnforcedStyle: symmetrical
SupportedStyles:
- symmetrical
- new_line
- same_line
# Supports --auto-correct
Style/MultilineOperationIndentation:
Description: Checks indentation of binary operations that span more than one line.
Enabled: true
EnforcedStyle: aligned
SupportedStyles:
- aligned
- indented
IndentationWidth:
Style/MultilineTernaryOperator:
Description: 'Avoid multi-line ?: (the ternary operator); use if/unless instead.'
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary
Enabled: true
# Supports --auto-correct
Style/MutableConstant:
Description: Do not assign mutable objects to constants.
Enabled: true
# Supports --auto-correct
Style/NegatedIf:
Description: Favor unless over if for negative conditions (or control flow or).
StyleGuide: https://github.com/bbatsov/ruby-style-guide#unless-for-negatives
Enabled: true
# Supports --auto-correct
Style/NegatedWhile:
Description: Favor until over while for negative conditions.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#until-for-negatives
Enabled: true
# Supports --auto-correct
Style/NestedModifier:
Description: Avoid using nested modifiers.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-modifiers
Enabled: true
# Supports --auto-correct
Style/NestedParenthesizedCalls:
Description: Parenthesize method calls which are nested inside the argument list of
another parenthesized method call.
Enabled: true
Style/NestedTernaryOperator:
Description: Use one expression per branch in a ternary operator.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-ternary
Enabled: true
# Supports --auto-correct
Style/Next:
Description: Use `next` to skip iteration instead of a condition at the end.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
Enabled: true
EnforcedStyle: skip_modifier_ifs
MinBodyLength: 3
SupportedStyles:
- skip_modifier_ifs
- always
# Supports --auto-correct
Style/NilComparison:
Description: Prefer x.nil? to x == nil.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#predicate-methods
Enabled: true
# Supports --auto-correct
Style/NonNilCheck:
Description: Checks for redundant nil checks.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks
Enabled: true
IncludeSemanticChanges: false
# Supports --auto-correct
Style/Not:
Description: Use ! instead of not.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#bang-not-not
Enabled: true
# Supports --auto-correct
Style/NumericLiteralPrefix:
Description: Use smallcase prefixes for numeric literals.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#numeric-literal-prefixes
Enabled: true
EnforcedOctalStyle: zero_with_o
SupportedOctalStyles:
- zero_with_o
- zero_only
# Supports --auto-correct
Style/NumericLiterals:
Description: Add underscores to large numeric literals to improve their readability.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics
Enabled: true
MinDigits: 5
# Supports --auto-correct
Style/NumericPredicate:
Description: Checks for the use of predicate- or comparison methods for numeric comparisons.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#predicate-methods
AutoCorrect: false
Enabled: true
EnforcedStyle: predicate
SupportedStyles:
- predicate
- comparison
Exclude:
- 'spec/**/*'
# Supports --auto-correct
Style/OneLineConditional:
Description: Favor the ternary operator(?:) over if/then/else/end constructs.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#ternary-operator
Enabled: true
Style/OpMethod:
Description: When defining binary operators, name the argument other.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#other-arg
Enabled: true
Style/OptionHash:
Description: Don't use option hashes when you can use keyword arguments.
Enabled: false
SuspiciousParamNames:
- options
- opts
- args
- params
- parameters
Style/OptionalArguments:
Description: Checks for optional arguments that do not appear at the end of the argument
list
StyleGuide: https://github.com/bbatsov/ruby-style-guide#optional-arguments
Enabled: true
# Supports --auto-correct
Style/ParallelAssignment:
Description: Check for simple usages of parallel assignment. It will only warn when
the number of variables matches on both sides of the assignment. This also provides
performance benefits
StyleGuide: https://github.com/bbatsov/ruby-style-guide#parallel-assignment
Enabled: true
# Supports --auto-correct
Style/ParenthesesAroundCondition:
Description: Don't use parentheses around the condition of an if/unless/while.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-parens-if
Enabled: true
AllowSafeAssignment: true
# Supports --auto-correct
Style/PercentLiteralDelimiters:
Description: Use `%`-literal delimiters consistently
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-literal-braces
Enabled: true
PreferredDelimiters:
"%": "()"
"%i": "()"
"%q": "()"
"%Q": "()"
"%r": "{}"
"%s": "()"
"%w": "()"
"%W": "()"
"%x": "()"
# Supports --auto-correct
Style/PercentQLiterals:
Description: Checks if uses of %Q/%q match the configured preference.
Enabled: true
EnforcedStyle: lower_case_q
SupportedStyles:
- lower_case_q
- upper_case_q
# Supports --auto-correct
Style/PerlBackrefs:
Description: Avoid Perl-style regex back references.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers
Enabled: true
Style/PredicateName:
Description: Check the names of predicate methods.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
Enabled: true
NamePrefix:
- is_
- has_
- have_
NamePrefixBlacklist:
- is_
- has_
- have_
NameWhitelist:
- is_a?
# Supports --auto-correct
Style/PreferredHashMethods:
Description: Checks use of `has_key?` and `has_value?` Hash methods.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#hash-key
Enabled: true
EnforcedStyle: short
SupportedStyles:
- short
- verbose
# Supports --auto-correct
Style/Proc:
Description: Use proc instead of Proc.new.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#proc
Enabled: true
# Supports --auto-correct
Style/RaiseArgs:
Description: Checks the arguments passed to raise/fail.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#exception-class-messages
Enabled: true
EnforcedStyle: exploded
SupportedStyles:
- compact
- exploded
# Supports --auto-correct
Style/RedundantBegin:
Description: Don't use begin blocks when they are not needed.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#begin-implicit
Enabled: true
# Supports --auto-correct
Style/RedundantException:
Description: Checks for an obsolete RuntimeException argument in raise/fail.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror
Enabled: true
# Supports --auto-correct
Style/RedundantFreeze:
Description: Checks usages of Object#freeze on immutable objects.
Enabled: true
# Supports --auto-correct
Style/RedundantParentheses:
Description: Checks for parentheses that seem not to serve any purpose.
Enabled: true
# Supports --auto-correct
Style/RedundantReturn:
Description: Don't use return where it's not required.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-explicit-return
Enabled: true
AllowMultipleReturnValues: false
# Supports --auto-correct
Style/RedundantSelf:
Description: Don't use self where it's not needed.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-self-unless-required
Enabled: true
# Supports --auto-correct
Style/RegexpLiteral:
Description: Use / or %r around regular expressions.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-r
Enabled: true
EnforcedStyle: slashes
SupportedStyles:
- slashes
- percent_r
- mixed
AllowInnerSlashes: false
# Supports --auto-correct
Style/RescueEnsureAlignment:
Description: Align rescues and ensures correctly.
Enabled: true
# Supports --auto-correct
Style/RescueModifier:
Description: Avoid using rescue in its modifier form.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers
Enabled: true
# Supports --auto-correct
Style/SafeNavigation:
Description: This cop transforms usages of a method call safeguarded by a check for
the existance of the object to safe navigation (`&.`).
Enabled: true
ConvertCodeThatCanStartToReturnNil: false
# Supports --auto-correct
Style/SelfAssignment:
Description: Checks for places where self-assignment shorthand should have been used.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#self-assignment
Enabled: true
# Supports --auto-correct
Style/Semicolon:
Description: Don't use semicolons to terminate expressions.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-semicolon
Enabled: true
AllowAsExpressionSeparator: false
Style/Send:
Description: Prefer `Object#__send__` or `Object#public_send` to `send`, as `send`
may overlap with existing methods.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#prefer-public-send
Enabled: false
# Supports --auto-correct
Style/SignalException:
Description: Checks for proper usage of fail and raise.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#fail-method
Enabled: true
EnforcedStyle: only_raise
SupportedStyles:
- only_raise
- only_fail
- semantic
# Supports --auto-correct
Style/SingleLineMethods:
Description: Avoid single-line methods.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-single-line-methods
Enabled: true
AllowIfMethodIsEmpty: true
# Supports --auto-correct
Style/SpaceAfterColon:
Description: Use spaces after colons.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
Enabled: true
# Supports --auto-correct
Style/SpaceAfterComma:
Description: Use spaces after commas.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
Enabled: true
# Supports --auto-correct
Style/SpaceAfterMethodName:
Description: Do not put a space between a method name and the opening parenthesis
in a method definition.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#parens-no-spaces
Enabled: true
# Supports --auto-correct
Style/SpaceAfterNot:
Description: Tracks redundant space after the ! operator.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-space-bang
Enabled: true
# Supports --auto-correct
Style/SpaceAfterSemicolon:
Description: Use spaces after semicolons.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
Enabled: true
# Supports --auto-correct
Style/SpaceAroundBlockParameters:
Description: Checks the spacing inside and after block parameters pipes.
Enabled: true
EnforcedStyleInsidePipes: no_space
SupportedStyles:
- space
- no_space
# Supports --auto-correct
Style/SpaceAroundEqualsInParameterDefault:
Description: Checks that the equals signs in parameter default assignments have or
don't have surrounding space depending on configuration.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-around-equals
Enabled: true
EnforcedStyle: space
SupportedStyles:
- space
- no_space
# Supports --auto-correct
Style/SpaceAroundKeyword:
Description: Use spaces around keywords.
Enabled: true
# Supports --auto-correct
Style/SpaceAroundOperators:
Description: Use a single space around operators.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
Enabled: true
AllowForAlignment: true
# Supports --auto-correct
Style/SpaceBeforeBlockBraces:
Description: Checks that the left block brace has or doesn't have space before it.
Enabled: true
EnforcedStyle: space
SupportedStyles:
- space
- no_space
# Supports --auto-correct
Style/SpaceBeforeComma:
Description: No spaces before commas.
Enabled: true
# Supports --auto-correct
Style/SpaceBeforeComment:
Description: Checks for missing space between code and a comment on the same line.
Enabled: true
# Supports --auto-correct
Style/SpaceBeforeFirstArg:
Description: Checks that exactly one space is used between a method name and the first
argument for method calls without parentheses.
Enabled: true
AllowForAlignment: true
# Supports --auto-correct
Style/SpaceBeforeSemicolon:
Description: No spaces before semicolons.
Enabled: true
# Supports --auto-correct
Style/SpaceInsideArrayPercentLiteral:
Description: No unnecessary additional spaces between elements in %i/%w literals.
Enabled: true
# Supports --auto-correct
Style/SpaceInsideBlockBraces:
Description: Checks that block braces have or don't have surrounding space. For blocks
taking parameters, checks that the left brace has or doesn't have trailing space.
Enabled: true
EnforcedStyle: space
SupportedStyles:
- space
- no_space
EnforcedStyleForEmptyBraces: no_space
SpaceBeforeBlockParameters: true
# Supports --auto-correct
Style/SpaceInsideBrackets:
Description: No spaces after [ or before ].
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-spaces-braces
Enabled: true
# Supports --auto-correct
Style/SpaceInsideHashLiteralBraces:
Description: Use spaces inside hash literal braces - or don't.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-operators
Enabled: true
EnforcedStyle: space
EnforcedStyleForEmptyBraces: no_space
SupportedStyles:
- space
- no_space
- compact
# Supports --auto-correct
Style/SpaceInsideParens:
Description: No spaces after ( or before ).
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-spaces-braces
Enabled: true
# Supports --auto-correct
Style/SpaceInsidePercentLiteralDelimiters:
Description: No unnecessary spaces inside delimiters of %i/%w/%x literals.
Enabled: true
# Supports --auto-correct
Style/SpaceInsideRangeLiteral:
Description: No spaces inside range literals.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals
Enabled: true
# Supports --auto-correct
Style/SpaceInsideStringInterpolation:
Description: Checks for padding/surrounding spaces inside string interpolation.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#string-interpolation
Enabled: true
EnforcedStyle: no_space
SupportedStyles:
- space
- no_space
# Supports --auto-correct
Style/SpecialGlobalVars:
Description: Avoid Perl-style global variables.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms
Enabled: true
EnforcedStyle: use_english_names
SupportedStyles:
- use_perl_names
- use_english_names
# Supports --auto-correct
Style/StabbyLambdaParentheses:
Description: Check for the usage of parentheses around stabby lambda arguments.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#stabby-lambda-with-args
Enabled: true
EnforcedStyle: require_parentheses
SupportedStyles:
- require_parentheses
- require_no_parentheses
# Supports --auto-correct
Style/StringLiterals:
Description: Checks if uses of quotes match the configured preference.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
Enabled: true
EnforcedStyle: single_quotes
SupportedStyles:
- single_quotes
- double_quotes
ConsistentQuotesInMultiline: false
# Supports --auto-correct
Style/StringLiteralsInInterpolation:
Description: Checks if uses of quotes inside expressions in interpolated strings match
the configured preference.
Enabled: true
EnforcedStyle: single_quotes
SupportedStyles:
- single_quotes
- double_quotes
# Supports --auto-correct
Style/StringMethods:
Description: Checks if configured preferred methods are used over non-preferred.
Enabled: false
PreferredMethods:
intern: to_sym
Style/StructInheritance:
Description: Checks for inheritance from Struct.new.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new
Enabled: true
# Supports --auto-correct
Style/SymbolArray:
Description: Use %i or %I for arrays of symbols.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-i
Enabled: false
EnforcedStyle: percent
SupportedStyles:
- percent
- brackets
# Supports --auto-correct
Style/SymbolLiteral:
Description: Use plain symbols instead of string symbols when possible.
Enabled: true
# Supports --auto-correct
Style/SymbolProc:
Description: Use symbols as procs instead of blocks when possible.
Enabled: true
IgnoredMethods:
- respond_to
- define_method
# Supports --auto-correct
Style/Tab:
Description: No hard tabs.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
Enabled: true
# Supports --auto-correct
Style/TernaryParentheses:
Description: Checks for use of parentheses around ternary conditions.
Enabled: true
EnforcedStyle: require_no_parentheses
SupportedStyles:
- require_parentheses
- require_no_parentheses
AllowSafeAssignment: true
# Supports --auto-correct
Style/TrailingBlankLines:
Description: Checks trailing blank lines and final newline.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#newline-eof
Enabled: true
EnforcedStyle: final_newline
SupportedStyles:
- final_newline
- final_blank_line
# Supports --auto-correct
Style/TrailingCommaInArguments:
Description: Checks for trailing comma in parameter lists.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-trailing-params-comma
Enabled: true
EnforcedStyleForMultiline: no_comma
SupportedStyles:
- comma
- consistent_comma
- no_comma
# Supports --auto-correct
Style/TrailingCommaInLiteral:
Description: Checks for trailing comma in literals.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas
Enabled: true
EnforcedStyleForMultiline: no_comma
SupportedStyles:
- comma
- consistent_comma
- no_comma
# Supports --auto-correct
Style/TrailingUnderscoreVariable:
Description: Checks for the usage of unneeded trailing underscores at the end of parallel
variable assignment.
AllowNamedUnderscoreVariables: true
Enabled: true
# Supports --auto-correct
Style/TrailingWhitespace:
Description: Avoid trailing whitespace.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace
Enabled: true
# Supports --auto-correct
Style/TrivialAccessors:
Description: Prefer attr_* methods to trivial readers/writers.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#attr_family
Enabled: true
ExactNameMatch: true
AllowPredicates: true
AllowDSLWriters: false
IgnoreClassMethods: false
Whitelist:
- 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
# Supports --auto-correct
Style/UnlessElse:
Description: Do not use unless with else. Rewrite these with the positive case first.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-else-with-unless
Enabled: true
# Supports --auto-correct
Style/UnneededCapitalW:
Description: Checks for %W when interpolation is not needed.
Enabled: true
# Supports --auto-correct
Style/UnneededInterpolation:
Description: Checks for strings that are just an interpolated expression.
Enabled: true
# Supports --auto-correct
Style/UnneededPercentQ:
Description: Checks for %q/%Q when single quotes or double quotes would do.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-q
Enabled: true
# Supports --auto-correct
Style/VariableInterpolation:
Description: Don't interpolate global, instance and class variables directly in strings.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#curlies-interpolate
Enabled: true
Style/VariableName:
Description: Use the configured style when naming variables.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars
Enabled: true
EnforcedStyle: snake_case
SupportedStyles:
- snake_case
- camelCase
Style/VariableNumber:
Description: Use the configured style when numbering variables.
Enabled: true
EnforcedStyle: normalcase
SupportedStyles:
- snake_case
- normalcase
- non_integer
# Supports --auto-correct
Style/WhenThen:
Description: Use when x then ... for one-line cases.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#one-line-cases
Enabled: true
# Supports --auto-correct
Style/WhileUntilDo:
Description: Checks for redundant do after while or until.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do
Enabled: true
# Supports --auto-correct
Style/WhileUntilModifier:
Description: Favor modifier while/until usage when you have a single-line body.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier
Enabled: true
MaxLineLength: 80
# Supports --auto-correct
Style/WordArray:
Description: Use %w or %W for arrays of words.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-w
Enabled: true
EnforcedStyle: percent
SupportedStyles:
- percent
- brackets
MinSize: 0
WordRegex: !ruby/regexp /\A[\p{Word}\n\t]+\z/
# Supports --auto-correct
Style/ZeroLengthPredicate:
Description: 'Use #empty? when testing for objects of length 0.'
Enabled: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment