rufo 0.17.1 → 0.18.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/.github/workflows/ci.yml +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +24 -0
- data/Gemfile +11 -0
- data/README.md +1 -1
- data/bin/verify-sample-code +12 -2
- data/lib/rufo/formatter.rb +92 -71
- data/lib/rufo/parser.rb +44 -0
- data/lib/rufo/version.rb +1 -1
- data/rufo.gemspec +1 -12
- metadata +5 -145
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f4dd74a9e383128ba24cedbdfc7f008332f3a540ab89f9a5ab33be306413269a
|
|
4
|
+
data.tar.gz: f725c8a39471a92251294a041a9ae63dcefab5f55614b4ed3215cf11bfb29c4e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a59736abaa4d40516afea2e130c835da5683ac17fbe34f540f64c61ad7a4051c3ba02c05b846b90d97438c6bb0909922261463b3d62003931fde81140ab74295
|
|
7
|
+
data.tar.gz: 73bb9af67241c6552de2a3a6610d406c5566c50a5e473b753fbd18741d589a9009f6f2578754220456098f92cc91f4f457a29f3c95e51c89b16c8f5f671312b3
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -13,10 +13,10 @@ jobs:
|
|
|
13
13
|
runs-on: ubuntu-latest
|
|
14
14
|
strategy:
|
|
15
15
|
matrix:
|
|
16
|
-
ruby_version: ['3.
|
|
16
|
+
ruby_version: ['3.4', '3.3', '3.2', '3.1', '3.0']
|
|
17
17
|
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
20
|
|
|
21
21
|
- name: Setup Ruby
|
|
22
22
|
uses: ruby/setup-ruby@v1
|
|
@@ -36,7 +36,7 @@ jobs:
|
|
|
36
36
|
--format progress
|
|
37
37
|
|
|
38
38
|
- name: Upload code coverage
|
|
39
|
-
uses: codecov/codecov-action@
|
|
39
|
+
uses: codecov/codecov-action@v4
|
|
40
40
|
with:
|
|
41
41
|
files: ./coverage/coverage.xml
|
|
42
42
|
|
|
@@ -53,7 +53,7 @@ jobs:
|
|
|
53
53
|
bin/verify-sample-code
|
|
54
54
|
|
|
55
55
|
- name: Save test results
|
|
56
|
-
uses: actions/upload-artifact@
|
|
56
|
+
uses: actions/upload-artifact@v4
|
|
57
57
|
if: always()
|
|
58
58
|
with:
|
|
59
59
|
name: coverage-ruby-${{ matrix.ruby_version }}
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,30 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
12
12
|
|
|
13
13
|
### Added
|
|
14
14
|
|
|
15
|
+
## [0.18.1] - 2025-02-22
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Fix error when formatting pattern matching syntax. ([#325](https://github.com/ruby-formatter/rufo/pull/325))
|
|
19
|
+
- Fix bug for toplevel Array literal and Hash literal indentation. ([#327](https://github.com/ruby-formatter/rufo/pull/327))
|
|
20
|
+
- Fix bug for inline pattern matching to case expression. ([#338](https://github.com/ruby-formatter/rufo/pull/338))
|
|
21
|
+
- Fix bug for heredoc indentation. ([#342](https://github.com/ruby-formatter/rufo/pull/342))
|
|
22
|
+
- Fix bug for passing anonymous block arg. ([#332](https://github.com/ruby-formatter/rufo/issues/332))
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- Add Ruby 3.4 to test runs on CI. ([#337](https://github.com/ruby-formatter/rufo/pull/337))
|
|
28
|
+
|
|
29
|
+
## [0.18.0] - 2024-05-30
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
- Fix error when formatting ERB ([#323](https://github.com/ruby-formatter/rufo/pull/323))
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- Dropped support for Ruby 2.7 as it is end of life.
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
15
39
|
## [0.17.1] - 2024-02-03
|
|
16
40
|
|
|
17
41
|
### Fixed
|
data/Gemfile
CHANGED
|
@@ -2,3 +2,14 @@ source "https://rubygems.org"
|
|
|
2
2
|
|
|
3
3
|
# Specify your gem's dependencies in rufo.gemspec
|
|
4
4
|
gemspec
|
|
5
|
+
|
|
6
|
+
# Development dependencies
|
|
7
|
+
gem "bundler", ">= 1.15"
|
|
8
|
+
gem "debug", ">= 1.0.0"
|
|
9
|
+
gem "guard-rspec", "~> 4.0"
|
|
10
|
+
gem "rake", "~> 13.0"
|
|
11
|
+
gem "rspec", "~> 3.0"
|
|
12
|
+
gem "rspec_junit_formatter", "~> 0.6.0"
|
|
13
|
+
gem "rubocop", "~> 1.69.2"
|
|
14
|
+
gem "simplecov", "~> 0.22.0"
|
|
15
|
+
gem "simplecov-cobertura", "~> 2.1"
|
data/README.md
CHANGED
|
@@ -12,7 +12,7 @@ Unlike the best known Ruby formatter [RuboCop](https://github.com/bbatsov/ruboco
|
|
|
12
12
|
|
|
13
13
|
RuboCop does much more than just format code though, so feel free to run them both!
|
|
14
14
|
|
|
15
|
-
Rufo supports all Ruby versions >=
|
|
15
|
+
Rufo supports all Ruby versions >= 3.0.0.
|
|
16
16
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
data/bin/verify-sample-code
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
repos = {
|
|
4
|
-
"rspec/rspec-
|
|
5
|
-
|
|
4
|
+
"rspec/rspec-core" => {
|
|
5
|
+
"--exclude-pattern" => [
|
|
6
|
+
"spec/rspec/core/world_spec.rb",
|
|
7
|
+
"spec/rspec/core/formatters/exception_presenter_spec.rb",
|
|
8
|
+
"spec/rspec/core/formatters/snippet_extractor_spec.rb",
|
|
9
|
+
"spec/rspec/core/metadata_spec.rb",
|
|
10
|
+
"spec/rspec/core/formatters/html_formatter_spec.rb",
|
|
11
|
+
"spec/rspec/core/formatters/progress_formatter_spec.rb",
|
|
12
|
+
"spec/rspec/core/formatters_spec.rb",
|
|
13
|
+
"spec/rspec/core/formatters/documentation_formatter_spec.rb",
|
|
14
|
+
].join(","),
|
|
15
|
+
},
|
|
6
16
|
}
|
|
7
17
|
|
|
8
18
|
def run_command(cmd, allowed_statuses: [0])
|
data/lib/rufo/formatter.rb
CHANGED
|
@@ -18,6 +18,7 @@ class Rufo::Formatter
|
|
|
18
18
|
|
|
19
19
|
@tokens = Rufo::Parser.lex(code).reverse!
|
|
20
20
|
@sexp = Rufo::Parser.sexp(code)
|
|
21
|
+
@sexp ||= Rufo::Parser.sexp_unparsable_code(code)
|
|
21
22
|
|
|
22
23
|
# sexp being nil means that the code is not valid.
|
|
23
24
|
# Parse the code so we get better error messages.
|
|
@@ -251,23 +252,22 @@ class Rufo::Formatter
|
|
|
251
252
|
next_token
|
|
252
253
|
else
|
|
253
254
|
# For heredocs with tilde we sometimes need to align the contents
|
|
254
|
-
if heredoc && tilde
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
255
|
+
if heredoc && tilde
|
|
256
|
+
while (current_token_kind == :on_ignored_sp) ||
|
|
257
|
+
(current_token_kind == :on_tstring_content)
|
|
258
|
+
if @last_was_newline && current_token_value != "\n"
|
|
259
|
+
write_indent(next_indent)
|
|
260
|
+
@last_was_newline = false
|
|
261
|
+
end
|
|
262
|
+
if current_token_kind == :on_ignored_sp
|
|
263
|
+
skip_ignored_space
|
|
264
|
+
else
|
|
265
|
+
consume_token current_token_kind
|
|
266
|
+
end
|
|
264
267
|
end
|
|
265
268
|
else
|
|
266
269
|
while (current_token_kind == :on_ignored_sp) ||
|
|
267
|
-
(current_token_kind == :on_tstring_content)
|
|
268
|
-
(current_token_kind == :on_embexpr_beg)
|
|
269
|
-
check current_token_kind
|
|
270
|
-
break if current_token_kind == :on_embexpr_beg
|
|
270
|
+
(current_token_kind == :on_tstring_content)
|
|
271
271
|
consume_token current_token_kind
|
|
272
272
|
end
|
|
273
273
|
end
|
|
@@ -1083,7 +1083,7 @@ class Rufo::Formatter
|
|
|
1083
1083
|
# Check if there's a block arg and if the call ends with hash key/values
|
|
1084
1084
|
if args_node[0] == :args_add_block
|
|
1085
1085
|
_, args, block_arg = args_node
|
|
1086
|
-
want_trailing_comma =
|
|
1086
|
+
want_trailing_comma = block_arg_type(block_arg) == :no_arg
|
|
1087
1087
|
if args.is_a?(Array) && (last_arg = args.last) && last_arg.is_a?(Array) &&
|
|
1088
1088
|
last_arg[0].is_a?(Symbol) && last_arg[0] != :bare_assoc_hash
|
|
1089
1089
|
want_trailing_comma = false
|
|
@@ -1475,11 +1475,7 @@ class Rufo::Formatter
|
|
|
1475
1475
|
visit_comma_separated_list args
|
|
1476
1476
|
end
|
|
1477
1477
|
|
|
1478
|
-
|
|
1479
|
-
# - named => node
|
|
1480
|
-
# - anonymous => nil
|
|
1481
|
-
# - no arg => false
|
|
1482
|
-
if block_arg || block_arg.nil?
|
|
1478
|
+
if block_arg_type(block_arg) != :no_arg
|
|
1483
1479
|
skip_space_or_newline
|
|
1484
1480
|
|
|
1485
1481
|
if comma?
|
|
@@ -2208,14 +2204,14 @@ class Rufo::Formatter
|
|
|
2208
2204
|
|
|
2209
2205
|
_, elements = node
|
|
2210
2206
|
|
|
2211
|
-
|
|
2207
|
+
base_column = @column
|
|
2212
2208
|
|
|
2213
2209
|
check :on_lbracket
|
|
2214
2210
|
write "["
|
|
2215
2211
|
next_token
|
|
2216
2212
|
|
|
2217
2213
|
if elements
|
|
2218
|
-
visit_literal_elements to_ary(elements), inside_array: true, token_column:
|
|
2214
|
+
visit_literal_elements to_ary(elements), inside_array: true, token_column: base_column
|
|
2219
2215
|
else
|
|
2220
2216
|
skip_space_or_newline
|
|
2221
2217
|
end
|
|
@@ -2325,7 +2321,7 @@ class Rufo::Formatter
|
|
|
2325
2321
|
def visit_hash(node)
|
|
2326
2322
|
# [:hash, elements]
|
|
2327
2323
|
_, elements = node
|
|
2328
|
-
|
|
2324
|
+
base_column = @column
|
|
2329
2325
|
|
|
2330
2326
|
closing_brace_token, _ = find_closing_brace_token
|
|
2331
2327
|
need_space = need_space_for_hash?(node, node[1], closing_brace_token)
|
|
@@ -2339,7 +2335,7 @@ class Rufo::Formatter
|
|
|
2339
2335
|
if elements
|
|
2340
2336
|
# [:assoclist_from_args, elements]
|
|
2341
2337
|
push_hash(node) do
|
|
2342
|
-
visit_literal_elements(elements[1], inside_hash: true, token_column:
|
|
2338
|
+
visit_literal_elements(elements[1], inside_hash: true, token_column: base_column)
|
|
2343
2339
|
end
|
|
2344
2340
|
char_after_brace = @output[brace_position + 1]
|
|
2345
2341
|
# Check that need_space is set correctly.
|
|
@@ -2712,7 +2708,7 @@ class Rufo::Formatter
|
|
|
2712
2708
|
base_column = @column
|
|
2713
2709
|
base_line = @line
|
|
2714
2710
|
needs_final_space = (inside_hash || inside_array) && space?
|
|
2715
|
-
|
|
2711
|
+
skip_space
|
|
2716
2712
|
|
|
2717
2713
|
if inside_hash
|
|
2718
2714
|
needs_final_space = false
|
|
@@ -2924,11 +2920,19 @@ class Rufo::Formatter
|
|
|
2924
2920
|
|
|
2925
2921
|
# If node is inline pattern matching, case_expression will be false
|
|
2926
2922
|
case_expression = keyword?("case")
|
|
2923
|
+
already_visit_cond = false
|
|
2927
2924
|
if case_expression
|
|
2928
|
-
|
|
2925
|
+
if cond && cond[0] == :case
|
|
2926
|
+
visit cond
|
|
2927
|
+
# In this case, the `case` token is for the `cond`, but not for `node`
|
|
2928
|
+
case_expression = false
|
|
2929
|
+
already_visit_cond = true
|
|
2930
|
+
else
|
|
2931
|
+
consume_keyword "case"
|
|
2932
|
+
end
|
|
2929
2933
|
end
|
|
2930
2934
|
|
|
2931
|
-
if cond
|
|
2935
|
+
if cond && !already_visit_cond
|
|
2932
2936
|
consume_space
|
|
2933
2937
|
visit cond
|
|
2934
2938
|
end
|
|
@@ -3083,46 +3087,75 @@ class Rufo::Formatter
|
|
|
3083
3087
|
_, const_ref, pre_rest, rest, post_rest = node
|
|
3084
3088
|
|
|
3085
3089
|
if const_ref
|
|
3086
|
-
|
|
3090
|
+
visit const_ref
|
|
3087
3091
|
end
|
|
3088
3092
|
|
|
3093
|
+
left_paren_token, right_paren_token = if current_token_kind == :on_lparen
|
|
3094
|
+
%i[on_lparen on_rparen]
|
|
3095
|
+
elsif current_token_kind == :on_lbracket
|
|
3096
|
+
%i[on_lbracket on_rbracket]
|
|
3097
|
+
else
|
|
3098
|
+
[]
|
|
3099
|
+
end
|
|
3100
|
+
|
|
3089
3101
|
# pattern is [*]
|
|
3090
3102
|
if !pre_rest && !post_rest && rest == [:var_field, nil]
|
|
3091
|
-
|
|
3103
|
+
if left_paren_token
|
|
3104
|
+
consume_token left_paren_token
|
|
3105
|
+
end
|
|
3106
|
+
|
|
3092
3107
|
skip_space_or_newline
|
|
3093
3108
|
consume_op "*"
|
|
3094
3109
|
skip_space_or_newline
|
|
3095
|
-
|
|
3110
|
+
|
|
3111
|
+
if right_paren_token
|
|
3112
|
+
consume_token right_paren_token
|
|
3113
|
+
end
|
|
3096
3114
|
return
|
|
3097
3115
|
end
|
|
3098
3116
|
|
|
3099
3117
|
token_column = current_token_column
|
|
3100
3118
|
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
consume_token :on_lbracket
|
|
3119
|
+
if left_paren_token
|
|
3120
|
+
consume_token left_paren_token
|
|
3104
3121
|
skip_space
|
|
3105
3122
|
end
|
|
3106
3123
|
|
|
3107
|
-
|
|
3124
|
+
newline = newline?
|
|
3125
|
+
wrote_comma = false
|
|
3108
3126
|
if pre_rest
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
end
|
|
3127
|
+
visit_comma_separated_list pre_rest
|
|
3128
|
+
skip_space
|
|
3112
3129
|
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
if write_comma
|
|
3130
|
+
if comma?
|
|
3131
|
+
check :on_comma
|
|
3116
3132
|
write ","
|
|
3117
|
-
|
|
3118
|
-
|
|
3133
|
+
next_token
|
|
3134
|
+
skip_space
|
|
3135
|
+
wrote_comma = true
|
|
3136
|
+
end
|
|
3137
|
+
if newline
|
|
3119
3138
|
skip_space_or_newline
|
|
3139
|
+
write_line
|
|
3140
|
+
write_indent
|
|
3120
3141
|
end
|
|
3142
|
+
end
|
|
3121
3143
|
|
|
3122
|
-
|
|
3123
|
-
if
|
|
3124
|
-
|
|
3144
|
+
if rest
|
|
3145
|
+
if wrote_comma
|
|
3146
|
+
consume_space
|
|
3125
3147
|
end
|
|
3148
|
+
|
|
3149
|
+
# pattern like `[a,]` will make `rest` as `[:var_field, nil]`
|
|
3150
|
+
if (var_name_node = rest[1]) || current_token_value == "*"
|
|
3151
|
+
consume_op "*"
|
|
3152
|
+
if var_name_node
|
|
3153
|
+
visit rest
|
|
3154
|
+
end
|
|
3155
|
+
end
|
|
3156
|
+
elsif wrote_comma && !newline?
|
|
3157
|
+
# In Ruby 3.3, rest is nil when the code is like `[a,]`. Insert a space after comma at here.
|
|
3158
|
+
consume_space
|
|
3126
3159
|
end
|
|
3127
3160
|
|
|
3128
3161
|
if post_rest
|
|
@@ -3132,36 +3165,13 @@ class Rufo::Formatter
|
|
|
3132
3165
|
consume_space
|
|
3133
3166
|
next_token
|
|
3134
3167
|
|
|
3135
|
-
visit_literal_elements post_rest, inside_array: true, token_column: token_column, keep_final_newline: !
|
|
3136
|
-
end
|
|
3137
|
-
|
|
3138
|
-
skip_space
|
|
3139
|
-
if has_bracket
|
|
3140
|
-
consume_token :on_rbracket
|
|
3141
|
-
end
|
|
3142
|
-
end
|
|
3143
|
-
|
|
3144
|
-
def visit_constant_pattern(node)
|
|
3145
|
-
# [:aryptn, const_ref, args]
|
|
3146
|
-
_, const_ref, args = node
|
|
3147
|
-
|
|
3148
|
-
visit const_ref
|
|
3149
|
-
|
|
3150
|
-
parens = current_token_kind == :on_lparen
|
|
3151
|
-
if parens
|
|
3152
|
-
consume_token :on_lparen
|
|
3153
|
-
else
|
|
3154
|
-
consume_token :on_lbracket
|
|
3168
|
+
visit_literal_elements post_rest, inside_array: true, token_column: token_column, keep_final_newline: !left_paren_token
|
|
3155
3169
|
end
|
|
3156
3170
|
|
|
3157
3171
|
skip_space
|
|
3158
|
-
visit_comma_separated_list args
|
|
3159
3172
|
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
consume_token :on_rparen
|
|
3163
|
-
else
|
|
3164
|
-
consume_token :on_rbracket
|
|
3173
|
+
if right_paren_token
|
|
3174
|
+
consume_token right_paren_token
|
|
3165
3175
|
end
|
|
3166
3176
|
end
|
|
3167
3177
|
|
|
@@ -4193,4 +4203,15 @@ class Rufo::Formatter
|
|
|
4193
4203
|
node[2][0]
|
|
4194
4204
|
end
|
|
4195
4205
|
end
|
|
4206
|
+
|
|
4207
|
+
def block_arg_type(node)
|
|
4208
|
+
case node
|
|
4209
|
+
when nil
|
|
4210
|
+
:anonymous
|
|
4211
|
+
when false
|
|
4212
|
+
:no_arg
|
|
4213
|
+
else
|
|
4214
|
+
node
|
|
4215
|
+
end
|
|
4216
|
+
end
|
|
4196
4217
|
end
|
data/lib/rufo/parser.rb
CHANGED
|
@@ -10,4 +10,48 @@ class Rufo::Parser < Ripper
|
|
|
10
10
|
def on_parse_error(msg)
|
|
11
11
|
raise ::Rufo::SyntaxError.new(msg, lineno)
|
|
12
12
|
end
|
|
13
|
+
|
|
14
|
+
def self.sexp_unparsable_code(code)
|
|
15
|
+
code_type = detect_unparsable_code_type(code)
|
|
16
|
+
|
|
17
|
+
case code_type
|
|
18
|
+
when :yield
|
|
19
|
+
extract_original_code_sexp(
|
|
20
|
+
"def __rufo_dummy; #{code}; end",
|
|
21
|
+
->(exp) { exp => [:def, *, [:bodystmt, exps, *]]; exps }
|
|
22
|
+
)
|
|
23
|
+
when :next, :break, :redo
|
|
24
|
+
extract_original_code_sexp(
|
|
25
|
+
"loop do; #{code}; end",
|
|
26
|
+
->(exp) { exp => [:method_add_block, *, [:do_block, nil, [:bodystmt, [[:void_stmt], *exps], *]]]; exps }
|
|
27
|
+
)
|
|
28
|
+
when :retry
|
|
29
|
+
extract_original_code_sexp(
|
|
30
|
+
"begin; rescue; #{code}; end",
|
|
31
|
+
->(exp) { exp => [:begin, [:bodystmt, Array, [:rescue, nil, nil, exps, *], *]]; exps }
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.detect_unparsable_code_type(code)
|
|
37
|
+
tokens = self.lex(code)
|
|
38
|
+
token = tokens.find { |_, kind| kind != :on_sp && kind != :on_ignored_nl }
|
|
39
|
+
|
|
40
|
+
case token
|
|
41
|
+
in [_, :on_kw, "yield" | "next" | "break" | "retry" | "redo" => kw, _]
|
|
42
|
+
kw.to_sym
|
|
43
|
+
else
|
|
44
|
+
nil
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def self.extract_original_code_sexp(decorated_code, extractor)
|
|
49
|
+
sexp = self.sexp(decorated_code)
|
|
50
|
+
return nil unless sexp
|
|
51
|
+
|
|
52
|
+
# [:program, [exp]]
|
|
53
|
+
exp = sexp[1][0]
|
|
54
|
+
code_exps = extractor.call(exp)
|
|
55
|
+
[:program, code_exps]
|
|
56
|
+
end
|
|
13
57
|
end
|
data/lib/rufo/version.rb
CHANGED
data/rufo.gemspec
CHANGED
|
@@ -20,17 +20,6 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.bindir = "exe"
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
22
|
spec.require_paths = ["lib"]
|
|
23
|
-
spec.required_ruby_version = ">=
|
|
23
|
+
spec.required_ruby_version = ">= 3.0.0"
|
|
24
24
|
spec.metadata["rubygems_mfa_required"] = "true"
|
|
25
|
-
|
|
26
|
-
spec.add_development_dependency "bundler", ">= 1.15"
|
|
27
|
-
spec.add_development_dependency "byebug", "~> 11.1.3"
|
|
28
|
-
spec.add_development_dependency "guard-rspec", "~> 4.0"
|
|
29
|
-
spec.add_development_dependency "rake", "~> 13.0"
|
|
30
|
-
spec.add_development_dependency "rexml", "~> 3.2.5"
|
|
31
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
|
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"
|
|
36
25
|
end
|
metadata
CHANGED
|
@@ -1,155 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rufo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.18.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:
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: bundler
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - ">="
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '1.15'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - ">="
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '1.15'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: byebug
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: 11.1.3
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: 11.1.3
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: guard-rspec
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '4.0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '4.0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: rake
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '13.0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '13.0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: rexml
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: 3.2.5
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: 3.2.5
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: rspec
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '3.0'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '3.0'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rspec_junit_formatter
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - "~>"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: 0.6.0
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: 0.6.0
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rubocop
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: 1.44.1
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - "~>"
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: 1.44.1
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: simplecov
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.22.0
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.22.0
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: simplecov-cobertura
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '2.1'
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '2.1'
|
|
11
|
+
date: 2025-02-22 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
153
13
|
description: Fast and unobtrusive Ruby code formatter
|
|
154
14
|
email:
|
|
155
15
|
- asterite@gmail.com
|
|
@@ -203,14 +63,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
203
63
|
requirements:
|
|
204
64
|
- - ">="
|
|
205
65
|
- !ruby/object:Gem::Version
|
|
206
|
-
version:
|
|
66
|
+
version: 3.0.0
|
|
207
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
68
|
requirements:
|
|
209
69
|
- - ">="
|
|
210
70
|
- !ruby/object:Gem::Version
|
|
211
71
|
version: '0'
|
|
212
72
|
requirements: []
|
|
213
|
-
rubygems_version: 3.5.
|
|
73
|
+
rubygems_version: 3.5.22
|
|
214
74
|
signing_key:
|
|
215
75
|
specification_version: 4
|
|
216
76
|
summary: Ruby code formatter
|