rubocop 0.57.0 → 0.57.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|