-
Notifications
You must be signed in to change notification settings - Fork 2
/
.rubocop.yml
142 lines (110 loc) · 3.14 KB
/
.rubocop.yml
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
141
AllCops:
TargetRubyVersion: 2.3
DisplayCopNames: true
DisplayStyleGuide: true
Exclude: # 自動生成されるものや外部ライブラリは除外
- 'vendor/**/*'
- 'db/schema.rb'
#
# Style
#
# 日本人なので日本語で書きたいときもある
Style/AsciiComments:
Enabled: false
# case
# when foo?
# when bar?
# end
# のようなものはcaseで書いたほうが見やすい
Style/EmptyCaseCondition:
Enabled: false
# 明示的に else で nil を返すのはわかりやすいので許可
Style/EmptyElse:
EnforcedStyle: empty
# 複数行でも -> のほうがきれいに見えることが多い
Style/Lambda:
EnforcedStyle: literal
# 区切り文字が2個以上必須になる場合のみ_区切りを必須
Style/NumericLiterals:
MinDigits: 7
# ローカル変数とメソッド呼び出しの区別をつけたほうがわかりやすいことが多い
Style/RedundantSelf:
Enabled: false
# クォートはお好みで
Style/StringLiterals:
Enabled: false
# 意味的に先に否定のロジックを書いた方がわかりやすいケースもある
Style/UnlessElse:
Enabled: false
# 3.0で文字列がデフォルトでfrozenなのを信じてない
Style/FrozenStringLiteralComment:
Enabled: false
Style/BlockDelimiters:
# メソッドチェインしている場合は複数行でも{}を使いたいので
# rubocop -a で変換されないよう除外
AutoCorrect: false
# expect { }.to で複数行xメソッドチェインが多発するので
# specを対象から除外する
Exclude:
- "spec/**/*.rb"
# 公開ライブラリでもない限り、ドキュメントを書くことはほぼないと考える
Style/Documentation:
Enabled: false
# 代入の後改行したほうが横に長くなりづらく見やすい
Style/MultilineAssignmentLayout:
Enabled: true
# メソッドチェインで複数行になったときにインデントが長く横にのびるため
# 出来る限り短くなるようにする
Style/AlignParameters:
EnforcedStyle: with_fixed_indentation
# メソッドチェインで複数行になったときにインデントが長く横にのびるため
# 出来る限り短くなるようにする
Style/MultilineMethodCallIndentation:
EnforcedStyle: indented
#
# Lint
#
# 使っていない変数を見つけたい
Lint/UselessAssignment:
Enabled: true
#
# Metrics
#
Metrics/AbcSize:
Max: 30
Metrics/BlockNesting:
Max: 3
Metrics/ClassLength:
CountComments: false
Max: 100
Metrics/ModuleLength:
CountComments: false
Max: 100
Metrics/CyclomaticComplexity:
Max: 10
Metrics/LineLength:
Max: 120
AllowHeredoc: true
AllowURI: true
URISchemes:
- http
- https
Metrics/MethodLength:
CountComments: false
Max: 30
Metrics/BlockLength:
# rspec, routesは巨大なブロック不可避なので除外
Exclude:
- "spec/**/*.rb"
- "config/routes.rb"
Metrics/ParameterLists:
Max: 5
CountKeywordArgs: true
Metrics/PerceivedComplexity:
Max: 7
#
# Performance
#
# パフォーマンスのメリットよりcasecmpを使った時のわかりづらさのデメリットのほうが大きい
Performance/Casecmp:
Enabled: false