rubocop-rspec 2.24.1 → 2.25.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c86b897dee5441bce313de34844ccae87313b9a5f8b4d84d3957b2a36d48aa5a
4
- data.tar.gz: 517269204d37e39e80cb75b75d517e55817c8c13ec6a4574a8ed7d12d85145c6
3
+ metadata.gz: afb5cf0c88af50530fc023549eb7e9083db3ca2314553f1fca912ea2a3c47bdb
4
+ data.tar.gz: ba30f926d9cd3056e786f724140ac4358af527496b2e783fcc5c8e541adc9d13
5
5
  SHA512:
6
- metadata.gz: aed811c032c6094c898369be38925f59e7cd637de6268f0a5787d123b20505058b1659102bfc571a134983f51cf5984848caf7d7c539bf7816c94a6471f4ae19
7
- data.tar.gz: cdd65ce7e146cc32035fef6d258fac99a6191b62e57e3e32b89176faa8d9ab6fc44400d37f903e4e71b64515292f8a2734aaa723099d0e5cf2064a29cbbb7032
6
+ metadata.gz: cd7955549b3b95b481eb5dea24b98f72e1b802546f8e090695a782a20b0ee8d1d0bcca9a6089f3a46718c5a14967de6c8473709ecea72d8aa5eae85e2cb5bd6f
7
+ data.tar.gz: 2beb193cf65884c363c2ece1a3a7ba5db39eecc3a579724bd39f29696ab29276def06261363b6a6290d378743e0b79d414e056b65f0a8a9e2e4215a417d9b978
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Master (Unreleased)
4
4
 
5
+ ## 2.25.0 (2023-10-27)
6
+
7
+ - Add support single quoted string and percent string and heredoc for `RSpec/Rails/HttpStatus`. ([@ydah])
8
+ - Change to be inline disable for `RSpec/SpecFilePathFormat` like `RSpec/FilePath`. ([@ydah])
9
+ - Fix a false positive for `RSpec/MetadataStyle` with example groups having multiple string arguments. ([@franzliedke])
10
+
5
11
  ## 2.24.1 (2023-09-23)
6
12
 
7
13
  - Fix an error when using `RSpec/FilePath` and revert to enabled by default. If you have already moved to `RSpec/SpecFilePathSuffix` and `RSpec/SpecFilePathFormat`, disable `RSpec/FilePath` explicitly as `Enabled: false`. The `RSpec/FilePath` before migration and the `RSpec/SpecFilePathSuffix` and `RSpec/SpecFilePathFormat` as the target are available respectively. ([@ydah])
@@ -839,6 +845,7 @@ Compatibility release so users can upgrade RuboCop to 0.51.0. No new features.
839
845
  [@faucct]: https://github.com/faucct
840
846
  [@foton]: https://github.com/foton
841
847
  [@francois-ferrandis]: https://github.com/francois-ferrandis
848
+ [@franzliedke]: https://github.com/franzliedke
842
849
  [@g-rath]: https://github.com/G-Rath
843
850
  [@geniou]: https://github.com/geniou
844
851
  [@gsamokovarov]: https://github.com/gsamokovarov
@@ -26,11 +26,12 @@ module RuboCop
26
26
  # expect(result).to be(true)
27
27
  # end
28
28
  #
29
- # You can set literals you want to fold with `CountAsOne`.
30
- # Available are: 'array', 'hash', and 'heredoc'. Each literal
31
- # will be counted as one line regardless of its actual size.
29
+ # You can set constructs you want to fold with `CountAsOne`.
30
+ # Available are: 'array', 'hash', 'heredoc', and 'method_call'.
31
+ # Each construct will be counted as one line regardless of
32
+ # its actual size.
32
33
  #
33
- # @example CountAsOne: ['array', 'heredoc']
34
+ # @example CountAsOne: ['array', 'heredoc', 'method_call']
34
35
  #
35
36
  # it do
36
37
  # array = [ # +1
@@ -46,7 +47,12 @@ module RuboCop
46
47
  # Heredoc
47
48
  # content.
48
49
  # HEREDOC
49
- # end # 5 points
50
+ #
51
+ # foo( # +1
52
+ # 1,
53
+ # 2
54
+ # )
55
+ # end # 6 points
50
56
  #
51
57
  class ExampleLength < Base
52
58
  include CodeLength
@@ -45,6 +45,11 @@ module RuboCop
45
45
  PATTERN
46
46
 
47
47
  def on_metadata(symbols, hash)
48
+ # RSpec example groups accept two string arguments. In such a case,
49
+ # the rspec_metadata matcher will interpret the second string
50
+ # argument as a metadata symbol.
51
+ symbols.shift if symbols.first&.str_type?
52
+
48
53
  symbols.each do |symbol|
49
54
  on_metadata_symbol(symbol)
50
55
  end
@@ -30,12 +30,12 @@ module RuboCop
30
30
  def on_block(node)
31
31
  rspec_configure(node) do |block_var|
32
32
  metadata_in_block(node, block_var) do |metadata_arguments|
33
- on_matadata_arguments(metadata_arguments)
33
+ on_metadata_arguments(metadata_arguments)
34
34
  end
35
35
  end
36
36
 
37
37
  rspec_metadata(node) do |metadata_arguments|
38
- on_matadata_arguments(metadata_arguments)
38
+ on_metadata_arguments(metadata_arguments)
39
39
  end
40
40
  end
41
41
  alias on_numblock on_block
@@ -46,7 +46,7 @@ module RuboCop
46
46
 
47
47
  private
48
48
 
49
- def on_matadata_arguments(metadata_arguments)
49
+ def on_metadata_arguments(metadata_arguments)
50
50
  *symbols, last = metadata_arguments
51
51
  hash = nil
52
52
  case last&.type
@@ -66,6 +66,8 @@ module RuboCop
66
66
 
67
67
  def on_send(node)
68
68
  http_status(node) do |arg|
69
+ return if arg.str_type? && arg.heredoc?
70
+
69
71
  checker = checker_class.new(arg)
70
72
  return unless checker.offensive?
71
73
 
@@ -105,6 +107,10 @@ module RuboCop
105
107
  format(MSG, prefer: prefer, current: current)
106
108
  end
107
109
 
110
+ def current
111
+ offense_range.source
112
+ end
113
+
108
114
  def offense_range
109
115
  node
110
116
  end
@@ -129,10 +135,6 @@ module RuboCop
129
135
  symbol.inspect
130
136
  end
131
137
 
132
- def current
133
- node.value.inspect
134
- end
135
-
136
138
  private
137
139
 
138
140
  def symbol
@@ -140,7 +142,7 @@ module RuboCop
140
142
  end
141
143
 
142
144
  def number
143
- node.source.delete('"').to_i
145
+ node.value.to_i
144
146
  end
145
147
  end
146
148
 
@@ -154,10 +156,6 @@ module RuboCop
154
156
  number.to_s
155
157
  end
156
158
 
157
- def current
158
- symbol.inspect
159
- end
160
-
161
159
  private
162
160
 
163
161
  def symbol
@@ -190,10 +188,6 @@ module RuboCop
190
188
  end
191
189
  end
192
190
 
193
- def current
194
- offense_range.source
195
- end
196
-
197
191
  private
198
192
 
199
193
  def symbol
@@ -201,15 +195,15 @@ module RuboCop
201
195
  end
202
196
 
203
197
  def number
204
- node.source.to_i
198
+ node.value.to_i
205
199
  end
206
200
 
207
201
  def normalize_str
208
- normalized = node.source.delete('"')
209
- if normalized.match?(/\A\d+\z/)
210
- ::Rack::Utils::SYMBOL_TO_STATUS_CODE.key(normalized.to_i)
202
+ str = node.value.to_s
203
+ if str.match?(/\A\d+\z/)
204
+ ::Rack::Utils::SYMBOL_TO_STATUS_CODE.key(str.to_i)
211
205
  else
212
- normalized
206
+ str
213
207
  end
214
208
  end
215
209
  end
@@ -41,7 +41,7 @@ module RuboCop
41
41
 
42
42
  # @!method example_group_arguments(node)
43
43
  def_node_matcher :example_group_arguments, <<~PATTERN
44
- (block (send #rspec? #ExampleGroups.all $_ $...) ...)
44
+ (block $(send #rspec? #ExampleGroups.all $_ $...) ...)
45
45
  PATTERN
46
46
 
47
47
  # @!method metadata_key_value(node)
@@ -50,16 +50,16 @@ module RuboCop
50
50
  def on_top_level_example_group(node)
51
51
  return unless top_level_groups.one?
52
52
 
53
- example_group_arguments(node) do |class_name, arguments|
53
+ example_group_arguments(node) do |send_node, class_name, arguments|
54
54
  next if !class_name.const_type? || ignore_metadata?(arguments)
55
55
 
56
- ensure_correct_file_path(class_name, arguments)
56
+ ensure_correct_file_path(send_node, class_name, arguments)
57
57
  end
58
58
  end
59
59
 
60
60
  private
61
61
 
62
- def ensure_correct_file_path(class_name, arguments)
62
+ def ensure_correct_file_path(send_node, class_name, arguments)
63
63
  pattern = correct_path_pattern(class_name, arguments)
64
64
  return if filename_ends_with?(pattern)
65
65
 
@@ -67,7 +67,7 @@ module RuboCop
67
67
  # expression pattern to resemble a glob pattern for clearer error
68
68
  # messages.
69
69
  suffix = pattern.sub('.*', '*').sub('[^/]*', '*').sub('\.', '.')
70
- add_global_offense(format(MSG, suffix: suffix))
70
+ add_offense(send_node, message: format(MSG, suffix: suffix))
71
71
  end
72
72
 
73
73
  def ignore_metadata?(arguments)
@@ -52,7 +52,7 @@ module RuboCop
52
52
  return true unless parent
53
53
  return true if parent.begin_type?
54
54
 
55
- true if parent.block_type? && parent.body == expect
55
+ parent.block_type? && parent.body == expect
56
56
  end
57
57
  end
58
58
  end
@@ -4,7 +4,7 @@ module RuboCop
4
4
  module RSpec
5
5
  # Version information for the RSpec RuboCop plugin.
6
6
  module Version
7
- STRING = '2.24.1'
7
+ STRING = '2.25.0'
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.24.1
4
+ version: 2.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Backus
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-09-23 00:00:00.000000000 Z
13
+ date: 2023-10-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubocop
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.33'
21
+ version: '1.40'
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.33'
28
+ version: '1.40'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rubocop-capybara
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -249,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
251
  requirements: []
252
- rubygems_version: 3.4.12
252
+ rubygems_version: 3.4.17
253
253
  signing_key:
254
254
  specification_version: 4
255
255
  summary: Code style checking for RSpec files