rubocop 0.57.0 → 0.57.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/rubocop/config.rb +5 -0
- data/lib/rubocop/config_loader_resolver.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_consistency.rb +45 -2
- data/lib/rubocop/cop/layout/indentation_width.rb +10 -4
- data/lib/rubocop/cop/layout/leading_blank_lines.rb +14 -14
- data/lib/rubocop/cop/performance/reverse_each.rb +1 -1
- data/lib/rubocop/cop/rails/bulk_change_table.rb +1 -0
- data/lib/rubocop/cop/style/unneeded_condition.rb +10 -0
- data/lib/rubocop/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e577b73a80f270f2f18699b1b34a563a60565d5c
|
4
|
+
data.tar.gz: 364776f0704be1ae1e85e158623f5ded6f81cc14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee89c88fe1ad2bca660483e3e47bd7a59783f0989ff9e5b67d51cf182bfc9cbe9ea8d82e26ae5da2215ddbf23cb5c5bbbb84c28c9831da5d1ae8e34d9ba6e464
|
7
|
+
data.tar.gz: f6d4fbf74aff8a775ed6ff8f0336de11c40885c270aece677d8e45ebb0dbe3079b13b3015979734650f6fb4de7bbd80897ecf1f34004176115a3383a4e11823c
|
data/README.md
CHANGED
@@ -51,7 +51,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
|
|
51
51
|
might want to use a conservative version locking in your `Gemfile`:
|
52
52
|
|
53
53
|
```rb
|
54
|
-
gem 'rubocop', '~> 0.57.
|
54
|
+
gem 'rubocop', '~> 0.57.1', require: false
|
55
55
|
```
|
56
56
|
|
57
57
|
## Quickstart
|
data/lib/rubocop/config.rb
CHANGED
@@ -459,6 +459,11 @@ module RuboCop
|
|
459
459
|
# There could be a custom cop with this name. If so, don't warn
|
460
460
|
next if Cop::Cop.registry.contains_cop_matching?([name])
|
461
461
|
|
462
|
+
# Special case for inherit_mode, which is a directive that we keep in
|
463
|
+
# the configuration (even though it's not a cop), because it's easier
|
464
|
+
# to do so than to pass the value around to various methods.
|
465
|
+
next if name == 'inherit_mode'
|
466
|
+
|
462
467
|
warn Rainbow("Warning: unrecognized cop #{name} found in " \
|
463
468
|
"#{smart_loaded_path}").yellow
|
464
469
|
end
|
@@ -42,7 +42,7 @@ module RuboCop
|
|
42
42
|
end
|
43
43
|
|
44
44
|
hash['inherit_from'] = Array(hash['inherit_from'])
|
45
|
-
Array(config_path).
|
45
|
+
Array(config_path).reverse_each do |path|
|
46
46
|
# Put gem configuration first so local configuration overrides it.
|
47
47
|
hash['inherit_from'].unshift gem_config_path(gem_name, path)
|
48
48
|
end
|
@@ -137,15 +137,58 @@ module RuboCop
|
|
137
137
|
|
138
138
|
private
|
139
139
|
|
140
|
+
# Not all nodes define `bare_access_modifier?` (for example,
|
141
|
+
# `RuboCop::AST::DefNode` does not), so we must check `send_type?` first
|
142
|
+
# to avoid a NoMethodError.
|
143
|
+
def bare_access_modifier?(node)
|
144
|
+
node.send_type? && node.bare_access_modifier?
|
145
|
+
end
|
146
|
+
|
147
|
+
# Returns an integer representing the correct indentation, or nil to
|
148
|
+
# indicate that the correct indentation is that of the first child that
|
149
|
+
# is not an access modifier.
|
150
|
+
def base_column_for_normal_style(node)
|
151
|
+
first_child = node.children.first
|
152
|
+
return unless bare_access_modifier?(first_child)
|
153
|
+
|
154
|
+
# If, as is most common, the access modifier is indented deeper than
|
155
|
+
# the module (`access_modifier_indent > module_indent`) then the
|
156
|
+
# indentation of the access modifier determines the correct
|
157
|
+
# indentation.
|
158
|
+
#
|
159
|
+
# Otherwise, in the rare event that the access modifier is outdented
|
160
|
+
# to the level of the module (see `AccessModifierIndentation` cop) we
|
161
|
+
# return nil so that `check_alignment` will derive the correct
|
162
|
+
# indentation from the first child that is not an access modifier.
|
163
|
+
module_indent = display_column(node.parent.source_range)
|
164
|
+
access_modifier_indent = display_column(first_child.source_range)
|
165
|
+
access_modifier_indent if access_modifier_indent > module_indent
|
166
|
+
end
|
167
|
+
|
140
168
|
def check(node)
|
169
|
+
if style == :rails
|
170
|
+
check_rails_style(node)
|
171
|
+
else
|
172
|
+
check_normal_style(node)
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def check_normal_style(node)
|
177
|
+
check_alignment(
|
178
|
+
node.children.reject { |child| bare_access_modifier?(child) },
|
179
|
+
base_column_for_normal_style(node)
|
180
|
+
)
|
181
|
+
end
|
182
|
+
|
183
|
+
def check_rails_style(node)
|
141
184
|
children_to_check = [[]]
|
142
185
|
node.children.each do |child|
|
143
186
|
# Modifier nodes have special indentation and will be checked by
|
144
187
|
# the AccessModifierIndentation cop. This cop uses them as dividers
|
145
188
|
# in rails mode. Then consistency is checked only within each
|
146
189
|
# section delimited by a modifier node.
|
147
|
-
if
|
148
|
-
children_to_check << []
|
190
|
+
if bare_access_modifier?(child)
|
191
|
+
children_to_check << []
|
149
192
|
else
|
150
193
|
children_to_check.last << child
|
151
194
|
end
|
@@ -152,11 +152,17 @@ module RuboCop
|
|
152
152
|
check_indentation(base, members.first)
|
153
153
|
|
154
154
|
return unless members.any? && members.first.begin_type?
|
155
|
-
return unless indentation_consistency_style == 'rails'
|
156
155
|
|
157
|
-
|
158
|
-
|
159
|
-
|
156
|
+
if indentation_consistency_style == 'rails'
|
157
|
+
each_member(members) do |member, previous_modifier|
|
158
|
+
check_indentation(previous_modifier, member,
|
159
|
+
indentation_consistency_style)
|
160
|
+
end
|
161
|
+
else
|
162
|
+
members.first.children.each do |member|
|
163
|
+
next if member.send_type? && member.access_modifier?
|
164
|
+
check_indentation(base, member)
|
165
|
+
end
|
160
166
|
end
|
161
167
|
end
|
162
168
|
|
@@ -8,25 +8,25 @@ module RuboCop
|
|
8
8
|
#
|
9
9
|
# @example
|
10
10
|
#
|
11
|
-
#
|
12
|
-
#
|
11
|
+
# # bad
|
12
|
+
# # (start of file)
|
13
13
|
#
|
14
|
-
#
|
15
|
-
#
|
14
|
+
# class Foo
|
15
|
+
# end
|
16
16
|
#
|
17
|
-
#
|
18
|
-
#
|
17
|
+
# # bad
|
18
|
+
# # (start of file)
|
19
19
|
#
|
20
|
-
#
|
20
|
+
# # a comment
|
21
21
|
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
22
|
+
# # good
|
23
|
+
# # (start of file)
|
24
|
+
# class Foo
|
25
|
+
# end
|
26
26
|
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
27
|
+
# # good
|
28
|
+
# # (start of file)
|
29
|
+
# # a comment
|
30
30
|
class LeadingBlankLines < Cop
|
31
31
|
MSG = 'Unnecessary blank line at the beginning of the source.'.freeze
|
32
32
|
|
@@ -22,6 +22,14 @@ module RuboCop
|
|
22
22
|
#
|
23
23
|
# # good
|
24
24
|
# b || c
|
25
|
+
#
|
26
|
+
# # good
|
27
|
+
# if b
|
28
|
+
# b
|
29
|
+
# elsif cond
|
30
|
+
# c
|
31
|
+
# end
|
32
|
+
#
|
25
33
|
class UnneededCondition < Cop
|
26
34
|
include RangeHelp
|
27
35
|
|
@@ -53,6 +61,8 @@ module RuboCop
|
|
53
61
|
end
|
54
62
|
|
55
63
|
def offense?(node)
|
64
|
+
return false if node.elsif_conditional?
|
65
|
+
|
56
66
|
condition, if_branch, else_branch = *node
|
57
67
|
|
58
68
|
condition == if_branch && !node.elsif? && (
|
data/lib/rubocop/version.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
# This module holds the RuboCop version information.
|
5
5
|
module Version
|
6
|
-
STRING = '0.57.
|
6
|
+
STRING = '0.57.1'.freeze
|
7
7
|
|
8
8
|
MSG = '%<version>s (using Parser %<parser_version>s, running on ' \
|
9
9
|
'%<ruby_engine>s %<ruby_version>s %<ruby_platform>s)'.freeze
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.57.
|
4
|
+
version: 0.57.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.5.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.
|
28
|
+
version: 1.5.1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: parallel
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|