runger_style 5.21.0 → 5.21.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3226992c3a6ec7f7b2807d3df18dac0e041c4f5d8352aac857a5c7abc970505d
4
- data.tar.gz: a6e16b10b9a6c70d834499cd2bd91d41b6d515b55b18aae963b1dc475783fbe9
3
+ metadata.gz: a5818d244e31d35e3826b6cea74e9ea4fe862fe8a0c59933a27016709f5b086b
4
+ data.tar.gz: 2e67636a5ceb7b998bd34ffa7071b5dd259baeed8f2331751b6069504dbe1786
5
5
  SHA512:
6
- metadata.gz: 320c597a7699ea979d2e2409e955932c604d45b7a6a32a6efbb3721c1eb119c5b3e80ce044a20f76befc2151f32ca2a8b60a9dabe7098916482cd37582bab3f1
7
- data.tar.gz: 79e72631c4188519987672893cdcb3009603ad148159286ca31ba50f149598c7277d4e80fef8229df58858094c42b243b57a04d844aa741fa8a031897698b3ee
6
+ metadata.gz: 8368b1ed1b60abd12004d3b95b2a82348cac4675aacd1e8f0cf1a87cc9220ec4e71345c786837190b8a561a0a07898a74906b4bc03c9925138667a13dda85362
7
+ data.tar.gz: 558d2939a86654bf02c87f9011bea619b342a41f1a9e88b27dc7a41f51d9d857448e540e89dd6eecdfc892e979edd1b32217daa591c1cf80faec48d37051d7bf
data/CHANGELOG.md CHANGED
@@ -1,6 +1,9 @@
1
1
  ## Unreleased
2
2
  [no unreleased changes yet]
3
3
 
4
+ ## v5.21.1 (2026-09-20)
5
+ - [default] Fix invalid `RungerStyle/MultilineMethodArgumentsLineBreaks` autocorrection for indexed assignments.
6
+
4
7
  ## v5.21.0 (2026-09-18)
5
8
  - [default] Change `Style/EmptyMethod` enforced style to `expanded`.
6
9
 
data/Gemfile.lock CHANGED
@@ -10,7 +10,7 @@ GIT
10
10
  PATH
11
11
  remote: .
12
12
  specs:
13
- runger_style (5.21.0)
13
+ runger_style (5.21.1)
14
14
  prism (>= 0.24.0)
15
15
  rubocop (>= 1.72.0)
16
16
 
@@ -41,7 +41,7 @@ GEM
41
41
  erb (6.0.7)
42
42
  i18n (1.15.2)
43
43
  concurrent-ruby (~> 1.0)
44
- io-console (0.9.2)
44
+ io-console (0.9.4)
45
45
  irb (1.18.0)
46
46
  pp (>= 0.6.0)
47
47
  prism (>= 1.3.0)
@@ -193,7 +193,7 @@ CHECKSUMS
193
193
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
194
194
  erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
195
195
  i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
196
- io-console (0.9.2) sha256=efa74f891dd03c0939a931dfc6e74c2813d904763d456ea9762b0525e748db08
196
+ io-console (0.9.4) sha256=a403304f32928ee85e56d457b4612ca43f2703b561a3258844992bd24085fbb1
197
197
  irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
198
198
  json (3.0.2) sha256=8e6d7e7b11384c21230430cef90b71f14849a34a1f4452796670f7c981bd19df
199
199
  language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
@@ -235,7 +235,7 @@ CHECKSUMS
235
235
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
236
236
  runger_byebug (11.4.0) sha256=569e22ba2215f57e7f69e145fcb63be401e29fcd312f7936d813e12d0c7bbee6
237
237
  runger_release_assistant (4.3.1) sha256=3246c925240739eb12b9e6b9526a77ea00fcf0a0941441ff5ffacefb7e3e4d83
238
- runger_style (5.21.0)
238
+ runger_style (5.21.1)
239
239
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
240
240
  slop (4.10.1) sha256=844322b5ffcf17ed4815fdb173b04a20dd82b4fd93e3744c88c8fafea696d9c7
241
241
  tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
@@ -4,6 +4,7 @@ set -euo pipefail # exit on any error, don't allow undefined variables, pipes do
4
4
 
5
5
  lint secrets
6
6
 
7
+ background-and-notify lint ascii
7
8
  background-and-notify lint newlines
8
9
  background-and-notify lint rubocop
9
10
  background-and-notify lint shellcheck
@@ -27,9 +27,11 @@ module RungerStyle # rubocop:disable Style/ClassAndModuleChildren
27
27
  separator = separator_range(arg1, arg2)
28
28
 
29
29
  add_offense(separator, message: MSG) do |corrector|
30
- base_indent = base_indentation(arg1)
31
- replacement = ",\n#{base_indent}"
32
- corrector.replace(separator, replacement)
30
+ corrector.replace(separator, correction_replacement(node, arg1, arg2))
31
+
32
+ if indexed_assignment_rhs?(node, arg2)
33
+ indent_continuation_lines(corrector, arg2)
34
+ end
33
35
  end
34
36
  end
35
37
  end
@@ -51,6 +53,42 @@ module RungerStyle # rubocop:disable Style/ClassAndModuleChildren
51
53
  arg.source_range.source_line[/^\s*/]
52
54
  end
53
55
 
56
+ def correction_replacement(node, arg1, arg2)
57
+ if indexed_assignment_rhs?(node, arg2)
58
+ indexed_assignment_replacement(node, arg1)
59
+ else
60
+ base_indent = base_indentation(arg1)
61
+ ",\n#{base_indent}"
62
+ end
63
+ end
64
+
65
+ def indexed_assignment_rhs?(node, arg2)
66
+ node.method_name == :[]= && node.arguments.last.equal?(arg2)
67
+ end
68
+
69
+ def indexed_assignment_replacement(node, arg1)
70
+ assignment =
71
+ range_between(arg1.source_range.end_pos, node.loc.operator.end_pos).source.rstrip
72
+ indentation = ' ' * indentation_width
73
+
74
+ "#{assignment}\n#{base_indentation(arg1)}#{indentation}"
75
+ end
76
+
77
+ def indent_continuation_lines(corrector, arg)
78
+ buffer = arg.source_range.source_buffer
79
+ indentation = ' ' * indentation_width
80
+
81
+ (arg.source_range.line + 1).upto(arg.source_range.last_line) do |line|
82
+ line_start = buffer.line_range(line).begin_pos
83
+ line_start_range = Parser::Source::Range.new(buffer, line_start, line_start)
84
+ corrector.insert_before(line_start_range, indentation)
85
+ end
86
+ end
87
+
88
+ def indentation_width
89
+ config.for_cop('Layout/IndentationWidth')['Width'] || 2
90
+ end
91
+
54
92
  def separator_range(arg1, arg2)
55
93
  range_between(arg1.source_range.end_pos, arg2.source_range.begin_pos)
56
94
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RungerStyle
4
- VERSION = '5.21.0'
4
+ VERSION = '5.21.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runger_style
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.21.0
4
+ version: 5.21.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Runger