rubocop 1.8.1 → 1.9.0
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/config/default.yml +34 -4
- data/lib/rubocop.rb +5 -0
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +5 -4
- data/lib/rubocop/config.rb +2 -2
- data/lib/rubocop/config_loader.rb +7 -14
- data/lib/rubocop/config_store.rb +12 -1
- data/lib/rubocop/cop/base.rb +1 -1
- data/lib/rubocop/cop/generator.rb +1 -3
- data/lib/rubocop/cop/internal_affairs.rb +5 -1
- data/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +68 -0
- data/lib/rubocop/cop/internal_affairs/example_description.rb +89 -0
- data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +61 -0
- data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +64 -0
- data/lib/rubocop/cop/layout/class_structure.rb +7 -2
- data/lib/rubocop/cop/lint/number_conversion.rb +41 -6
- data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +47 -0
- data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +39 -0
- data/lib/rubocop/cop/lint/symbol_conversion.rb +102 -0
- data/lib/rubocop/cop/lint/triple_quotes.rb +71 -0
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +5 -0
- data/lib/rubocop/cop/mixin/comments_help.rb +0 -1
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +38 -5
- data/lib/rubocop/cop/naming/variable_number.rb +1 -1
- data/lib/rubocop/cop/severity.rb +3 -3
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +49 -9
- data/lib/rubocop/cop/style/eval_with_location.rb +63 -34
- data/lib/rubocop/cop/style/float_division.rb +3 -0
- data/lib/rubocop/cop/style/format_string_token.rb +18 -2
- data/lib/rubocop/cop/style/if_inside_else.rb +14 -7
- data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +96 -0
- data/lib/rubocop/cop/style/nil_comparison.rb +1 -0
- data/lib/rubocop/cop/style/non_nil_check.rb +23 -13
- data/lib/rubocop/cop/style/single_line_methods.rb +1 -1
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +26 -2
- data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
- data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -0
- data/lib/rubocop/magic_comment.rb +30 -1
- data/lib/rubocop/options.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +5 -2
- data/lib/rubocop/runner.rb +1 -0
- data/lib/rubocop/version.rb +2 -2
- metadata +12 -3
@@ -0,0 +1,96 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Style
|
6
|
+
# This cop checks for redundant `if` with boolean literal branches.
|
7
|
+
# It checks only conditions to return boolean value (`true` or `false`) for safe detection.
|
8
|
+
# The conditions to be checked are comparison methods, predicate methods, and double negative.
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# # bad
|
12
|
+
# if foo == bar
|
13
|
+
# true
|
14
|
+
# else
|
15
|
+
# false
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# # bad
|
19
|
+
# foo == bar ? true : false
|
20
|
+
#
|
21
|
+
# # good
|
22
|
+
# foo == bar
|
23
|
+
#
|
24
|
+
class IfWithBooleanLiteralBranches < Base
|
25
|
+
extend AutoCorrector
|
26
|
+
|
27
|
+
MSG = 'Remove redundant %<keyword>s with boolean literal branches.'
|
28
|
+
|
29
|
+
def_node_matcher :if_with_boolean_literal_branches?, <<~PATTERN
|
30
|
+
(if #return_boolean_value? {(true) (false) | (false) (true)})
|
31
|
+
PATTERN
|
32
|
+
def_node_matcher :double_negative?, '(send (send _ :!) :!)'
|
33
|
+
|
34
|
+
def on_if(node)
|
35
|
+
return unless if_with_boolean_literal_branches?(node)
|
36
|
+
|
37
|
+
condition = node.condition
|
38
|
+
range, keyword = if node.ternary?
|
39
|
+
range = condition.source_range.end.join(node.source_range.end)
|
40
|
+
|
41
|
+
[range, 'ternary operator']
|
42
|
+
else
|
43
|
+
keyword = node.loc.keyword
|
44
|
+
|
45
|
+
[keyword, "`#{keyword.source}`"]
|
46
|
+
end
|
47
|
+
|
48
|
+
add_offense(range, message: format(MSG, keyword: keyword)) do |corrector|
|
49
|
+
replacement = replacement_condition(node, condition)
|
50
|
+
|
51
|
+
corrector.replace(node, replacement)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def return_boolean_value?(condition)
|
58
|
+
if condition.begin_type?
|
59
|
+
return_boolean_value?(condition.children.first)
|
60
|
+
elsif condition.or_type?
|
61
|
+
return_boolean_value?(condition.lhs) && return_boolean_value?(condition.rhs)
|
62
|
+
elsif condition.and_type?
|
63
|
+
return_boolean_value?(condition.rhs)
|
64
|
+
else
|
65
|
+
assume_boolean_value?(condition)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def assume_boolean_value?(condition)
|
70
|
+
return false unless condition.send_type?
|
71
|
+
|
72
|
+
condition.comparison_method? || condition.predicate_method? || double_negative?(condition)
|
73
|
+
end
|
74
|
+
|
75
|
+
def replacement_condition(node, condition)
|
76
|
+
bang = '!' if opposite_condition?(node)
|
77
|
+
|
78
|
+
if bang && require_parentheses?(condition)
|
79
|
+
"#{bang}(#{condition.source})"
|
80
|
+
else
|
81
|
+
"#{bang}#{condition.source}"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def opposite_condition?(node)
|
86
|
+
!node.unless? && node.if_branch.false_type? || node.unless? && node.if_branch.true_type?
|
87
|
+
end
|
88
|
+
|
89
|
+
def require_parentheses?(condition)
|
90
|
+
condition.and_type? || condition.or_type? ||
|
91
|
+
condition.send_type? && condition.comparison_method?
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -8,6 +8,9 @@ module RuboCop
|
|
8
8
|
# With `IncludeSemanticChanges` set to `false` by default, this cop
|
9
9
|
# does not report offenses for `!x.nil?` and does no changes that might
|
10
10
|
# change behavior.
|
11
|
+
# Also `IncludeSemanticChanges` set to `false` with `EnforcedStyle: comparison` of
|
12
|
+
# `Style/NilComparison` cop, this cop does not report offenses for `x != nil` and
|
13
|
+
# does no changes to `!x.nil?` style.
|
11
14
|
#
|
12
15
|
# With `IncludeSemanticChanges` set to `true`, this cop reports offenses
|
13
16
|
# for `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which
|
@@ -41,6 +44,9 @@ module RuboCop
|
|
41
44
|
class NonNilCheck < Base
|
42
45
|
extend AutoCorrector
|
43
46
|
|
47
|
+
MSG_FOR_REPLACEMENT = 'Prefer `%<prefer>s` over `%<current>s`.'
|
48
|
+
MSG_FOR_REDUNDANCY = 'Explicit non-nil checks are usually redundant.'
|
49
|
+
|
44
50
|
RESTRICT_ON_SEND = %i[!= nil? !].freeze
|
45
51
|
|
46
52
|
def_node_matcher :not_equal_to_nil?, '(send _ :!= nil)'
|
@@ -49,11 +55,12 @@ module RuboCop
|
|
49
55
|
def_node_matcher :not_and_nil_check?, '(send (send _ :nil?) :!)'
|
50
56
|
|
51
57
|
def on_send(node)
|
52
|
-
return if ignored_node?(node)
|
53
|
-
|
58
|
+
return if ignored_node?(node) ||
|
59
|
+
!include_semantic_changes? && nil_comparison_style == 'comparison'
|
60
|
+
return unless register_offense?(node)
|
54
61
|
|
55
62
|
message = message(node)
|
56
|
-
add_offense(
|
63
|
+
add_offense(node, message: message) do |corrector|
|
57
64
|
autocorrect(corrector, node)
|
58
65
|
end
|
59
66
|
end
|
@@ -73,13 +80,9 @@ module RuboCop
|
|
73
80
|
|
74
81
|
private
|
75
82
|
|
76
|
-
def
|
77
|
-
|
78
|
-
node
|
79
|
-
elsif include_semantic_changes? &&
|
80
|
-
(not_and_nil_check?(node) || unless_and_nil_check?(node))
|
81
|
-
node
|
82
|
-
end
|
83
|
+
def register_offense?(node)
|
84
|
+
not_equal_to_nil?(node) ||
|
85
|
+
include_semantic_changes? && (not_and_nil_check?(node) || unless_and_nil_check?(node))
|
83
86
|
end
|
84
87
|
|
85
88
|
def autocorrect(corrector, node)
|
@@ -101,10 +104,11 @@ module RuboCop
|
|
101
104
|
end
|
102
105
|
|
103
106
|
def message(node)
|
104
|
-
if node.method?(:!=)
|
105
|
-
|
107
|
+
if node.method?(:!=) && !include_semantic_changes?
|
108
|
+
prefer = "!#{node.receiver.source}.nil?"
|
109
|
+
format(MSG_FOR_REPLACEMENT, prefer: prefer, current: node.source)
|
106
110
|
else
|
107
|
-
|
111
|
+
MSG_FOR_REDUNDANCY
|
108
112
|
end
|
109
113
|
end
|
110
114
|
|
@@ -138,6 +142,12 @@ module RuboCop
|
|
138
142
|
corrector.replace(node.parent.loc.keyword, 'if')
|
139
143
|
corrector.replace(node, receiver.source)
|
140
144
|
end
|
145
|
+
|
146
|
+
def nil_comparison_style
|
147
|
+
nil_comparison_conf = config.for_cop('Style/NilComparison')
|
148
|
+
|
149
|
+
nil_comparison_conf['Enabled'] && nil_comparison_conf['EnforcedStyle']
|
150
|
+
end
|
141
151
|
end
|
142
152
|
end
|
143
153
|
end
|
@@ -8,7 +8,7 @@ module RuboCop
|
|
8
8
|
#
|
9
9
|
# Endless methods added in Ruby 3.0 are also accepted by this cop.
|
10
10
|
#
|
11
|
-
# If `Style/EndlessMethod` is enabled with `EnforcedStyle:
|
11
|
+
# If `Style/EndlessMethod` is enabled with `EnforcedStyle: allow_single_line` or
|
12
12
|
# `allow_always`, single-line methods will be auto-corrected to endless
|
13
13
|
# methods if there is only one statement in the body.
|
14
14
|
#
|
@@ -80,8 +80,11 @@ module RuboCop
|
|
80
80
|
end
|
81
81
|
|
82
82
|
def correct_for_guard_condition_style(corrector, node, if_branch, and_operator)
|
83
|
+
outer_condition = node.condition
|
84
|
+
correct_outer_condition(corrector, outer_condition)
|
85
|
+
|
83
86
|
condition = if_branch.condition
|
84
|
-
corrector.insert_after(
|
87
|
+
corrector.insert_after(outer_condition, replacement_condition(and_operator, condition))
|
85
88
|
|
86
89
|
range = range_between(if_branch.loc.keyword.begin_pos, condition.source_range.end_pos)
|
87
90
|
corrector.remove(range_with_surrounding_space(range: range, newlines: false))
|
@@ -106,8 +109,29 @@ module RuboCop
|
|
106
109
|
corrector.insert_before(node.loc.keyword, comment_text) unless comments.empty?
|
107
110
|
end
|
108
111
|
|
112
|
+
def correct_outer_condition(corrector, condition)
|
113
|
+
return unless requrie_parentheses?(condition)
|
114
|
+
|
115
|
+
range = range_between(
|
116
|
+
condition.loc.selector.end_pos, condition.first_argument.source_range.begin_pos
|
117
|
+
)
|
118
|
+
|
119
|
+
corrector.replace(range, '(')
|
120
|
+
corrector.insert_after(condition.last_argument.source_range, ')')
|
121
|
+
end
|
122
|
+
|
123
|
+
def requrie_parentheses?(condition)
|
124
|
+
condition.send_type? && !condition.arguments.empty? && !condition.parenthesized?
|
125
|
+
end
|
126
|
+
|
127
|
+
def arguments_range(node)
|
128
|
+
range_between(
|
129
|
+
node.first_argument.source_range.begin_pos, node.last_argument.source_range.end_pos
|
130
|
+
)
|
131
|
+
end
|
132
|
+
|
109
133
|
def wrap_condition?(node)
|
110
|
-
node.or_type? ||
|
134
|
+
node.and_type? || node.or_type? ||
|
111
135
|
(node.send_type? && node.arguments.any? && !node.parenthesized?)
|
112
136
|
end
|
113
137
|
|
@@ -23,6 +23,7 @@ module RuboCop
|
|
23
23
|
|
24
24
|
def minimum_severity_to_fail
|
25
25
|
@minimum_severity_to_fail ||= begin
|
26
|
+
# Unless given explicitly as `fail_level`, `:info` severity offenses do not fail
|
26
27
|
name = options.fetch(:fail_level, :refactor)
|
27
28
|
RuboCop::Cop::Severity.new(name)
|
28
29
|
end
|
@@ -27,7 +27,7 @@ module RuboCop
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def any?
|
30
|
-
frozen_string_literal_specified? || encoding_specified?
|
30
|
+
frozen_string_literal_specified? || encoding_specified? || shareable_constant_value_specified?
|
31
31
|
end
|
32
32
|
|
33
33
|
# Does the magic comment enable the frozen string literal feature.
|
@@ -46,6 +46,10 @@ module RuboCop
|
|
46
46
|
[true, false].include?(frozen_string_literal)
|
47
47
|
end
|
48
48
|
|
49
|
+
def valid_shareable_constant_value?
|
50
|
+
%w[none literal experimental_everything experimental_copy].include?(shareable_constant_values)
|
51
|
+
end
|
52
|
+
|
49
53
|
# Was a magic comment for the frozen string literal found?
|
50
54
|
#
|
51
55
|
# @return [Boolean]
|
@@ -53,6 +57,13 @@ module RuboCop
|
|
53
57
|
specified?(frozen_string_literal)
|
54
58
|
end
|
55
59
|
|
60
|
+
# Was a shareable_constant_value specified?
|
61
|
+
#
|
62
|
+
# @return [Boolean]
|
63
|
+
def shareable_constant_value_specified?
|
64
|
+
specified?(shareable_constant_value)
|
65
|
+
end
|
66
|
+
|
56
67
|
# Expose the `frozen_string_literal` value coerced to a boolean if possible.
|
57
68
|
#
|
58
69
|
# @return [Boolean] if value is `true` or `false`
|
@@ -69,6 +80,13 @@ module RuboCop
|
|
69
80
|
end
|
70
81
|
end
|
71
82
|
|
83
|
+
# Expose the `shareable_constant_value` value coerced to a boolean if possible.
|
84
|
+
#
|
85
|
+
# @return [String] for shareable_constant_value config
|
86
|
+
def shareable_constant_value
|
87
|
+
extract_shareable_constant_value
|
88
|
+
end
|
89
|
+
|
72
90
|
def encoding_specified?
|
73
91
|
specified?(encoding)
|
74
92
|
end
|
@@ -146,6 +164,10 @@ module RuboCop
|
|
146
164
|
def extract_frozen_string_literal
|
147
165
|
match('frozen[_-]string[_-]literal')
|
148
166
|
end
|
167
|
+
|
168
|
+
def extract_shareable_constant_value
|
169
|
+
match('shareable[_-]constant[_-]values')
|
170
|
+
end
|
149
171
|
end
|
150
172
|
|
151
173
|
# Wrapper for Vim style magic comments.
|
@@ -176,6 +198,9 @@ module RuboCop
|
|
176
198
|
|
177
199
|
# Vim comments cannot specify frozen string literal behavior.
|
178
200
|
def frozen_string_literal; end
|
201
|
+
|
202
|
+
# Vim comments cannot specify shareable constant values behavior.
|
203
|
+
def shareable_constant_value; end
|
179
204
|
end
|
180
205
|
|
181
206
|
# Wrapper for regular magic comments not bound to an editor.
|
@@ -209,6 +234,10 @@ module RuboCop
|
|
209
234
|
def extract_frozen_string_literal
|
210
235
|
extract(/\A\s*#\s*frozen[_-]string[_-]literal:\s*(#{TOKEN})\s*\z/io)
|
211
236
|
end
|
237
|
+
|
238
|
+
def extract_shareable_constant_value
|
239
|
+
extract(/\A\s*#\s*shareable[_-]constant[_-]value:\s*(#{TOKEN})\s*\z/io)
|
240
|
+
end
|
212
241
|
end
|
213
242
|
end
|
214
243
|
end
|
data/lib/rubocop/options.rb
CHANGED
@@ -470,7 +470,7 @@ module RuboCop
|
|
470
470
|
'This option applies to the previously',
|
471
471
|
'specified --format, or the default format',
|
472
472
|
'if no format is specified.'],
|
473
|
-
fail_level: ['Minimum severity (A/R/C/W/E/F) for exit',
|
473
|
+
fail_level: ['Minimum severity (A/I/R/C/W/E/F) for exit',
|
474
474
|
'with error code.'],
|
475
475
|
display_time: 'Display elapsed time in seconds.',
|
476
476
|
display_only_failed: ['Only output offense messages. Omit passing',
|
@@ -111,9 +111,12 @@ module RuboCop
|
|
111
111
|
source
|
112
112
|
end
|
113
113
|
|
114
|
-
def expect_offense(source, file = nil, severity: nil, **replacements)
|
114
|
+
def expect_offense(source, file = nil, severity: nil, chomp: false, **replacements)
|
115
115
|
expected_annotations = parse_annotations(source, **replacements)
|
116
|
-
|
116
|
+
source = expected_annotations.plain_source
|
117
|
+
source = source.chomp if chomp
|
118
|
+
|
119
|
+
@processed_source = parse_processed_source(source, file)
|
117
120
|
@offenses = _investigate(cop, @processed_source)
|
118
121
|
actual_annotations =
|
119
122
|
expected_annotations.with_offense_annotations(@offenses)
|
data/lib/rubocop/runner.rb
CHANGED
@@ -390,6 +390,7 @@ module RuboCop
|
|
390
390
|
|
391
391
|
def minimum_severity_to_fail
|
392
392
|
@minimum_severity_to_fail ||= begin
|
393
|
+
# Unless given explicitly as `fail_level`, `:info` severity offenses do not fail
|
393
394
|
name = @options[:fail_level] || :refactor
|
394
395
|
RuboCop::Cop::Severity.new(name)
|
395
396
|
end
|
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 = '1.
|
6
|
+
STRING = '1.9.0'
|
7
7
|
|
8
8
|
MSG = '%<version>s (using Parser %<parser_version>s, '\
|
9
9
|
'rubocop-ast %<rubocop_ast_version>s, ' \
|
@@ -37,7 +37,7 @@ module RuboCop
|
|
37
37
|
features = Util.silence_warnings do
|
38
38
|
# Suppress any config issues when loading the config (ie. deprecations,
|
39
39
|
# pending cops, etc.).
|
40
|
-
env.config_store.for_pwd.loaded_features.sort
|
40
|
+
env.config_store.unvalidated.for_pwd.loaded_features.sort
|
41
41
|
end
|
42
42
|
|
43
43
|
features.map do |loaded_feature|
|
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: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-01-
|
13
|
+
date: 2021-01-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: parallel
|
@@ -252,10 +252,14 @@ files:
|
|
252
252
|
- lib/rubocop/cop/generator/require_file_injector.rb
|
253
253
|
- lib/rubocop/cop/ignored_node.rb
|
254
254
|
- lib/rubocop/cop/internal_affairs.rb
|
255
|
+
- lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb
|
256
|
+
- lib/rubocop/cop/internal_affairs/example_description.rb
|
255
257
|
- lib/rubocop/cop/internal_affairs/method_name_equal.rb
|
256
258
|
- lib/rubocop/cop/internal_affairs/node_destructuring.rb
|
257
259
|
- lib/rubocop/cop/internal_affairs/node_type_predicate.rb
|
258
260
|
- lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
|
261
|
+
- lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb
|
262
|
+
- lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb
|
259
263
|
- lib/rubocop/cop/internal_affairs/redundant_location_argument.rb
|
260
264
|
- lib/rubocop/cop/internal_affairs/redundant_message_argument.rb
|
261
265
|
- lib/rubocop/cop/internal_affairs/style_detected_api_use.rb
|
@@ -417,6 +421,8 @@ files:
|
|
417
421
|
- lib/rubocop/cop/lint/non_deterministic_require_order.rb
|
418
422
|
- lib/rubocop/cop/lint/non_local_exit_from_iterator.rb
|
419
423
|
- lib/rubocop/cop/lint/number_conversion.rb
|
424
|
+
- lib/rubocop/cop/lint/numbered_parameter_assignment.rb
|
425
|
+
- lib/rubocop/cop/lint/or_assignment_to_constant.rb
|
420
426
|
- lib/rubocop/cop/lint/ordered_magic_comments.rb
|
421
427
|
- lib/rubocop/cop/lint/out_of_range_regexp_ref.rb
|
422
428
|
- lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb
|
@@ -449,11 +455,13 @@ files:
|
|
449
455
|
- lib/rubocop/cop/lint/shadowing_outer_local_variable.rb
|
450
456
|
- lib/rubocop/cop/lint/struct_new_override.rb
|
451
457
|
- lib/rubocop/cop/lint/suppressed_exception.rb
|
458
|
+
- lib/rubocop/cop/lint/symbol_conversion.rb
|
452
459
|
- lib/rubocop/cop/lint/syntax.rb
|
453
460
|
- lib/rubocop/cop/lint/to_enum_arguments.rb
|
454
461
|
- lib/rubocop/cop/lint/to_json.rb
|
455
462
|
- lib/rubocop/cop/lint/top_level_return_with_argument.rb
|
456
463
|
- lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb
|
464
|
+
- lib/rubocop/cop/lint/triple_quotes.rb
|
457
465
|
- lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb
|
458
466
|
- lib/rubocop/cop/lint/unexpected_block_arity.rb
|
459
467
|
- lib/rubocop/cop/lint/unified_integer.rb
|
@@ -656,6 +664,7 @@ files:
|
|
656
664
|
- lib/rubocop/cop/style/if_inside_else.rb
|
657
665
|
- lib/rubocop/cop/style/if_unless_modifier.rb
|
658
666
|
- lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb
|
667
|
+
- lib/rubocop/cop/style/if_with_boolean_literal_branches.rb
|
659
668
|
- lib/rubocop/cop/style/if_with_semicolon.rb
|
660
669
|
- lib/rubocop/cop/style/implicit_runtime_error.rb
|
661
670
|
- lib/rubocop/cop/style/infinite_loop.rb
|
@@ -856,7 +865,7 @@ metadata:
|
|
856
865
|
homepage_uri: https://rubocop.org/
|
857
866
|
changelog_uri: https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md
|
858
867
|
source_code_uri: https://github.com/rubocop-hq/rubocop/
|
859
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
868
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.9/
|
860
869
|
bug_tracker_uri: https://github.com/rubocop-hq/rubocop/issues
|
861
870
|
post_install_message:
|
862
871
|
rdoc_options: []
|