# Ruby linting configuration. # We only worry about two kinds of issues: 'error' and anything less than that. # Error is not about severity, but about taste. Simple style choices that # never have a great excuse to be broken, such as 1.9 JSON-like hash syntax, # are errors. Choices that tend to have good exceptions in practice, such as # line length, are warnings. # If you'd like to make changes, a full list of available issues is at # https://github.com/bbatsov/rubocop/blob/master/config/enabled.yml # A list of configurable issues is at: # https://github.com/bbatsov/rubocop/blob/master/config/default.yml # # If you disable a check, document why. StringLiterals: EnforcedStyle: double_quotes Severity: error HashSyntax: EnforcedStyle: ruby19 UseHashRocketsWithSymbolValues: false Severity: error Exclude: - !ruby/regexp /db\/schema.rb/ AlignHash: SupportedLastArgumentHashStyles: always_ignore AlignParameters: Enabled: false # This is usually true, but we often want to roll back to # the start of a line. Attr: Enabled: false # We have no styleguide guidance here, and it seems to be # in frequent use. ClassAndModuleChildren: Enabled: false # module X<\n>module Y is just as good as module X::Y. Style/RescueModifier: Enabled: false Documentation: Enabled: false ParameterLists: Max: 10 ModuleLength: Max: 150 Exclude: - !ruby/regexp /spec\/*\/*/ ClassLength: Max: 130 Exclude: - !ruby/regexp /spec\/*\/*/ Metrics/ModuleLength: Exclude: - !ruby/regexp /spec\/*\/*/ Metrics/BlockLength: Exclude: - !ruby/regexp /spec\/*\/*/ PercentLiteralDelimiters: PreferredDelimiters: '%w': '{}' LineLength: Max: 150 Severity: warning MultilineTernaryOperator: Severity: error UnreachableCode: Severity: error AndOr: Severity: error EndAlignment: Severity: error IndentationWidth: Severity: error MethodLength: CountComments: false # count full line comments? Max: 25 Severity: error FrozenStringLiteralComment: Enabled: false # Adding comment to all files... Alias: Enabled: false # We have no guidance on alias vs alias_method RedundantSelf: Enabled: false # Sometimes a self.field is a bit more clear IfUnlessModifier: Enabled: false Metrics/AbcSize: Max: 16 Rails/HttpPositionalArguments: Enabled: false AllCops: TargetRubyVersion: 2.3 # Include gemspec and Rakefile Include: - '**/*.gemspec' - '**/*.rake' - '**/Rakefile' - '**/Capfile' - '**/Guardfile' - '**/Podfile' - '**/Vagrantfile' Exclude: - '**/Gemfile' - 'db/**/*' - 'bin/*' - 'script/**/*' - 'config/**/*' - 'vendor/**/*' # By default, the rails cops are not run. Override in project or home # directory .rubocop.yml files, or by giving the -R/--rails option. Rails: Enabled: true