summaryrefslogtreecommitdiff
path: root/.rubocop.yml
blob: b027d4cf546df3acdab703b86095d10608e3b1c3 (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
inherit_from:
  - .rubocop_todo.yml

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

# Lint

# They are idiomatic
Lint/AssignmentInCondition:
  Enabled: false

Lint/EndAlignment:
  AlignWith: variable
  AutoCorrect: true

Lint/UnusedMethodArgument:
  Enabled: false

# Style

Style/AccessModifierIndentation:
  EnforcedStyle: outdent

Style/Alias:
  EnforcedStyle: prefer_alias_method

Style/AlignParameters:
  EnforcedStyle: with_fixed_indentation

Style/FrozenStringLiteralComment:
  EnforcedStyle: always

Style/MultilineBlockChain:
  Enabled: false

Style/MultilineOperationIndentation:
  EnforcedStyle: indented

Style/PerlBackrefs:
  Enabled: false

Style/SingleLineBlockParams:
  Enabled: false

Style/SpaceInsideBlockBraces:
  SpaceBeforeBlockParameters: 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/DotPosition:
  EnforcedStyle: trailing

Style/EachWithObject:
  Enabled: false

Style/SpecialGlobalVars:
  Enabled: false

Style/TrailingCommaInArguments:
  Enabled: false

Performance/FlatMap:
  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

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