rufo 0.14.0 → 0.15.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 +4 -4
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +12 -0
- data/lib/rufo/formatter.rb +34 -37
- data/lib/rufo/version.rb +1 -1
- data/rufo.gemspec +6 -5
- metadata +15 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1862ef1cb223254a0b735f6af30b3364045bd1c8673ad2c34ccd381571174377
|
4
|
+
data.tar.gz: 38d6908494f4a93cc527e914281e44c329dbec4b82a3ca4873acbf188856a559
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8d78360444224de4502c9f727171e7df9e4ff3344e48b28475d0cf9d92f53d6807755542db05c99d3eaa54cde3f6c2cbe5b67c7b1583d3d5e4346b4c93c7afa
|
7
|
+
data.tar.gz: f62ce1f77275410744f235c74a2293d838a5dfe6110768f6434735cc935e7520d6bc0511496e9d5c5912a945a783ac989c990a8bc8b7f61bfffb05c7055f7008
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -12,6 +12,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
12
12
|
|
13
13
|
### Added
|
14
14
|
|
15
|
+
## [0.15.0] - 2023-02-08
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
|
21
|
+
### Added
|
22
|
+
|
23
|
+
- Support for anonymous block argument forwarding
|
24
|
+
- Support for valueless hash literals and keyword arguments
|
25
|
+
- Support for anonymous rest and rest keyword arguments forwarding
|
26
|
+
|
15
27
|
## [0.14.0] - 2023-01-25
|
16
28
|
|
17
29
|
### 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
|
@@ -1516,6 +1497,9 @@ class Rufo::Formatter
|
|
1516
1497
|
consume_op "&"
|
1517
1498
|
skip_space_or_newline
|
1518
1499
|
visit block_arg
|
1500
|
+
elsif current_token_kind == :on_op && current_token_value == "&"
|
1501
|
+
consume_op "&"
|
1502
|
+
skip_space_or_newline
|
1519
1503
|
end
|
1520
1504
|
end
|
1521
1505
|
|
@@ -1544,7 +1528,10 @@ class Rufo::Formatter
|
|
1544
1528
|
write_indent(base_column) if needs_indent
|
1545
1529
|
consume_op "*"
|
1546
1530
|
skip_space_or_newline
|
1547
|
-
|
1531
|
+
# The name of rest arguments might be omitted.
|
1532
|
+
if star
|
1533
|
+
visit star
|
1534
|
+
end
|
1548
1535
|
|
1549
1536
|
if post_args && !post_args.empty?
|
1550
1537
|
write_params_comma
|
@@ -2226,7 +2213,10 @@ class Rufo::Formatter
|
|
2226
2213
|
skip_space_or_newline
|
2227
2214
|
consume_op "&"
|
2228
2215
|
skip_space_or_newline
|
2229
|
-
|
2216
|
+
# Ruby 3.1 or above, block arg might be anonymous
|
2217
|
+
if blockarg[1]
|
2218
|
+
visit blockarg[1]
|
2219
|
+
end
|
2230
2220
|
end
|
2231
2221
|
end
|
2232
2222
|
|
@@ -2403,16 +2393,21 @@ class Rufo::Formatter
|
|
2403
2393
|
arrow = symbol || !(key[0] == :@label || key[0] == :dyna_symbol)
|
2404
2394
|
|
2405
2395
|
visit key
|
2406
|
-
consume_space
|
2407
2396
|
|
2408
2397
|
# Don't output `=>` for keys that are `label: value`
|
2409
2398
|
# or `"label": value`
|
2410
2399
|
if arrow
|
2411
|
-
consume_op "=>"
|
2412
2400
|
consume_space
|
2401
|
+
consume_op "=>"
|
2413
2402
|
end
|
2414
2403
|
|
2415
|
-
|
2404
|
+
if value.nil?
|
2405
|
+
# The value for the key is omitted.
|
2406
|
+
skip_space
|
2407
|
+
else
|
2408
|
+
consume_space
|
2409
|
+
visit value
|
2410
|
+
end
|
2416
2411
|
end
|
2417
2412
|
|
2418
2413
|
def visit_splat_inside_hash(node)
|
@@ -2421,7 +2416,11 @@ class Rufo::Formatter
|
|
2421
2416
|
# [:assoc_splat, exp]
|
2422
2417
|
consume_op "**"
|
2423
2418
|
skip_space_or_newline
|
2424
|
-
|
2419
|
+
exp = node[1]
|
2420
|
+
# The name of rest kwargs might be omitted.
|
2421
|
+
if exp
|
2422
|
+
visit exp
|
2423
|
+
end
|
2425
2424
|
end
|
2426
2425
|
|
2427
2426
|
def visit_range(node, inclusive)
|
@@ -3554,7 +3553,7 @@ class Rufo::Formatter
|
|
3554
3553
|
end
|
3555
3554
|
|
3556
3555
|
def write_indent(indent = @indent)
|
3557
|
-
@output << " " * indent
|
3556
|
+
@output << (" " * indent)
|
3558
3557
|
@column += indent
|
3559
3558
|
end
|
3560
3559
|
|
@@ -3899,7 +3898,7 @@ class Rufo::Formatter
|
|
3899
3898
|
# get line of node, it is only used in visit_hash right now,
|
3900
3899
|
# so handling the following node types is enough.
|
3901
3900
|
case node.first
|
3902
|
-
when :hash, :string_literal, :symbol_literal, :symbol, :vcall, :string_content, :assoc_splat, :var_ref
|
3901
|
+
when :hash, :string_literal, :symbol_literal, :symbol, :vcall, :string_content, :assoc_splat, :var_ref, :dyna_symbol
|
3903
3902
|
node_line(node[1], beginning: beginning)
|
3904
3903
|
when :assoc_new
|
3905
3904
|
# There's no line number info for empty strings or hashes.
|
@@ -3912,8 +3911,6 @@ class Rufo::Formatter
|
|
3912
3911
|
end
|
3913
3912
|
when :assoclist_from_args
|
3914
3913
|
node_line(beginning ? node[1][0] : node[1].last, beginning: beginning)
|
3915
|
-
when :dyna_symbol
|
3916
|
-
node_line(node[1], beginning: beginning)
|
3917
3914
|
when :@label, :@int, :@ident, :@tstring_content, :@kw
|
3918
3915
|
node[2][0]
|
3919
3916
|
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.0
|
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:
|
@@ -209,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
210
|
- !ruby/object:Gem::Version
|
210
211
|
version: '0'
|
211
212
|
requirements: []
|
212
|
-
rubygems_version: 3.
|
213
|
+
rubygems_version: 3.4.1
|
213
214
|
signing_key:
|
214
215
|
specification_version: 4
|
215
216
|
summary: Ruby code formatter
|