1
1
require : rubocop-performance
2
2
AllCops :
3
- TargetRubyVersion : 2.2
3
+ TargetRubyVersion : 2.4
4
4
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
5
5
# to ignore them, so only the ones explicitly set in this file are enabled.
6
6
DisabledByDefault : true
@@ -13,11 +13,6 @@ AllCops:
13
13
Style/AndOr :
14
14
Enabled : true
15
15
16
- # Do not use braces for hash literals when they are the last argument of a
17
- # method call.
18
- Style/BracesAroundHashParameters :
19
- Enabled : true
20
-
21
16
# Align `when` with `case`.
22
17
Layout/CaseIndentation :
23
18
Enabled : true
@@ -50,7 +45,11 @@ Style/HashSyntax:
50
45
# extra level of indentation.
51
46
Layout/IndentationConsistency :
52
47
Enabled : true
53
- EnforcedStyle : rails
48
+ EnforcedStyle : indented_internal_methods
49
+
50
+ # Detect hard tabs, no hard tabs.
51
+ Layout/IndentationStyle :
52
+ Enabled : true
54
53
55
54
# Two spaces, no tabs (for indentation).
56
55
Layout/IndentationWidth :
@@ -98,20 +97,16 @@ Style/StringLiterals:
98
97
Enabled : true
99
98
EnforcedStyle : double_quotes
100
99
101
- # Detect hard tabs, no hard tabs.
102
- Layout/Tab :
103
- Enabled : true
104
-
105
100
# Blank lines should not have any spaces.
106
- Layout/TrailingBlankLines :
101
+ Layout/TrailingEmptyLines :
107
102
Enabled : true
108
103
109
104
# No trailing whitespace.
110
105
Layout/TrailingWhitespace :
111
106
Enabled : true
112
107
113
108
# Use quotes for string literals when they are enough.
114
- Style/UnneededPercentQ :
109
+ Style/RedundantPercentQ :
115
110
Enabled : true
116
111
117
112
# Align `end` with the matching keyword or starting expression except for
@@ -123,3 +118,108 @@ Layout/EndAlignment:
123
118
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
124
119
Lint/RequireParentheses :
125
120
Enabled : true
121
+
122
+ # Use `bind_call(obj, args, ...)` instead of `bind(obj).call(args, ...)`.
123
+ Performance/BindCall :
124
+ Enabled : true
125
+
126
+ # Use `caller(n..n)` instead of `caller`.
127
+ Performance/Caller :
128
+ Enabled : true
129
+
130
+ # Use `casecmp` for case comparison.
131
+ Performance/Casecmp :
132
+ Enabled : true
133
+
134
+ # Extract Array and Hash literals outside of loops into local variables or constants.
135
+ Performance/CollectionLiteralInLoop :
136
+ Enabled : true
137
+
138
+ # Prefer `sort_by(&:foo)` instead of `sort { |a, b| a.foo <=> b.foo }`.
139
+ Performance/CompareWithBlock :
140
+ Enabled : true
141
+
142
+ # Use `count` instead of `{select,find_all,filter,reject}...{size,count,length}`.
143
+ Performance/Count :
144
+ Enabled : true
145
+
146
+ # Use `delete_prefix` instead of `gsub`.
147
+ Performance/DeletePrefix :
148
+ Enabled : true
149
+
150
+ # Use `delete_suffix` instead of `gsub`.
151
+ Performance/DeleteSuffix :
152
+ Enabled : true
153
+
154
+ # Use `detect` instead of `select.first`, `find_all.first`, `filter.first`, `select.last`, `find_all.last`, and `filter.last`.
155
+ Performance/Detect :
156
+ Enabled : true
157
+
158
+ # Use `str.{start,end}_with?(x, ..., y, ...)` instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
159
+ Performance/DoubleStartEndWith :
160
+ Enabled : true
161
+
162
+ # Use `end_with?` instead of a regex match anchored to the end of a string.
163
+ Performance/EndWith :
164
+ Enabled : true
165
+
166
+ # Do not compute the size of statically sized objects except in constants.
167
+ Performance/FixedSize :
168
+ Enabled : true
169
+
170
+ # Use `Enumerable#flat_map` instead of `Enumerable#map...Array#flatten(1).
171
+ Performance/FlatMap :
172
+ Enabled : true
173
+
174
+ # Use `key?` or `value?` instead of `keys.include?` or `values.include?`.
175
+ Performance/InefficientHashSearch :
176
+ Enabled : true
177
+
178
+ # Use `Range#cover?` instead of `Range#include?` (or `Range#member?`).
179
+ Performance/RangeInclude :
180
+ Enabled : true
181
+
182
+ # Use `yield` instead of `block.call`.
183
+ Performance/RedundantBlockCall :
184
+ Enabled : true
185
+
186
+ # Use `=~` instead of `String#match` or `Regexp#match` in a context where the returned `MatchData` is not needed.
187
+ Performance/RedundantMatch :
188
+ Enabled : true
189
+
190
+ # Use Hash#[]=, rather than Hash#merge! with a single key-value pair.
191
+ Performance/RedundantMerge :
192
+ Enabled : true
193
+
194
+ # Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`, `Regexp#===`, or `=~` when `MatchData` is not used.
195
+ Performance/RegexpMatch :
196
+ Enabled : true
197
+
198
+ # Use `reverse_each` instead of `reverse.each`.
199
+ Performance/ReverseEach :
200
+ Enabled : true
201
+
202
+ # Use `size` instead of `count` for counting the number of elements in `Array` and `Hash`.
203
+ Performance/Size :
204
+ Enabled : true
205
+
206
+ # Use `start_with?` instead of a regex match anchored to the beginning of a string.
207
+ Performance/StartWith :
208
+ Enabled : true
209
+
210
+ # Use `tr` instead of `gsub` when you are replacing the same number of characters.
211
+ # Use `delete` instead of `gsub` when you are deleting characters.
212
+ Performance/StringReplacement :
213
+ Enabled : true
214
+
215
+ # Checks for .times.map calls.
216
+ Performance/TimesMap :
217
+ Enabled : true
218
+
219
+ # Use unary plus to get an unfrozen string literal.
220
+ Performance/UnfreezeString :
221
+ Enabled : true
222
+
223
+ # Use `URI::DEFAULT_PARSER` instead of `URI::Parser.new`.
224
+ Performance/UriDefaultParser :
225
+ Enabled : true
0 commit comments