rubocop 1.54.1 → 1.54.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +5 -0
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -5
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +3 -1
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -1
- data/lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb +2 -2
- data/lib/rubocop/cop/style/semicolon.rb +0 -3
- data/lib/rubocop/server/client_command/exec.rb +1 -1
- data/lib/rubocop/string_interpreter.rb +3 -3
- data/lib/rubocop/target_finder.rb +1 -1
- data/lib/rubocop/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5aa0f1796446e72fc2559c5e0ba132c8b8e0e2f244c649e37c475f309911cab
|
4
|
+
data.tar.gz: ab9d4c1160f25912df7db584e67e4c2ce13f8372823a8f5f732ca6664ea63863
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b314533429676735ccfbda5f7e891087c7c277fc84789aa4c82c6961ab966f8d7c6ce1c491f0b6033a7893c48348eebff092dc50f462dd5b3a3cbe77954adf99
|
7
|
+
data.tar.gz: 91e2894b3931bed08640afc882785b5e18371d79fee3a1f4a9eddcb44faa9c4b2232fe798185fcb2b57c3b4561efab25ac019ae543fa4c9b0bdaf0f8a361522b
|
@@ -51,6 +51,7 @@ module RuboCop
|
|
51
51
|
# there could be good reasons why it needs to end with a certain
|
52
52
|
# number of newlines.
|
53
53
|
return if ends_in_end?(processed_source)
|
54
|
+
return if end_with_percent_blank_string?(processed_source)
|
54
55
|
|
55
56
|
whitespace_at_end = buffer.source[/\s*\Z/]
|
56
57
|
blank_lines = whitespace_at_end.count("\n") - 1
|
@@ -86,6 +87,10 @@ module RuboCop
|
|
86
87
|
extra&.strip&.start_with?('__END__')
|
87
88
|
end
|
88
89
|
|
90
|
+
def end_with_percent_blank_string?(processed_source)
|
91
|
+
processed_source.buffer.source.end_with?("%\n\n")
|
92
|
+
end
|
93
|
+
|
89
94
|
def message(wanted_blank_lines, blank_lines)
|
90
95
|
case blank_lines
|
91
96
|
when -1
|
@@ -75,9 +75,7 @@ module RuboCop
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def aligned_token?(range, line)
|
78
|
-
aligned_words?(range, line) ||
|
79
|
-
aligned_char?(range, line) ||
|
80
|
-
aligned_assignment?(range, line)
|
78
|
+
aligned_words?(range, line) || aligned_dot?(range, line) || aligned_assignment?(range, line)
|
81
79
|
end
|
82
80
|
|
83
81
|
def aligned_operator?(range, line)
|
@@ -88,8 +86,10 @@ module RuboCop
|
|
88
86
|
/\s\S/.match?(line[range.column - 1, 2])
|
89
87
|
end
|
90
88
|
|
91
|
-
def
|
92
|
-
line[range.column]
|
89
|
+
def aligned_dot?(range, line)
|
90
|
+
char = line[range.column]
|
91
|
+
|
92
|
+
char == '.' && char == range.source[0]
|
93
93
|
end
|
94
94
|
|
95
95
|
def aligned_assignment?(range, line)
|
@@ -106,7 +106,7 @@ module RuboCop
|
|
106
106
|
end
|
107
107
|
|
108
108
|
def elements(node)
|
109
|
-
return node.children unless
|
109
|
+
return node.children unless node.call_type?
|
110
110
|
|
111
111
|
node.arguments.flat_map do |argument|
|
112
112
|
# For each argument, if it is a multi-line hash without braces,
|
@@ -142,7 +142,9 @@ module RuboCop
|
|
142
142
|
end
|
143
143
|
|
144
144
|
next_token = processed_source.tokens[token_number]
|
145
|
-
|
145
|
+
if next_token&.text&.valid_encoding? && Encoding::ENCODING_PATTERN.match?(next_token.text)
|
146
|
+
token = next_token
|
147
|
+
end
|
146
148
|
|
147
149
|
token
|
148
150
|
end
|
@@ -31,7 +31,7 @@ module RuboCop
|
|
31
31
|
# do_something?
|
32
32
|
# end
|
33
33
|
#
|
34
|
-
# @example
|
34
|
+
# @example AllowedMethods: ['foo?']
|
35
35
|
# # good
|
36
36
|
# def foo?
|
37
37
|
# return if condition
|
@@ -39,7 +39,7 @@ module RuboCop
|
|
39
39
|
# do_something?
|
40
40
|
# end
|
41
41
|
#
|
42
|
-
# @example
|
42
|
+
# @example AllowedPatterns: [/foo/]
|
43
43
|
# # good
|
44
44
|
# def foo?
|
45
45
|
# return if condition
|
@@ -62,9 +62,6 @@ module RuboCop
|
|
62
62
|
private
|
63
63
|
|
64
64
|
def check_for_line_terminator_or_opener
|
65
|
-
# Make the obvious check first
|
66
|
-
return unless processed_source.raw_source.include?(';')
|
67
|
-
|
68
65
|
each_semicolon do |line, column, token_before_semicolon|
|
69
66
|
register_semicolon(line, column, false, token_before_semicolon)
|
70
67
|
end
|
@@ -32,7 +32,7 @@ module RuboCop
|
|
32
32
|
|
33
33
|
def ensure_server!
|
34
34
|
if incompatible_version?
|
35
|
-
|
35
|
+
warn 'RuboCop version incompatibility found, RuboCop server restarting...'
|
36
36
|
ClientCommand::Stop.new.run
|
37
37
|
elsif check_running_server
|
38
38
|
return
|
@@ -32,9 +32,9 @@ module RuboCop
|
|
32
32
|
|
33
33
|
def interpret_string_escape(escape)
|
34
34
|
case escape[1]
|
35
|
-
when 'u'
|
36
|
-
when 'x'
|
37
|
-
when /\d/
|
35
|
+
when 'u' then interpret_unicode(escape)
|
36
|
+
when 'x' then interpret_hex(escape)
|
37
|
+
when /\d/ then interpret_octal(escape)
|
38
38
|
else
|
39
39
|
escape[1] # literal escaped char, like \\
|
40
40
|
end
|
@@ -114,7 +114,7 @@ module RuboCop
|
|
114
114
|
end
|
115
115
|
|
116
116
|
def combined_exclude_glob_patterns(base_dir)
|
117
|
-
exclude = @config_store.for(base_dir).for_all_cops['Exclude']
|
117
|
+
exclude = @config_store.for(base_dir).for_all_cops['Exclude'] || []
|
118
118
|
patterns = exclude.select { |pattern| pattern.is_a?(String) && pattern.end_with?('/**/*') }
|
119
119
|
.map { |pattern| pattern.sub("#{base_dir}/", '') }
|
120
120
|
"#{base_dir}/{#{patterns.join(',')}}"
|
data/lib/rubocop/version.rb
CHANGED
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.54.
|
4
|
+
version: 1.54.2
|
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: 2023-07-
|
13
|
+
date: 2023-07-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|