rufo 0.15.1 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +12 -0
- data/bin/runtest +10 -0
- data/lib/rufo/erb_formatter.rb +1 -1
- data/lib/rufo/formatter.rb +332 -31
- data/lib/rufo/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52f19e023f290af007e285561a6806deec68912a07640c70221493f73f8f80a8
|
4
|
+
data.tar.gz: 118543384b66bdad4066b710b40f922c192833809a64e6a1075622fa3c1e80a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f03e8e965486ce6f0920c3a9ef1fc9d3d3574c7fe75f64e04da03023be985d2677c4b0560044422f216857a1e9b87e0155c13d0f390dabb0f4354c7f941f32e1
|
7
|
+
data.tar.gz: 83ac8d4527b5c72260d56d827c681dded32a38e31763dc1c0b11b17d3549e19d476d0aa07345d13ea9c262a595a6010af39c69ac62fbd98d7f4507381f6ad5dd
|
data/.gitignore
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.16.0] - 2023-04-02
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
|
19
|
+
- Formats ERB files with configuration (issue [275](https://github.com/ruby-formatter/rufo/issues/275))
|
20
|
+
|
21
|
+
### Changed
|
22
|
+
|
23
|
+
### Added
|
24
|
+
|
25
|
+
- Support for pattern matching syntax
|
26
|
+
|
15
27
|
## [0.15.1] - 2023-02-08
|
16
28
|
|
17
29
|
### Fixed
|
data/bin/runtest
ADDED
data/lib/rufo/erb_formatter.rb
CHANGED
data/lib/rufo/formatter.rb
CHANGED
@@ -227,7 +227,7 @@ class Rufo::Formatter
|
|
227
227
|
when :@CHAR
|
228
228
|
# [:@CHAR, "?a", [1, 0]]
|
229
229
|
consume_token :on_CHAR
|
230
|
-
when :@
|
230
|
+
when :@backref, :@label, :@op
|
231
231
|
# [:@gvar, "$abc", [1, 0]]
|
232
232
|
# [:@backref, "$1", [1, 0]]
|
233
233
|
# [:@label, "foo:", [1, 3]]
|
@@ -287,6 +287,7 @@ class Rufo::Formatter
|
|
287
287
|
when :dyna_symbol
|
288
288
|
visit_quoted_symbol_literal(node)
|
289
289
|
when :@ident
|
290
|
+
consume_pin_op
|
290
291
|
consume_token :on_ident
|
291
292
|
when :var_ref, :var_field, :const_ref, :vcall, :fcall
|
292
293
|
# [:var_ref, exp]
|
@@ -300,10 +301,16 @@ class Rufo::Formatter
|
|
300
301
|
consume_token :on_kw
|
301
302
|
when :@ivar
|
302
303
|
# [:@ivar, "@foo", [1, 0]]
|
304
|
+
consume_pin_op
|
303
305
|
consume_token :on_ivar
|
304
306
|
when :@cvar
|
305
307
|
# [:@cvar, "@@foo", [1, 0]]
|
308
|
+
consume_pin_op
|
306
309
|
consume_token :on_cvar
|
310
|
+
when :@gvar
|
311
|
+
# [:@gvar, "$foo", [1, 0]]
|
312
|
+
consume_pin_op
|
313
|
+
consume_token :on_gvar
|
307
314
|
when :@const
|
308
315
|
# [:@const, "FOO", [1, 0]]
|
309
316
|
consume_token :on_const
|
@@ -377,7 +384,7 @@ class Rufo::Formatter
|
|
377
384
|
visit_until(node)
|
378
385
|
when :case
|
379
386
|
visit_case(node)
|
380
|
-
when :when
|
387
|
+
when :when, :in
|
381
388
|
visit_when(node)
|
382
389
|
when :unary
|
383
390
|
visit_unary(node)
|
@@ -470,6 +477,12 @@ class Rufo::Formatter
|
|
470
477
|
visit_end_node(node)
|
471
478
|
when :args_forward
|
472
479
|
consume_op("...")
|
480
|
+
when :aryptn
|
481
|
+
visit_array_pattern(node)
|
482
|
+
when :fndptn
|
483
|
+
visit_find_pattern(node)
|
484
|
+
when :hshptn
|
485
|
+
visit_hash_pattern(node)
|
473
486
|
else
|
474
487
|
bug "Unhandled node: #{node.first}"
|
475
488
|
end
|
@@ -1543,13 +1556,26 @@ class Rufo::Formatter
|
|
1543
1556
|
end
|
1544
1557
|
|
1545
1558
|
def visit_begin(node)
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1559
|
+
if op?("^")
|
1560
|
+
# ^(expression)
|
1561
|
+
#
|
1562
|
+
# [:begin, expression_node]
|
1563
|
+
consume_op "^"
|
1564
|
+
skip_space
|
1565
|
+
consume_token :on_lparen
|
1566
|
+
skip_space
|
1567
|
+
visit node[1]
|
1568
|
+
skip_space
|
1569
|
+
consume_token :on_rparen
|
1570
|
+
else
|
1571
|
+
# begin
|
1572
|
+
# body
|
1573
|
+
# end
|
1574
|
+
#
|
1575
|
+
# [:begin, [:bodystmt, body, rescue_body, else_body, ensure_body]]
|
1576
|
+
consume_keyword "begin"
|
1577
|
+
visit node[1]
|
1578
|
+
end
|
1553
1579
|
end
|
1554
1580
|
|
1555
1581
|
def visit_bodystmt(node)
|
@@ -1800,7 +1826,7 @@ class Rufo::Formatter
|
|
1800
1826
|
# Maybe a Ripper bug, but if there's something before a star
|
1801
1827
|
# then a star shouldn't be here... but if it is... handle it
|
1802
1828
|
# somehow...
|
1803
|
-
if
|
1829
|
+
if op?("*")
|
1804
1830
|
star = before
|
1805
1831
|
else
|
1806
1832
|
visit_comma_separated_list to_ary(before)
|
@@ -2353,7 +2379,7 @@ class Rufo::Formatter
|
|
2353
2379
|
token_column = current_token_column
|
2354
2380
|
|
2355
2381
|
closing_brace_token, _ = find_closing_brace_token
|
2356
|
-
need_space = need_space_for_hash?(node, closing_brace_token)
|
2382
|
+
need_space = need_space_for_hash?(node, node[1], closing_brace_token)
|
2357
2383
|
|
2358
2384
|
check :on_lbrace
|
2359
2385
|
write "{"
|
@@ -2733,7 +2759,7 @@ class Rufo::Formatter
|
|
2733
2759
|
visit_comma_separated_list exps
|
2734
2760
|
end
|
2735
2761
|
|
2736
|
-
def visit_literal_elements(elements, inside_hash: false, inside_array: false, token_column:)
|
2762
|
+
def visit_literal_elements(elements, inside_hash: false, inside_array: false, token_column:, keep_final_newline: false, &block)
|
2737
2763
|
base_column = @column
|
2738
2764
|
base_line = @line
|
2739
2765
|
needs_final_space = (inside_hash || inside_array) && space?
|
@@ -2770,6 +2796,7 @@ class Rufo::Formatter
|
|
2770
2796
|
wrote_comma = false
|
2771
2797
|
first_space = nil
|
2772
2798
|
|
2799
|
+
visitor = block_given? ? block : ->(elem) { visit elem }
|
2773
2800
|
elements.each_with_index do |elem, i|
|
2774
2801
|
@literal_elements_level = @node_level
|
2775
2802
|
|
@@ -2777,9 +2804,9 @@ class Rufo::Formatter
|
|
2777
2804
|
wrote_comma = false
|
2778
2805
|
|
2779
2806
|
if needs_trailing_comma
|
2780
|
-
indent(needed_indent) {
|
2807
|
+
indent(needed_indent) { visitor.call(elem) }
|
2781
2808
|
else
|
2782
|
-
|
2809
|
+
visitor.call(elem)
|
2783
2810
|
end
|
2784
2811
|
|
2785
2812
|
# We have to be careful not to aumatically write a heredoc on next_token,
|
@@ -2829,6 +2856,8 @@ class Rufo::Formatter
|
|
2829
2856
|
else
|
2830
2857
|
if needs_final_space
|
2831
2858
|
consume_space
|
2859
|
+
elsif keep_final_newline
|
2860
|
+
skip_space
|
2832
2861
|
else
|
2833
2862
|
skip_space_or_newline
|
2834
2863
|
end
|
@@ -2938,31 +2967,55 @@ class Rufo::Formatter
|
|
2938
2967
|
# [:case, cond, case_when]
|
2939
2968
|
_, cond, case_when = node
|
2940
2969
|
|
2941
|
-
|
2970
|
+
# If node is inline pattern matching, case_expression will be false
|
2971
|
+
case_expression = keyword?("case")
|
2972
|
+
if case_expression
|
2973
|
+
consume_keyword "case"
|
2974
|
+
end
|
2942
2975
|
|
2943
2976
|
if cond
|
2944
2977
|
consume_space
|
2945
2978
|
visit cond
|
2946
2979
|
end
|
2947
2980
|
|
2948
|
-
|
2949
|
-
|
2950
|
-
|
2981
|
+
if case_expression
|
2982
|
+
consume_end_of_line
|
2983
|
+
write_indent
|
2984
|
+
else
|
2985
|
+
consume_space
|
2986
|
+
end
|
2951
2987
|
visit case_when
|
2952
2988
|
|
2953
|
-
|
2954
|
-
|
2989
|
+
if case_expression
|
2990
|
+
write_indent
|
2991
|
+
consume_keyword "end"
|
2992
|
+
end
|
2955
2993
|
end
|
2956
2994
|
|
2957
2995
|
def visit_when(node)
|
2958
2996
|
# [:when, conds, body, next_exp]
|
2959
|
-
|
2997
|
+
# [:in, pattern, body, next_exp]
|
2998
|
+
kw, conds_or_pattern, body, next_exp = node
|
2960
2999
|
|
2961
|
-
|
3000
|
+
case kw
|
3001
|
+
when :when
|
3002
|
+
consume_keyword "when"
|
3003
|
+
when :in
|
3004
|
+
if current_token_kind == :on_op
|
3005
|
+
consume_op "=>"
|
3006
|
+
else
|
3007
|
+
consume_keyword "in"
|
3008
|
+
end
|
3009
|
+
end
|
2962
3010
|
consume_space
|
2963
3011
|
|
2964
3012
|
indent(@column) do
|
2965
|
-
|
3013
|
+
case kw
|
3014
|
+
when :when
|
3015
|
+
visit_comma_separated_list conds_or_pattern
|
3016
|
+
when :in
|
3017
|
+
visit conds_or_pattern
|
3018
|
+
end
|
2966
3019
|
skip_space
|
2967
3020
|
end
|
2968
3021
|
written_space = false
|
@@ -3020,12 +3073,15 @@ class Rufo::Formatter
|
|
3020
3073
|
end
|
3021
3074
|
end
|
3022
3075
|
|
3023
|
-
|
3024
|
-
|
3025
|
-
|
3076
|
+
# If node is inline pattern matching, body will be nil
|
3077
|
+
if body
|
3078
|
+
if inline
|
3079
|
+
indent do
|
3080
|
+
visit_exps body
|
3081
|
+
end
|
3082
|
+
else
|
3083
|
+
indent_body body
|
3026
3084
|
end
|
3027
|
-
else
|
3028
|
-
indent_body body
|
3029
3085
|
end
|
3030
3086
|
|
3031
3087
|
if next_exp
|
@@ -3056,6 +3112,232 @@ class Rufo::Formatter
|
|
3056
3112
|
end
|
3057
3113
|
end
|
3058
3114
|
|
3115
|
+
def visit_array_pattern(node)
|
3116
|
+
# [:aryptn, const_ref, pre_rest, rest, post_rest]
|
3117
|
+
_, const_ref, pre_rest, rest, post_rest = node
|
3118
|
+
|
3119
|
+
if const_ref
|
3120
|
+
return visit_constant_pattern(node)
|
3121
|
+
end
|
3122
|
+
|
3123
|
+
# pattern is [*]
|
3124
|
+
if !pre_rest && !post_rest && rest == [:var_field, nil]
|
3125
|
+
consume_token :on_lbracket
|
3126
|
+
skip_space_or_newline
|
3127
|
+
consume_op "*"
|
3128
|
+
skip_space_or_newline
|
3129
|
+
consume_token :on_rbracket
|
3130
|
+
return
|
3131
|
+
end
|
3132
|
+
|
3133
|
+
token_column = current_token_column
|
3134
|
+
|
3135
|
+
has_bracket = current_token_kind == :on_lbracket
|
3136
|
+
if has_bracket
|
3137
|
+
consume_token :on_lbracket
|
3138
|
+
skip_space
|
3139
|
+
end
|
3140
|
+
|
3141
|
+
write_comma = false
|
3142
|
+
if pre_rest
|
3143
|
+
visit_literal_elements pre_rest, inside_array: true, token_column: token_column, keep_final_newline: !has_bracket
|
3144
|
+
write_comma = true
|
3145
|
+
end
|
3146
|
+
|
3147
|
+
# pattern like `[a,]` will make `rest` as `[:var_field, nil]`
|
3148
|
+
if rest && ((var_name_node = rest[1]) || current_token_value == "*")
|
3149
|
+
if write_comma
|
3150
|
+
write ","
|
3151
|
+
consume_space
|
3152
|
+
else
|
3153
|
+
skip_space_or_newline
|
3154
|
+
end
|
3155
|
+
|
3156
|
+
consume_op "*"
|
3157
|
+
if var_name_node
|
3158
|
+
visit rest
|
3159
|
+
end
|
3160
|
+
end
|
3161
|
+
|
3162
|
+
if post_rest
|
3163
|
+
skip_space
|
3164
|
+
check :on_comma
|
3165
|
+
write ","
|
3166
|
+
consume_space
|
3167
|
+
next_token
|
3168
|
+
|
3169
|
+
visit_literal_elements post_rest, inside_array: true, token_column: token_column, keep_final_newline: !has_bracket
|
3170
|
+
end
|
3171
|
+
|
3172
|
+
skip_space
|
3173
|
+
if has_bracket
|
3174
|
+
consume_token :on_rbracket
|
3175
|
+
end
|
3176
|
+
end
|
3177
|
+
|
3178
|
+
def visit_constant_pattern(node)
|
3179
|
+
# [:aryptn, const_ref, args]
|
3180
|
+
_, const_ref, args = node
|
3181
|
+
|
3182
|
+
visit const_ref
|
3183
|
+
|
3184
|
+
parens = current_token_kind == :on_lparen
|
3185
|
+
if parens
|
3186
|
+
consume_token :on_lparen
|
3187
|
+
else
|
3188
|
+
consume_token :on_lbracket
|
3189
|
+
end
|
3190
|
+
|
3191
|
+
skip_space
|
3192
|
+
visit_comma_separated_list args
|
3193
|
+
|
3194
|
+
skip_space
|
3195
|
+
if parens
|
3196
|
+
consume_token :on_rparen
|
3197
|
+
else
|
3198
|
+
consume_token :on_rbracket
|
3199
|
+
end
|
3200
|
+
end
|
3201
|
+
|
3202
|
+
def visit_find_pattern(node)
|
3203
|
+
# [:fndptn, const_ref, pre, patterns, post]
|
3204
|
+
_, const_ref, pre, patterns, post = node
|
3205
|
+
|
3206
|
+
parens = if const_ref
|
3207
|
+
visit const_ref
|
3208
|
+
current_token_kind == :on_lparen
|
3209
|
+
else
|
3210
|
+
false
|
3211
|
+
end
|
3212
|
+
|
3213
|
+
if parens
|
3214
|
+
consume_token :on_lparen
|
3215
|
+
else
|
3216
|
+
consume_token :on_lbracket
|
3217
|
+
end
|
3218
|
+
|
3219
|
+
skip_space
|
3220
|
+
consume_op "*"
|
3221
|
+
if pre[1] # check pre has name or not
|
3222
|
+
visit pre
|
3223
|
+
end
|
3224
|
+
|
3225
|
+
patterns.each do |pattern|
|
3226
|
+
skip_space
|
3227
|
+
consume_token :on_comma
|
3228
|
+
consume_space
|
3229
|
+
visit pattern
|
3230
|
+
end
|
3231
|
+
|
3232
|
+
skip_space
|
3233
|
+
consume_token :on_comma
|
3234
|
+
consume_space
|
3235
|
+
consume_op "*"
|
3236
|
+
if post[1] # check post has name or not
|
3237
|
+
visit post
|
3238
|
+
end
|
3239
|
+
|
3240
|
+
skip_space
|
3241
|
+
if parens
|
3242
|
+
consume_token :on_rparen
|
3243
|
+
else
|
3244
|
+
consume_token :on_rbracket
|
3245
|
+
end
|
3246
|
+
end
|
3247
|
+
|
3248
|
+
def visit_hash_pattern(node)
|
3249
|
+
_, const_ref, elements, rest = node
|
3250
|
+
|
3251
|
+
if const_ref
|
3252
|
+
visit const_ref
|
3253
|
+
end
|
3254
|
+
|
3255
|
+
token_column = current_token_column
|
3256
|
+
|
3257
|
+
need_space = false
|
3258
|
+
expected_right_token = nil
|
3259
|
+
if const_ref
|
3260
|
+
if current_token_kind == :on_lparen
|
3261
|
+
consume_token :on_lparen
|
3262
|
+
expected_right_token = :on_rparen
|
3263
|
+
else
|
3264
|
+
consume_token :on_lbracket
|
3265
|
+
expected_right_token = :on_rbracket
|
3266
|
+
end
|
3267
|
+
elsif current_token_kind == :on_lbrace
|
3268
|
+
expected_right_token = :on_rbrace
|
3269
|
+
closing_brace_token, _ = find_closing_brace_token
|
3270
|
+
need_space = need_space_for_hash?(node, [*elements, rest].compact, closing_brace_token)
|
3271
|
+
|
3272
|
+
consume_token :on_lbrace
|
3273
|
+
brace_position = @output.length - 1
|
3274
|
+
consume_space if need_space
|
3275
|
+
end
|
3276
|
+
|
3277
|
+
# pattern is {}
|
3278
|
+
empty = !const_ref && !elements && !rest
|
3279
|
+
if empty
|
3280
|
+
consume_token :on_rbrace
|
3281
|
+
return
|
3282
|
+
end
|
3283
|
+
|
3284
|
+
# pattern is {**}
|
3285
|
+
empty = !const_ref && elements.empty? && !rest
|
3286
|
+
if empty
|
3287
|
+
consume_space
|
3288
|
+
consume_op "**"
|
3289
|
+
consume_space
|
3290
|
+
consume_token :on_rbrace
|
3291
|
+
return
|
3292
|
+
end
|
3293
|
+
|
3294
|
+
visit_literal_elements elements, inside_hash: true, token_column: token_column, keep_final_newline: expected_right_token.nil? do |element|
|
3295
|
+
key, value = element
|
3296
|
+
visit key
|
3297
|
+
if value
|
3298
|
+
consume_space
|
3299
|
+
visit value
|
3300
|
+
end
|
3301
|
+
end
|
3302
|
+
|
3303
|
+
if rest || op?("**") || comma?
|
3304
|
+
unless elements.empty?
|
3305
|
+
write ","
|
3306
|
+
end
|
3307
|
+
|
3308
|
+
skip_space_or_newline
|
3309
|
+
if rest || op?("**")
|
3310
|
+
consume_space
|
3311
|
+
consume_op "**"
|
3312
|
+
if rest
|
3313
|
+
visit rest
|
3314
|
+
end
|
3315
|
+
end
|
3316
|
+
end
|
3317
|
+
|
3318
|
+
unless expected_right_token.nil?
|
3319
|
+
skip_space
|
3320
|
+
|
3321
|
+
if expected_right_token == :on_rbrace
|
3322
|
+
# in some case, need_space_for_hash? might be unexpected behaviour for some patterns, example:
|
3323
|
+
# { a: 1,
|
3324
|
+
# ** }
|
3325
|
+
# so re-check need_space? at here, and insert a space in the missing position if needed.
|
3326
|
+
char_after_brace = @output[brace_position + 1]
|
3327
|
+
if !need_space && !["\n", " "].include?(char_after_brace)
|
3328
|
+
need_space = true
|
3329
|
+
@output.insert(brace_position + 1, " ")
|
3330
|
+
end
|
3331
|
+
end
|
3332
|
+
|
3333
|
+
check expected_right_token
|
3334
|
+
right = current_token_value
|
3335
|
+
write " " if need_space
|
3336
|
+
write right
|
3337
|
+
next_token
|
3338
|
+
end
|
3339
|
+
end
|
3340
|
+
|
3059
3341
|
def consume_space(want_preserve_whitespace: false)
|
3060
3342
|
first_space = skip_space
|
3061
3343
|
if want_preserve_whitespace && !newline? && !comment? && first_space
|
@@ -3407,6 +3689,13 @@ class Rufo::Formatter
|
|
3407
3689
|
end
|
3408
3690
|
end
|
3409
3691
|
|
3692
|
+
def consume_pin_op
|
3693
|
+
return unless op?("^")
|
3694
|
+
|
3695
|
+
consume_op "^"
|
3696
|
+
skip_space
|
3697
|
+
end
|
3698
|
+
|
3410
3699
|
def indent(value = nil)
|
3411
3700
|
if value
|
3412
3701
|
old_indent = @indent
|
@@ -3656,6 +3945,10 @@ class Rufo::Formatter
|
|
3656
3945
|
current_token_kind == :on_sp
|
3657
3946
|
end
|
3658
3947
|
|
3948
|
+
def op?(value)
|
3949
|
+
current_token_kind == :on_op && current_token_value == value
|
3950
|
+
end
|
3951
|
+
|
3659
3952
|
def void_exps?(node)
|
3660
3953
|
node.size == 1 && node[0].size == 1 && node[0][0] == :void_stmt
|
3661
3954
|
end
|
@@ -3887,8 +4180,8 @@ class Rufo::Formatter
|
|
3887
4180
|
end
|
3888
4181
|
|
3889
4182
|
# Check to see if need to add space inside hash literal braces.
|
3890
|
-
def need_space_for_hash?(node, closing_brace_token)
|
3891
|
-
return false
|
4183
|
+
def need_space_for_hash?(node, elements, closing_brace_token)
|
4184
|
+
return false if elements.nil? || elements.empty?
|
3892
4185
|
|
3893
4186
|
left_need_space = current_token_line == node_line(node, beginning: true)
|
3894
4187
|
right_need_space = closing_brace_token[0][0] == node_line(node, beginning: false)
|
@@ -3901,8 +4194,16 @@ class Rufo::Formatter
|
|
3901
4194
|
# get line of node, it is only used in visit_hash right now,
|
3902
4195
|
# so handling the following node types is enough.
|
3903
4196
|
case node.first
|
3904
|
-
when :hash, :string_literal, :symbol_literal, :symbol, :vcall, :string_content, :assoc_splat, :var_ref, :dyna_symbol
|
4197
|
+
when :hash, :string_literal, :symbol_literal, :symbol, :vcall, :string_content, :assoc_splat, :var_ref, :dyna_symbol, :var_field
|
3905
4198
|
node_line(node[1], beginning: beginning)
|
4199
|
+
when :hshptn
|
4200
|
+
_, _, elements, rest = node
|
4201
|
+
elem = if beginning
|
4202
|
+
(elements[0] && elements[0][0]) || rest
|
4203
|
+
else
|
4204
|
+
rest || elements.last[0]
|
4205
|
+
end
|
4206
|
+
node_line(elem, beginning: beginning)
|
3906
4207
|
when :assoc_new
|
3907
4208
|
# There's no line number info for empty strings or hashes.
|
3908
4209
|
if node[1] != EMPTY_STRING && node[1] != EMPTY_HASH
|
data/lib/rufo/version.rb
CHANGED
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.16.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-02
|
11
|
+
date: 2023-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- README.md
|
172
172
|
- Rakefile
|
173
173
|
- bin/console
|
174
|
+
- bin/runtest
|
174
175
|
- bin/setup
|
175
176
|
- bin/verify-sample-code
|
176
177
|
- docs/developing-rufo.md
|
@@ -210,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
211
|
- !ruby/object:Gem::Version
|
211
212
|
version: '0'
|
212
213
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
214
|
+
rubygems_version: 3.4.1
|
214
215
|
signing_key:
|
215
216
|
specification_version: 4
|
216
217
|
summary: Ruby code formatter
|