rufo 0.14.0 → 0.15.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 +4 -4
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +22 -0
- data/lib/rufo/formatter.rb +39 -39
- data/lib/rufo/version.rb +1 -1
- data/rufo.gemspec +6 -5
- metadata +14 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fd22e372dba08b9779d73ceafaae522433e848e1283ef487baf5e366aaa58986
|
|
4
|
+
data.tar.gz: 8729947df2863f8f36ad539879750dd53c9f33c0c2885c2985984e0d07862ddc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 45f6c8259e2c20db8cd2e53778d0d8b7d3cfd57686eff05c650b61073338c9d5e89f3ed2e29a35f2e867a1b0a4ae50a7e205ce611b863b215751ffaf2522890a
|
|
7
|
+
data.tar.gz: 7d1d00b02060d5b4dcf01e91c1ee41cb955917b1bac5fd149f3e1d217e95aeeeb3e25920c321bed22b5635c2168d1d962fa2b0149efa68138680d45229121632
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,28 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
12
12
|
|
|
13
13
|
### Added
|
|
14
14
|
|
|
15
|
+
## [0.15.1] - 2023-02-08
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Fix Bug: raises error while formatting anonymous block argument forwarding
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
## [0.15.0] - 2023-02-08
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- Support for anonymous block argument forwarding
|
|
34
|
+
- Support for valueless hash literals and keyword arguments
|
|
35
|
+
- Support for anonymous rest and rest keyword arguments forwarding
|
|
36
|
+
|
|
15
37
|
## [0.14.0] - 2023-01-25
|
|
16
38
|
|
|
17
39
|
### Fixed
|
data/lib/rufo/formatter.rb
CHANGED
|
@@ -227,12 +227,11 @@ class Rufo::Formatter
|
|
|
227
227
|
when :@CHAR
|
|
228
228
|
# [:@CHAR, "?a", [1, 0]]
|
|
229
229
|
consume_token :on_CHAR
|
|
230
|
-
when :@gvar
|
|
230
|
+
when :@gvar, :@backref, :@label, :@op
|
|
231
231
|
# [:@gvar, "$abc", [1, 0]]
|
|
232
|
-
write node[1]
|
|
233
|
-
next_token
|
|
234
|
-
when :@backref
|
|
235
232
|
# [:@backref, "$1", [1, 0]]
|
|
233
|
+
# [:@label, "foo:", [1, 3]]
|
|
234
|
+
# [:@op, "*", [1, 1]]
|
|
236
235
|
write node[1]
|
|
237
236
|
next_token
|
|
238
237
|
when :@backtick
|
|
@@ -289,11 +288,12 @@ class Rufo::Formatter
|
|
|
289
288
|
visit_quoted_symbol_literal(node)
|
|
290
289
|
when :@ident
|
|
291
290
|
consume_token :on_ident
|
|
292
|
-
when :var_ref
|
|
291
|
+
when :var_ref, :var_field, :const_ref, :vcall, :fcall
|
|
293
292
|
# [:var_ref, exp]
|
|
294
|
-
visit node[1]
|
|
295
|
-
when :var_field
|
|
296
293
|
# [:var_field, exp]
|
|
294
|
+
# [:const_ref, [:@const, "Foo", [1, 8]]]
|
|
295
|
+
# [:vcall, exp]
|
|
296
|
+
# [:fcall, [:@ident, "foo", [1, 0]]]
|
|
297
297
|
visit node[1]
|
|
298
298
|
when :@kw
|
|
299
299
|
# [:@kw, "nil", [1, 0]]
|
|
@@ -307,9 +307,6 @@ class Rufo::Formatter
|
|
|
307
307
|
when :@const
|
|
308
308
|
# [:@const, "FOO", [1, 0]]
|
|
309
309
|
consume_token :on_const
|
|
310
|
-
when :const_ref
|
|
311
|
-
# [:const_ref, [:@const, "Foo", [1, 8]]]
|
|
312
|
-
visit node[1]
|
|
313
310
|
when :top_const_ref
|
|
314
311
|
# [:top_const_ref, [:@const, "Foo", [1, 2]]]
|
|
315
312
|
consume_op "::"
|
|
@@ -319,9 +316,7 @@ class Rufo::Formatter
|
|
|
319
316
|
# [:top_const_field, [:@const, "Foo", [1, 2]]]
|
|
320
317
|
consume_op "::"
|
|
321
318
|
visit node[1]
|
|
322
|
-
when :const_path_ref
|
|
323
|
-
visit_path(node)
|
|
324
|
-
when :const_path_field
|
|
319
|
+
when :const_path_ref, :const_path_field
|
|
325
320
|
visit_path(node)
|
|
326
321
|
when :assign
|
|
327
322
|
visit_assign(node)
|
|
@@ -341,12 +336,6 @@ class Rufo::Formatter
|
|
|
341
336
|
visit_suffix(node, "until")
|
|
342
337
|
when :rescue_mod
|
|
343
338
|
visit_suffix(node, "rescue")
|
|
344
|
-
when :vcall
|
|
345
|
-
# [:vcall, exp]
|
|
346
|
-
visit node[1]
|
|
347
|
-
when :fcall
|
|
348
|
-
# [:fcall, [:@ident, "foo", [1, 0]]]
|
|
349
|
-
visit node[1]
|
|
350
339
|
when :command
|
|
351
340
|
visit_command(node)
|
|
352
341
|
when :command_call
|
|
@@ -422,10 +411,6 @@ class Rufo::Formatter
|
|
|
422
411
|
visit_hash_key_value(node)
|
|
423
412
|
when :assoc_splat
|
|
424
413
|
visit_splat_inside_hash(node)
|
|
425
|
-
when :@label
|
|
426
|
-
# [:@label, "foo:", [1, 3]]
|
|
427
|
-
write node[1]
|
|
428
|
-
next_token
|
|
429
414
|
when :dot2
|
|
430
415
|
visit_range(node, true)
|
|
431
416
|
when :dot3
|
|
@@ -452,10 +437,6 @@ class Rufo::Formatter
|
|
|
452
437
|
consume_keyword "yield"
|
|
453
438
|
when :yield
|
|
454
439
|
visit_yield(node)
|
|
455
|
-
when :@op
|
|
456
|
-
# [:@op, "*", [1, 1]]
|
|
457
|
-
write node[1]
|
|
458
|
-
next_token
|
|
459
440
|
when :lambda
|
|
460
441
|
visit_lambda(node)
|
|
461
442
|
when :zsuper
|
|
@@ -1504,7 +1485,11 @@ class Rufo::Formatter
|
|
|
1504
1485
|
visit_comma_separated_list args
|
|
1505
1486
|
end
|
|
1506
1487
|
|
|
1507
|
-
|
|
1488
|
+
# block_arg will be...
|
|
1489
|
+
# - named => node
|
|
1490
|
+
# - anonymous => nil
|
|
1491
|
+
# - no arg => false
|
|
1492
|
+
if block_arg || block_arg.nil?
|
|
1508
1493
|
skip_space_or_newline
|
|
1509
1494
|
|
|
1510
1495
|
if comma?
|
|
@@ -1515,7 +1500,9 @@ class Rufo::Formatter
|
|
|
1515
1500
|
|
|
1516
1501
|
consume_op "&"
|
|
1517
1502
|
skip_space_or_newline
|
|
1518
|
-
|
|
1503
|
+
if block_arg
|
|
1504
|
+
visit block_arg
|
|
1505
|
+
end
|
|
1519
1506
|
end
|
|
1520
1507
|
end
|
|
1521
1508
|
|
|
@@ -1544,7 +1531,10 @@ class Rufo::Formatter
|
|
|
1544
1531
|
write_indent(base_column) if needs_indent
|
|
1545
1532
|
consume_op "*"
|
|
1546
1533
|
skip_space_or_newline
|
|
1547
|
-
|
|
1534
|
+
# The name of rest arguments might be omitted.
|
|
1535
|
+
if star
|
|
1536
|
+
visit star
|
|
1537
|
+
end
|
|
1548
1538
|
|
|
1549
1539
|
if post_args && !post_args.empty?
|
|
1550
1540
|
write_params_comma
|
|
@@ -2226,7 +2216,10 @@ class Rufo::Formatter
|
|
|
2226
2216
|
skip_space_or_newline
|
|
2227
2217
|
consume_op "&"
|
|
2228
2218
|
skip_space_or_newline
|
|
2229
|
-
|
|
2219
|
+
# Ruby 3.1 or above, block arg might be anonymous
|
|
2220
|
+
if blockarg[1]
|
|
2221
|
+
visit blockarg[1]
|
|
2222
|
+
end
|
|
2230
2223
|
end
|
|
2231
2224
|
end
|
|
2232
2225
|
|
|
@@ -2403,16 +2396,21 @@ class Rufo::Formatter
|
|
|
2403
2396
|
arrow = symbol || !(key[0] == :@label || key[0] == :dyna_symbol)
|
|
2404
2397
|
|
|
2405
2398
|
visit key
|
|
2406
|
-
consume_space
|
|
2407
2399
|
|
|
2408
2400
|
# Don't output `=>` for keys that are `label: value`
|
|
2409
2401
|
# or `"label": value`
|
|
2410
2402
|
if arrow
|
|
2411
|
-
consume_op "=>"
|
|
2412
2403
|
consume_space
|
|
2404
|
+
consume_op "=>"
|
|
2413
2405
|
end
|
|
2414
2406
|
|
|
2415
|
-
|
|
2407
|
+
if value.nil?
|
|
2408
|
+
# The value for the key is omitted.
|
|
2409
|
+
skip_space
|
|
2410
|
+
else
|
|
2411
|
+
consume_space
|
|
2412
|
+
visit value
|
|
2413
|
+
end
|
|
2416
2414
|
end
|
|
2417
2415
|
|
|
2418
2416
|
def visit_splat_inside_hash(node)
|
|
@@ -2421,7 +2419,11 @@ class Rufo::Formatter
|
|
|
2421
2419
|
# [:assoc_splat, exp]
|
|
2422
2420
|
consume_op "**"
|
|
2423
2421
|
skip_space_or_newline
|
|
2424
|
-
|
|
2422
|
+
exp = node[1]
|
|
2423
|
+
# The name of rest kwargs might be omitted.
|
|
2424
|
+
if exp
|
|
2425
|
+
visit exp
|
|
2426
|
+
end
|
|
2425
2427
|
end
|
|
2426
2428
|
|
|
2427
2429
|
def visit_range(node, inclusive)
|
|
@@ -3554,7 +3556,7 @@ class Rufo::Formatter
|
|
|
3554
3556
|
end
|
|
3555
3557
|
|
|
3556
3558
|
def write_indent(indent = @indent)
|
|
3557
|
-
@output << " " * indent
|
|
3559
|
+
@output << (" " * indent)
|
|
3558
3560
|
@column += indent
|
|
3559
3561
|
end
|
|
3560
3562
|
|
|
@@ -3899,7 +3901,7 @@ class Rufo::Formatter
|
|
|
3899
3901
|
# get line of node, it is only used in visit_hash right now,
|
|
3900
3902
|
# so handling the following node types is enough.
|
|
3901
3903
|
case node.first
|
|
3902
|
-
when :hash, :string_literal, :symbol_literal, :symbol, :vcall, :string_content, :assoc_splat, :var_ref
|
|
3904
|
+
when :hash, :string_literal, :symbol_literal, :symbol, :vcall, :string_content, :assoc_splat, :var_ref, :dyna_symbol
|
|
3903
3905
|
node_line(node[1], beginning: beginning)
|
|
3904
3906
|
when :assoc_new
|
|
3905
3907
|
# There's no line number info for empty strings or hashes.
|
|
@@ -3912,8 +3914,6 @@ class Rufo::Formatter
|
|
|
3912
3914
|
end
|
|
3913
3915
|
when :assoclist_from_args
|
|
3914
3916
|
node_line(beginning ? node[1][0] : node[1].last, beginning: beginning)
|
|
3915
|
-
when :dyna_symbol
|
|
3916
|
-
node_line(node[1], beginning: beginning)
|
|
3917
3917
|
when :@label, :@int, :@ident, :@tstring_content, :@kw
|
|
3918
3918
|
node[2][0]
|
|
3919
3919
|
end
|
data/lib/rufo/version.rb
CHANGED
data/rufo.gemspec
CHANGED
|
@@ -21,15 +21,16 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
22
|
spec.require_paths = ["lib"]
|
|
23
23
|
spec.required_ruby_version = ">= 2.7.0"
|
|
24
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
24
25
|
|
|
25
26
|
spec.add_development_dependency "bundler", ">= 1.15"
|
|
26
|
-
spec.add_development_dependency "byebug", "~> 11.
|
|
27
|
+
spec.add_development_dependency "byebug", "~> 11.1.3"
|
|
27
28
|
spec.add_development_dependency "guard-rspec", "~> 4.0"
|
|
28
29
|
spec.add_development_dependency "rake", "~> 13.0"
|
|
29
30
|
spec.add_development_dependency "rexml", "~> 3.2.5"
|
|
30
31
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
31
|
-
spec.add_development_dependency "rspec_junit_formatter", "~> 0.
|
|
32
|
-
spec.add_development_dependency "rubocop", "~>
|
|
33
|
-
spec.add_development_dependency "simplecov", "~> 0.
|
|
34
|
-
spec.add_development_dependency "simplecov-cobertura", "~>
|
|
32
|
+
spec.add_development_dependency "rspec_junit_formatter", "~> 0.6.0"
|
|
33
|
+
spec.add_development_dependency "rubocop", "~> 1.44.1"
|
|
34
|
+
spec.add_development_dependency "simplecov", "~> 0.22.0"
|
|
35
|
+
spec.add_development_dependency "simplecov-cobertura", "~> 2.1"
|
|
35
36
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rufo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ary Borenszweig
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-02-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 11.
|
|
33
|
+
version: 11.1.3
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 11.
|
|
40
|
+
version: 11.1.3
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: guard-rspec
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,56 +100,56 @@ dependencies:
|
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 0.
|
|
103
|
+
version: 0.6.0
|
|
104
104
|
type: :development
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 0.
|
|
110
|
+
version: 0.6.0
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
112
|
name: rubocop
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version:
|
|
117
|
+
version: 1.44.1
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version:
|
|
124
|
+
version: 1.44.1
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: simplecov
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
129
|
- - "~>"
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.
|
|
131
|
+
version: 0.22.0
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - "~>"
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.
|
|
138
|
+
version: 0.22.0
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: simplecov-cobertura
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
143
|
- - "~>"
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version:
|
|
145
|
+
version: '2.1'
|
|
146
146
|
type: :development
|
|
147
147
|
prerelease: false
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version:
|
|
152
|
+
version: '2.1'
|
|
153
153
|
description: Fast and unobtrusive Ruby code formatter
|
|
154
154
|
email:
|
|
155
155
|
- asterite@gmail.com
|
|
@@ -193,7 +193,8 @@ files:
|
|
|
193
193
|
homepage: https://github.com/ruby-formatter/rufo
|
|
194
194
|
licenses:
|
|
195
195
|
- MIT
|
|
196
|
-
metadata:
|
|
196
|
+
metadata:
|
|
197
|
+
rubygems_mfa_required: 'true'
|
|
197
198
|
post_install_message:
|
|
198
199
|
rdoc_options: []
|
|
199
200
|
require_paths:
|