runger_style 4.3.0 → 4.4.0

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: e83262958db2e0d64aadbcb73ef166f767b69fdd411eeb08eb371c2d7d7eaa51
4
- data.tar.gz: 9c78194fa3d0ec4cdc1401f76c1ca59a891d85dcdaa84259aa7184f6b9888209
3
+ metadata.gz: 7d93a58f1dc8dee8c45abc512c7b8cd6a76d2172b082c37ad0ac52436d53fa67
4
+ data.tar.gz: 154aed25e45f7d058343a082417d9085f54ac7600c6aa5b5ee310a306e4d6a02
5
5
  SHA512:
6
- metadata.gz: 295c0dd93cb6203ced06556f166ddb7892ffa80cc0a39e464f4bf2f8b62db1d0583f345e9dc3d820c4630e87ac7c09447464e14f6d3486d259a048dcc1e6412f
7
- data.tar.gz: 45dd01f6b850082ca2f9a63e5b0d6171f6e6f6fa0b3e689566ea6b12d1045164b5bdeeca16ebddaa8776d3a4978ddd3b89b8f46638439c0dd0103f502d592ae9
6
+ metadata.gz: de62008658319ebd6394e456a008bdf7f5499dec8014cac640de4dca6d242a215d66e64a74136084a2943fd5b66b11c5fb78c86c175658f14429867647c891df
7
+ data.tar.gz: cbfe82fdf632ef416680f39aa92fc2330c3b9a2f795c21bf47c1b6b7efb082364be5887b6d51513287533eff0fcc57123b9906ae16dae734002be8d6d2883e0c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## v4.4.0 (2025-02-09)
2
+ - Fix false negative for `RungerStyle/MultilineMethodArgumentsLineBreaks` with keyword arguments.
3
+ - Disable `Style/Next`.
4
+
1
5
  ## v4.3.0 (2025-01-31)
2
6
  - Specify `EnforcedShorthandSyntax: always` for `Style/HashSyntax`.
3
7
 
data/Gemfile CHANGED
@@ -9,6 +9,7 @@ gemspec
9
9
  group :development, :test do
10
10
  gem 'bundler'
11
11
  gem 'irb'
12
+ gem 'pry-byebug', github: 'davidrunger/pry-byebug'
12
13
  gem 'rake'
13
14
  gem 'rubocop'
14
15
  gem 'rubocop-performance'
data/Gemfile.lock CHANGED
@@ -1,7 +1,15 @@
1
+ GIT
2
+ remote: https://github.com/davidrunger/pry-byebug.git
3
+ revision: 3ac27ef70a1b16a461db9f7572d3fe1a205effd4
4
+ specs:
5
+ pry-byebug (3.10.1)
6
+ pry (>= 0.13)
7
+ runger_byebug (>= 11.0)
8
+
1
9
  PATH
2
10
  remote: .
3
11
  specs:
4
- runger_style (4.3.0)
12
+ runger_style (4.4.0)
5
13
  prism (>= 0.24.0)
6
14
  rubocop (>= 1.68.0)
7
15
 
@@ -25,6 +33,7 @@ GEM
25
33
  base64 (0.2.0)
26
34
  benchmark (0.4.0)
27
35
  bigdecimal (3.1.9)
36
+ coderay (1.1.3)
28
37
  concurrent-ruby (1.3.5)
29
38
  connection_pool (2.5.0)
30
39
  date (3.4.1)
@@ -41,23 +50,27 @@ GEM
41
50
  language_server-protocol (3.17.0.4)
42
51
  logger (1.6.5)
43
52
  memo_wise (1.10.0)
53
+ method_source (1.1.0)
44
54
  minitest (5.25.4)
45
55
  parallel (1.26.3)
46
- parser (3.3.7.0)
56
+ parser (3.3.7.1)
47
57
  ast (~> 2.4.1)
48
58
  racc
49
59
  pp (0.6.2)
50
60
  prettyprint
51
61
  prettyprint (0.2.0)
52
62
  prism (1.3.0)
63
+ pry (0.15.2)
64
+ coderay (~> 1.1)
65
+ method_source (~> 1.0)
53
66
  psych (5.2.3)
54
67
  date
55
68
  stringio
56
69
  racc (1.8.1)
57
- rack (3.1.8)
70
+ rack (3.1.9)
58
71
  rainbow (3.1.1)
59
72
  rake (13.2.1)
60
- rdoc (6.11.0)
73
+ rdoc (6.12.0)
61
74
  psych (>= 4.0.0)
62
75
  regexp_parser (2.10.0)
63
76
  reline (0.6.0)
@@ -66,7 +79,7 @@ GEM
66
79
  rspec-core (~> 3.13.0)
67
80
  rspec-expectations (~> 3.13.0)
68
81
  rspec-mocks (~> 3.13.0)
69
- rspec-core (3.13.2)
82
+ rspec-core (3.13.3)
70
83
  rspec-support (~> 3.13.0)
71
84
  rspec-expectations (3.13.3)
72
85
  diff-lcs (>= 1.2.0, < 2.0)
@@ -75,14 +88,14 @@ GEM
75
88
  diff-lcs (>= 1.2.0, < 2.0)
76
89
  rspec-support (~> 3.13.0)
77
90
  rspec-support (3.13.2)
78
- rubocop (1.71.0)
91
+ rubocop (1.71.2)
79
92
  json (~> 2.3)
80
93
  language_server-protocol (>= 3.17.0)
81
94
  parallel (~> 1.10)
82
95
  parser (>= 3.3.0.2)
83
96
  rainbow (>= 2.2.2, < 4.0)
84
97
  regexp_parser (>= 2.9.3, < 3.0)
85
- rubocop-ast (>= 1.36.2, < 2.0)
98
+ rubocop-ast (>= 1.38.0, < 2.0)
86
99
  ruby-progressbar (~> 1.7)
87
100
  unicode-display_width (>= 2.4.0, < 4.0)
88
101
  rubocop-ast (1.38.0)
@@ -107,7 +120,10 @@ GEM
107
120
  rubocop (~> 1.61)
108
121
  rubocop-rspec (~> 3, >= 3.0.1)
109
122
  ruby-progressbar (1.13.0)
110
- runger_release_assistant (1.0.0)
123
+ runger_byebug (11.4.0)
124
+ irb
125
+ reline
126
+ runger_release_assistant (2.0.0)
111
127
  activesupport (>= 6)
112
128
  memo_wise (>= 1.7)
113
129
  rainbow (>= 3.0)
@@ -128,6 +144,7 @@ PLATFORMS
128
144
  DEPENDENCIES
129
145
  bundler
130
146
  irb
147
+ pry-byebug!
131
148
  rake
132
149
  rspec
133
150
  rubocop
@@ -147,6 +164,7 @@ CHECKSUMS
147
164
  base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
148
165
  benchmark (0.4.0) sha256=0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a
149
166
  bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
167
+ coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
150
168
  concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
151
169
  connection_pool (2.5.0) sha256=233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc
152
170
  date (3.4.1) sha256=bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f
@@ -159,26 +177,29 @@ CHECKSUMS
159
177
  language_server-protocol (3.17.0.4) sha256=c484626478664fd13482d8180947c50a8590484b1258b99b7aedb3b69df89669
160
178
  logger (1.6.5) sha256=c3cfe56d01656490ddd103d38b8993d73d86296adebc5f58cefc9ec03741e56b
161
179
  memo_wise (1.10.0) sha256=ae40ff8e7799697ff5d59d739b8766f76be22eba69c7c8468edb42ab83c94c3f
180
+ method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
162
181
  minitest (5.25.4) sha256=9cf2cae25ac4dfc90c988ebc3b917f53c054978b673273da1bd20bcb0778f947
163
182
  parallel (1.26.3) sha256=d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef
164
- parser (3.3.7.0) sha256=7449011771e3e7881297859b849de26a6f4fccd515bece9520a87e7d2116119b
183
+ parser (3.3.7.1) sha256=7dbe61618025519024ac72402a6677ead02099587a5538e84371b76659e6aca1
165
184
  pp (0.6.2) sha256=947ec3120c6f92195f8ee8aa25a7b2c5297bb106d83b41baa02983686577b6ff
166
185
  prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
167
186
  prism (1.3.0) sha256=b11620829831b1cb7e6c9b46c81ff8a6e36ccb3f888f164485eb7351f386273a
187
+ pry (0.15.2) sha256=12d54b8640d3fa29c9211dd4ffb08f3fd8bf7a4fd9b5a73ce5b59c8709385b6b
188
+ pry-byebug (3.10.1)
168
189
  psych (5.2.3) sha256=84a54bb952d14604fea22d99938348814678782f58b12648fcdfa4d2fce859ee
169
190
  racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
170
- rack (3.1.8) sha256=d3fbcbca43dc2b43c9c6d7dfbac01667ae58643c42cea10013d0da970218a1b1
191
+ rack (3.1.9) sha256=3d0a390444dcc753ced32978159463f92ac920ae28d7058b6fd633abb9dd349d
171
192
  rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
172
193
  rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
173
- rdoc (6.11.0) sha256=bec66fb9b019be64f7ba7d2cd2aecb283a3a01fef23a95b33e2349c6d1aa0040
194
+ rdoc (6.12.0) sha256=7d6f706e070bffa5d18a448f24076cbfb34923a99c1eab842aa18e6ca69f56e0
174
195
  regexp_parser (2.10.0) sha256=cb6f0ddde88772cd64bff1dbbf68df66d376043fe2e66a9ef77fcb1b0c548c61
175
196
  reline (0.6.0) sha256=57620375dcbe56ec09bac7192bfb7460c716bbf0054dc94345ecaa5438e539d2
176
197
  rspec (3.13.0) sha256=d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993
177
- rspec-core (3.13.2) sha256=94fbda6e4738e478f1c7532b7cc241272fcdc8b9eac03a97338b1122e4573300
198
+ rspec-core (3.13.3) sha256=25136507f4f9cf2e8977a2851e64e438b4331646054e345998714108745cdfe4
178
199
  rspec-expectations (3.13.3) sha256=0e6b5af59b900147698ea0ff80456c4f2e69cac4394fbd392fbd1ca561f66c58
179
200
  rspec-mocks (3.13.2) sha256=2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef
180
201
  rspec-support (3.13.2) sha256=cea3a2463fd9b84b9dcc9685efd80ea701aa8f7b3decb3b3ce795ed67737dbec
181
- rubocop (1.71.0) sha256=e19679efd447346ac476122313d3788ae23c38214790bcf660e984c747608bf0
202
+ rubocop (1.71.2) sha256=9a7b7501aac661a338ed7ff2a5eba78e581759e1f0d3c82362b2ca217ed3f97f
182
203
  rubocop-ast (1.38.0) sha256=4fdf6792fe443a9a18acb12dbc8225d0d64cd1654e41fedb30e79c18edbb26ae
183
204
  rubocop-capybara (2.21.0) sha256=5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab
184
205
  rubocop-factory_bot (2.26.1) sha256=8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa
@@ -188,8 +209,9 @@ CHECKSUMS
188
209
  rubocop-rspec (3.4.0) sha256=8721c13b6a8c9530a7ac481cea9423022f946fcf72428bda8289f8b57e4d4885
189
210
  rubocop-rspec_rails (2.30.0) sha256=888112e83f9d7ef7ad2397e9d69a0b9614a4bae24f072c399804a180f80c4c46
190
211
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
191
- runger_release_assistant (1.0.0) sha256=03b7a57db1907765a443d321ad1805705067012046f78f87e18260a379565286
192
- runger_style (4.3.0)
212
+ runger_byebug (11.4.0) sha256=569e22ba2215f57e7f69e145fcb63be401e29fcd312f7936d813e12d0c7bbee6
213
+ runger_release_assistant (2.0.0) sha256=f4f5708291eaeef1b881208f87a494877fe768739d6e96b7293fc335b28a3865
214
+ runger_style (4.4.0)
193
215
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
194
216
  slop (4.10.1) sha256=844322b5ffcf17ed4815fdb173b04a20dd82b4fd93e3744c88c8fafea696d9c7
195
217
  stringio (3.1.2) sha256=204f1828f85cdb39d57cac4abc6dc44b04505a223f131587f2e20ae3729ba131
@@ -7,28 +7,42 @@ module RungerStyle # rubocop:disable Style/ClassAndModuleChildren
7
7
 
8
8
  MSG = 'Each argument in a multi-line method call must start on a separate line.'
9
9
 
10
+ # rubocop:disable Metrics/PerceivedComplexity
11
+ # rubocop:disable Metrics/CyclomaticComplexity
10
12
  def on_send(node)
11
- return if node.arguments.size <= 1
12
- return unless node.parenthesized?
13
- return unless multiline_parentheses?(node)
14
-
15
- node.arguments.each_cons(2) do |arg1, arg2|
16
- next unless same_line?(arg1, arg2)
17
-
18
- separator = separator_range(arg1, arg2)
19
-
20
- add_offense(separator, message: MSG) do |corrector|
21
- base_indent = base_indentation(arg1)
22
- replacement = ",\n#{base_indent}"
23
- corrector.replace(separator, replacement)
13
+ if node.arguments? && multiline_method_call?(node)
14
+ # When a method call uses keyword arguments without braces,
15
+ # the parser produces a single hash node. In that case, inspect its pairs.
16
+ arguments =
17
+ if node.arguments.one? &&
18
+ node.arguments.first.hash_type? &&
19
+ !node.arguments.first.braces?
20
+ node.arguments.first.pairs
21
+ else
22
+ node.arguments
23
+ end
24
+
25
+ arguments.each_cons(2) do |arg1, arg2|
26
+ if same_line?(arg1, arg2)
27
+ separator = separator_range(arg1, arg2)
28
+
29
+ add_offense(separator, message: MSG) do |corrector|
30
+ base_indent = base_indentation(arg1)
31
+ replacement = ",\n#{base_indent}"
32
+ corrector.replace(separator, replacement)
33
+ end
34
+ end
24
35
  end
25
36
  end
26
37
  end
38
+ # rubocop:enable Metrics/CyclomaticComplexity
39
+ # rubocop:enable Metrics/PerceivedComplexity
27
40
 
28
41
  private
29
42
 
30
- def multiline_parentheses?(node)
31
- node.loc.begin.line != node.loc.end.line
43
+ def multiline_method_call?(node)
44
+ # Compare the line of the method name (selector) to the end line of the last argument.
45
+ node.loc.selector.line != node.arguments.last.loc.last_line
32
46
  end
33
47
 
34
48
  def same_line?(arg1, arg2)
@@ -40,9 +54,7 @@ module RungerStyle # rubocop:disable Style/ClassAndModuleChildren
40
54
  end
41
55
 
42
56
  def separator_range(arg1, arg2)
43
- end_pos = arg1.source_range.end.end_pos
44
- begin_pos = arg2.source_range.begin.begin_pos
45
- range_between(end_pos, begin_pos)
57
+ range_between(arg1.source_range.end_pos, arg2.source_range.begin_pos)
46
58
  end
47
59
  end
48
60
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RungerStyle
4
- VERSION = '4.3.0'
4
+ VERSION = '4.4.0'
5
5
  end
data/rulesets/default.yml CHANGED
@@ -218,6 +218,8 @@ Style/MultilineMethodSignature:
218
218
  Enabled: false
219
219
  Style/NegatedIf:
220
220
  Enabled: false
221
+ Style/Next:
222
+ Enabled: false
221
223
  Style/NumericPredicate:
222
224
  Enabled: false
223
225
  Style/ParenthesesAroundCondition:
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runger_style
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Runger
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-31 00:00:00.000000000 Z
10
+ date: 2025-02-09 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: prism