summaryrefslogtreecommitdiff
path: root/.rubocop.yml
blob: cbdb8f8d41c7bbaaedf04b122caf0b743f66f9be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
inherit_from:
  - .rubocop_todo.yml

AllCops:
  TargetRubyVersion: 2.3
  Exclude:
    - tmp/**/*
    - lib/bundler/vendor/**/*
  DisplayCopNames: true

# Lint

# They are idiomatic
Lint/AssignmentInCondition:
  Enabled: false

Lint/EndAlignment:
  EnforcedStyleAlignWith: variable
  AutoCorrect: true

Lint/UnusedMethodArgument:
  Enabled: false

Lint/ScriptPermission:
  Exclude:
    - 'lib/bundler/templates/Executable'

# Layout

Layout/AccessModifierIndentation:
  EnforcedStyle: outdent

Layout/AlignParameters:
  EnforcedStyle: with_fixed_indentation

Layout/MultilineOperationIndentation:
  EnforcedStyle: indented

Layout/SpaceInsideBlockBraces:
  SpaceBeforeBlockParameters: false

Layout/DotPosition:
  EnforcedStyle: trailing

# Style

Style/Alias:
  EnforcedStyle: prefer_alias_method

Style/FrozenStringLiteralComment:
  EnforcedStyle: always

Style/MultilineBlockChain:
  Enabled: false

Style/PerlBackrefs:
  Enabled: false

Style/SingleLineBlockParams:
  Enabled: false

Style/TrivialAccessors:
  Enabled: false

# We adopted raise instead of fail.
Style/SignalException:
  EnforcedStyle: only_raise

Style/StringLiterals:
  EnforcedStyle: double_quotes

Style/StringLiteralsInInterpolation:
  EnforcedStyle: double_quotes

# Having these make it easier to *not* forget to add one when adding a new
# value and you can simply copy the previous line.
Style/TrailingCommaInLiteral:
  EnforcedStyleForMultiline: comma

Style/TrailingUnderscoreVariable:
  Enabled: false

# `String.new` is preferred style with enabled frozen string literal
Style/EmptyLiteral:
  Enabled: false

# 1.8.7 support

Style/HashSyntax:
  EnforcedStyle: hash_rockets

Style/Lambda:
  Enabled: false

Style/EachWithObject:
  Enabled: false

Style/SpecialGlobalVars:
  Enabled: false

Style/TrailingCommaInArguments:
  Enabled: false

Performance/FlatMap:
  Enabled: false

Security/YAMLLoad:
  Enabled: false

# Metrics

# We've chosen to use Rubocop only for style, and not for complexity or quality checks.
Metrics/ClassLength:
  Enabled: false

Metrics/ModuleLength:
  Enabled: false

Metrics/MethodLength:
  Enabled: false

Metrics/BlockNesting:
  Enabled: false

Metrics/AbcSize:
  Enabled: false

Metrics/CyclomaticComplexity:
  Enabled: false

Metrics/ParameterLists:
  Enabled: false

Metrics/BlockLength:
  Enabled: false

# It will be obvious which code is complex, Rubocop should only lint simple
# rules for us.
Metrics/PerceivedComplexity:
  Enabled: false