rufo 0.12.0 → 0.14.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/.github/workflows/ci.yml +60 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +32 -0
- data/README.md +3 -3
- data/bin/verify-sample-code +3 -0
- data/docs/settings.md +2 -2
- data/lib/rufo/erb_formatter.rb +40 -2
- data/lib/rufo/formatter.rb +58 -33
- data/lib/rufo/version.rb +1 -1
- data/rufo.gemspec +2 -1
- metadata +22 -8
- data/.circleci/config.yml +0 -110
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '050197c783154878217024914afe1fc208e624521b5c3c1c4cd182c29ce70795'
|
|
4
|
+
data.tar.gz: 8ec88b8b3bc5fa60afbfa7eb7bcf395a2dd906c2b51e2c256d9f11876540279f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7cce9d7529456084473d761247402c659950460bb75155d3689d8c89bc89993793d9638fc0bc47d45a40d97eaf2d06d13c175f1db0aeef1356ad12a8124f5bfe
|
|
7
|
+
data.tar.gz: f4e46d300e1a94fc05c1d2aaa99ea6f24fa244faba984e8841f9874e5326ef324cc38b915008948156ec5825c572024dc0e57a0600f6b235fe06f7b7f3695e60
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: '0 0 * * 0'
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
test:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
ruby_version: ['3.2', '3.1', '3.0', '2.7']
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v3
|
|
20
|
+
|
|
21
|
+
- name: Setup Ruby
|
|
22
|
+
uses: ruby/setup-ruby@v1
|
|
23
|
+
with:
|
|
24
|
+
ruby-version: ${{ matrix.ruby_version }}
|
|
25
|
+
bundler-cache: true
|
|
26
|
+
|
|
27
|
+
- name: Bundle update
|
|
28
|
+
run: |
|
|
29
|
+
bundle update
|
|
30
|
+
|
|
31
|
+
- name: Run test
|
|
32
|
+
run: |
|
|
33
|
+
bundle exec rspec --profile 10 \
|
|
34
|
+
--format RspecJunitFormatter \
|
|
35
|
+
--out test_results/rspec.xml \
|
|
36
|
+
--format progress
|
|
37
|
+
|
|
38
|
+
- name: Upload code coverage
|
|
39
|
+
uses: codecov/codecov-action@v3
|
|
40
|
+
with:
|
|
41
|
+
files: ./coverage/coverage.xml
|
|
42
|
+
|
|
43
|
+
- name: Run rubocop
|
|
44
|
+
run: |
|
|
45
|
+
bundle exec rake rubocop
|
|
46
|
+
|
|
47
|
+
- name: Run rufo
|
|
48
|
+
run: |
|
|
49
|
+
bundle exec rake rufo:run
|
|
50
|
+
|
|
51
|
+
- name: Verify rufo works against sample codebases
|
|
52
|
+
run: |
|
|
53
|
+
bin/verify-sample-code
|
|
54
|
+
|
|
55
|
+
- name: Save test results
|
|
56
|
+
uses: actions/upload-artifact@v3
|
|
57
|
+
if: always()
|
|
58
|
+
with:
|
|
59
|
+
name: coverage-ruby-${{ matrix.ruby_version }}
|
|
60
|
+
path: coverage
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -12,9 +12,41 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
12
12
|
|
|
13
13
|
### Added
|
|
14
14
|
|
|
15
|
+
## [0.14.0] - 2023-01-25
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Correctly interpret erb scriptlets with more than one control-flow/block statement
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Dropped support for Ruby 2.6 as it is end of life.
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- Support for partial argument forwarding. (issue [268](https://github.com/ruby-formatter/rufo/issues/268))
|
|
28
|
+
- Support for endless method. (issue [271](https://github.com/ruby-formatter/rufo/issues/271))
|
|
29
|
+
- Add Ruby 3.2.0 to test runs on CI.
|
|
30
|
+
|
|
31
|
+
## [0.13.0] - 2021-05-07
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- Properly format comma when a heredoc is passed as a call argument
|
|
36
|
+
- Correctly interpret case statements with multiple when clauses in ERB files
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- Dropped support for Ruby 2.4 and 2.5 as they are end of life.
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- Add Ruby 3.0.1 to test runs on CI.
|
|
45
|
+
|
|
15
46
|
## [0.12.0] - 2020-03-08
|
|
16
47
|
|
|
17
48
|
### Fixed
|
|
49
|
+
|
|
18
50
|
- File.read default encode UTF-8
|
|
19
51
|
- Handle case where the code is invalid but ripper does not raise an error.
|
|
20
52
|
- Removed implicit dependency on `rake`.
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Rufo
|
|
2
2
|
|
|
3
|
-
[](https://github.com/ruby-formatter/rufo/actions/workflows/ci.yml)
|
|
4
4
|
[](https://rubygems.org/gems/rufo)
|
|
5
5
|
|
|
6
6
|
**Ru**by **fo**rmatter
|
|
@@ -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 >= 2.
|
|
15
|
+
Rufo supports all Ruby versions >= 2.7.0.
|
|
16
16
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
|
@@ -35,7 +35,7 @@ Or install it system wide with:
|
|
|
35
35
|
Once the gem is installed, enable format on save integration in your editor of choice with the following libraries:
|
|
36
36
|
|
|
37
37
|
- Atom: [rufo-atom](https://github.com/bmulvihill/rufo-atom) :construction:
|
|
38
|
-
- Emacs [emacs-rufo](https://github.com/aleandros/emacs-rufo) :construction: or [rufo.el](https://github.com/danielma/rufo.el)
|
|
38
|
+
- Emacs [emacs-rufo](https://github.com/aleandros/emacs-rufo) :construction: or [rufo.el](https://github.com/danielma/rufo.el) or [run rufo with reformatter](https://gist.github.com/kzkn/5c80c24d39e5e7b7881d55ad04605c5b)
|
|
39
39
|
- Sublime Text: [sublime-rufo](https://github.com/ruby-formatter/sublime-rufo)
|
|
40
40
|
- Vim: [rufo-vim](https://github.com/splattael/rufo-vim)
|
|
41
41
|
- Visual Studio Code: [vscode-rufo](https://marketplace.visualstudio.com/items?itemName=mbessey.vscode-rufo) or [rufo-vscode](https://marketplace.visualstudio.com/items?itemName=siliconsenthil.rufo-vscode)
|
data/bin/verify-sample-code
CHANGED
|
@@ -8,6 +8,9 @@ repos = {
|
|
|
8
8
|
"spec/rspec/core/formatters/snippet_extractor_spec.rb",
|
|
9
9
|
"spec/rspec/core/metadata_spec.rb",
|
|
10
10
|
"spec/rspec/core/formatters/html_formatter_spec.rb",
|
|
11
|
+
"spec/rspec/core/formatters_spec.rb",
|
|
12
|
+
"spec/rspec/core/formatters/documentation_formatter_spec.rb",
|
|
13
|
+
"spec/rspec/core/formatters/progress_formatter_spec.rb"
|
|
11
14
|
].join(","),
|
|
12
15
|
},
|
|
13
16
|
}
|
data/docs/settings.md
CHANGED
|
@@ -23,7 +23,7 @@ See https://github.com/ruby-formatter/rufo/issues/2 for more context!
|
|
|
23
23
|
- [parens_in_def](#parens_in_def)
|
|
24
24
|
- [trailing_commas](#trailing_commas)
|
|
25
25
|
- [quote_style](#quote_style)
|
|
26
|
-
- [includes and excludes](#includes
|
|
26
|
+
- [includes and excludes](#includes-and-excludes)
|
|
27
27
|
|
|
28
28
|
### align_case_when
|
|
29
29
|
|
|
@@ -284,5 +284,5 @@ Files can be excluded or included in formatting with rufo by specifying glob pat
|
|
|
284
284
|
For example:
|
|
285
285
|
```
|
|
286
286
|
includes [*.txt,*.text]
|
|
287
|
-
excludes [
|
|
287
|
+
excludes [**/*.erb]
|
|
288
288
|
```
|
data/lib/rufo/erb_formatter.rb
CHANGED
|
@@ -104,13 +104,51 @@ class Rufo::ErbFormatter
|
|
|
104
104
|
result.strip
|
|
105
105
|
end
|
|
106
106
|
|
|
107
|
+
def format_affix(affix, levels, type)
|
|
108
|
+
string = ""
|
|
109
|
+
case type
|
|
110
|
+
when :prefix
|
|
111
|
+
count = 0
|
|
112
|
+
while count < levels
|
|
113
|
+
count += 1
|
|
114
|
+
string += (" " * Rufo::Formatter::INDENT_SIZE * (count > 0 ? count - 1 : 0)) + affix
|
|
115
|
+
string += "\n" if count < levels
|
|
116
|
+
end
|
|
117
|
+
when :suffix
|
|
118
|
+
count = levels
|
|
119
|
+
while count > 0
|
|
120
|
+
count -= 1
|
|
121
|
+
string += "\n"
|
|
122
|
+
string += (" " * Rufo::Formatter::INDENT_SIZE * (count > 0 ? count - 1 : 0)) + affix
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
string
|
|
126
|
+
end
|
|
127
|
+
|
|
107
128
|
def determine_code_wrappers(code_str)
|
|
108
|
-
|
|
129
|
+
keywords = Ripper.lex("#{code_str}").filter { |lex_token| lex_token[1] == :on_kw }
|
|
130
|
+
lexical_tokens = keywords.filter { |lex_token| lex_token[2] != "when" }.map { |lex_token| lex_token[3].to_s }
|
|
131
|
+
state_tally = lexical_tokens.group_by(&:itself).transform_values(&:count)
|
|
132
|
+
beg_token = state_tally["BEG"] || state_tally["EXPR_BEG"] || 0
|
|
133
|
+
end_token = state_tally["END"] || state_tally["EXPR_END"] || 0
|
|
134
|
+
depth = beg_token - end_token
|
|
135
|
+
|
|
136
|
+
if depth > 0
|
|
137
|
+
affix = format_affix("end", depth.abs, :suffix)
|
|
138
|
+
return nil, affix if Ripper.sexp("#{code_str}#{affix}")
|
|
139
|
+
end
|
|
140
|
+
|
|
109
141
|
return nil, "}" if Ripper.sexp("#{code_str} }")
|
|
110
142
|
return "{", nil if Ripper.sexp("{ #{code_str}")
|
|
111
|
-
|
|
143
|
+
|
|
144
|
+
if depth < 0
|
|
145
|
+
affix = format_affix("begin", depth.abs, :prefix)
|
|
146
|
+
return affix, nil if Ripper.sexp("#{affix}#{code_str}")
|
|
147
|
+
end
|
|
148
|
+
|
|
112
149
|
return "begin\n", "\nend" if Ripper.sexp("begin\n#{code_str}\nend")
|
|
113
150
|
return "if a\n", "\nend" if Ripper.sexp("if a\n#{code_str}\nend")
|
|
151
|
+
return "case a\n", "\nend" if Ripper.sexp("case a\n#{code_str}\nend")
|
|
114
152
|
raise_syntax_error!(code_str)
|
|
115
153
|
end
|
|
116
154
|
|
data/lib/rufo/formatter.rb
CHANGED
|
@@ -212,7 +212,7 @@ class Rufo::Formatter
|
|
|
212
212
|
when :@float
|
|
213
213
|
# Float literal
|
|
214
214
|
#
|
|
215
|
-
# [:@
|
|
215
|
+
# [:@float, "123.45", [1, 0]]
|
|
216
216
|
consume_token :on_float
|
|
217
217
|
when :@rational
|
|
218
218
|
# Rational literal
|
|
@@ -1126,11 +1126,14 @@ class Rufo::Formatter
|
|
|
1126
1126
|
|
|
1127
1127
|
found_comma = comma?
|
|
1128
1128
|
|
|
1129
|
+
heredoc_needs_newline = true
|
|
1130
|
+
|
|
1129
1131
|
if found_comma
|
|
1130
1132
|
if needs_trailing_newline
|
|
1131
1133
|
write "," if trailing_commas && !block_arg
|
|
1132
1134
|
|
|
1133
1135
|
next_token
|
|
1136
|
+
heredoc_needs_newline = !newline?
|
|
1134
1137
|
indent(next_indent) do
|
|
1135
1138
|
consume_end_of_line
|
|
1136
1139
|
end
|
|
@@ -1142,7 +1145,7 @@ class Rufo::Formatter
|
|
|
1142
1145
|
end
|
|
1143
1146
|
|
|
1144
1147
|
if newline? || comment?
|
|
1145
|
-
if needs_trailing_newline
|
|
1148
|
+
if needs_trailing_newline && !@last_was_heredoc
|
|
1146
1149
|
write "," if trailing_commas && want_trailing_comma
|
|
1147
1150
|
|
|
1148
1151
|
indent(next_indent) do
|
|
@@ -1154,7 +1157,7 @@ class Rufo::Formatter
|
|
|
1154
1157
|
end
|
|
1155
1158
|
else
|
|
1156
1159
|
if needs_trailing_newline && !found_comma
|
|
1157
|
-
write "," if trailing_commas && want_trailing_comma
|
|
1160
|
+
write "," if trailing_commas && want_trailing_comma && !@last_was_heredoc
|
|
1158
1161
|
consume_end_of_line
|
|
1159
1162
|
write_indent
|
|
1160
1163
|
end
|
|
@@ -1169,8 +1172,9 @@ class Rufo::Formatter
|
|
|
1169
1172
|
call_info << @line
|
|
1170
1173
|
end
|
|
1171
1174
|
|
|
1172
|
-
if @last_was_heredoc
|
|
1175
|
+
if @last_was_heredoc && heredoc_needs_newline
|
|
1173
1176
|
write_line
|
|
1177
|
+
write_indent
|
|
1174
1178
|
end
|
|
1175
1179
|
consume_token :on_rparen
|
|
1176
1180
|
end
|
|
@@ -1452,14 +1456,10 @@ class Rufo::Formatter
|
|
|
1452
1456
|
# check for ||
|
|
1453
1457
|
if empty_params && !local_params
|
|
1454
1458
|
# Don't write || as it's meaningless
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
next_token
|
|
1460
|
-
else
|
|
1461
|
-
next_token
|
|
1462
|
-
end
|
|
1459
|
+
next_token
|
|
1460
|
+
skip_space_or_newline
|
|
1461
|
+
check :on_op
|
|
1462
|
+
next_token
|
|
1463
1463
|
return
|
|
1464
1464
|
end
|
|
1465
1465
|
|
|
@@ -1571,7 +1571,12 @@ class Rufo::Formatter
|
|
|
1571
1571
|
|
|
1572
1572
|
line = @line
|
|
1573
1573
|
|
|
1574
|
-
|
|
1574
|
+
endless = body[0].is_a?(Symbol)
|
|
1575
|
+
if endless
|
|
1576
|
+
visit body
|
|
1577
|
+
else
|
|
1578
|
+
indent_body body
|
|
1579
|
+
end
|
|
1575
1580
|
|
|
1576
1581
|
while rescue_body
|
|
1577
1582
|
# [:rescue, type, name, body, more_rescue]
|
|
@@ -1616,7 +1621,7 @@ class Rufo::Formatter
|
|
|
1616
1621
|
end
|
|
1617
1622
|
|
|
1618
1623
|
write_indent if @line != line
|
|
1619
|
-
consume_keyword "end"
|
|
1624
|
+
consume_keyword "end" unless endless
|
|
1620
1625
|
end
|
|
1621
1626
|
|
|
1622
1627
|
def visit_rescue_types(node)
|
|
@@ -1992,6 +1997,19 @@ class Rufo::Formatter
|
|
|
1992
1997
|
# [:@ident, "foo", [1, 6]],
|
|
1993
1998
|
# [:params, nil, nil, nil, nil, nil, nil, nil],
|
|
1994
1999
|
# [:bodystmt, [[:void_stmt]], nil, nil, nil]]
|
|
2000
|
+
#
|
|
2001
|
+
# OR For endless methods (in 3.0)
|
|
2002
|
+
# [:def,
|
|
2003
|
+
# [:@ident, "foo", [1, 6]],
|
|
2004
|
+
# nil,
|
|
2005
|
+
# [:string_literal, [:string_content, [:@tstring_content, "bar", [1, 11]
|
|
2006
|
+
# OR For endless methods (in 3.1)
|
|
2007
|
+
# [:def,
|
|
2008
|
+
# [:@ident, "foo", [1, 6]],
|
|
2009
|
+
# nil,
|
|
2010
|
+
# [:bodystmt,
|
|
2011
|
+
# [:string_literal, [:string_content, [:@tstring_content, "bar", [1, 11]
|
|
2012
|
+
|
|
1995
2013
|
_, name, params, body = node
|
|
1996
2014
|
|
|
1997
2015
|
consume_keyword "def"
|
|
@@ -2028,6 +2046,7 @@ class Rufo::Formatter
|
|
|
2028
2046
|
def visit_def_from_name(name, params, body)
|
|
2029
2047
|
visit name
|
|
2030
2048
|
|
|
2049
|
+
params = [] if params.nil?
|
|
2031
2050
|
params = params[1] if params[0] == :paren
|
|
2032
2051
|
|
|
2033
2052
|
skip_space
|
|
@@ -2068,6 +2087,7 @@ class Rufo::Formatter
|
|
|
2068
2087
|
end
|
|
2069
2088
|
write ")"
|
|
2070
2089
|
next_token
|
|
2090
|
+
skip_space
|
|
2071
2091
|
end
|
|
2072
2092
|
elsif !empty_params?(params)
|
|
2073
2093
|
if parens_in_def == :yes
|
|
@@ -2081,9 +2101,18 @@ class Rufo::Formatter
|
|
|
2081
2101
|
skip_space
|
|
2082
2102
|
end
|
|
2083
2103
|
|
|
2104
|
+
format_endless_method if current_token_kind == :on_op
|
|
2105
|
+
|
|
2084
2106
|
visit body
|
|
2085
2107
|
end
|
|
2086
2108
|
|
|
2109
|
+
def format_endless_method
|
|
2110
|
+
consume_space
|
|
2111
|
+
consume_op "="
|
|
2112
|
+
consume_space
|
|
2113
|
+
skip_space
|
|
2114
|
+
end
|
|
2115
|
+
|
|
2087
2116
|
def empty_params?(node)
|
|
2088
2117
|
_, a, b, c, d, e, f, g = node
|
|
2089
2118
|
!a && !b && !c && !d && !e && !f && !g
|
|
@@ -2139,6 +2168,7 @@ class Rufo::Formatter
|
|
|
2139
2168
|
when 0, [:excessed_comma]
|
|
2140
2169
|
write_params_comma
|
|
2141
2170
|
when [:args_forward]
|
|
2171
|
+
write_params_comma if needs_comma
|
|
2142
2172
|
consume_op "..."
|
|
2143
2173
|
else
|
|
2144
2174
|
# [:rest_param, [:@ident, "x", [1, 15]]]
|
|
@@ -2175,16 +2205,22 @@ class Rufo::Formatter
|
|
|
2175
2205
|
|
|
2176
2206
|
if double_star_param
|
|
2177
2207
|
write_params_comma if needs_comma
|
|
2178
|
-
|
|
2179
|
-
|
|
2208
|
+
case double_star_param
|
|
2209
|
+
when [:args_forward] # may be [:args_forward] in 3.1.0
|
|
2210
|
+
consume_op "..."
|
|
2211
|
+
else
|
|
2212
|
+
consume_op "**" # here
|
|
2213
|
+
skip_space_or_newline
|
|
2180
2214
|
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2215
|
+
# A nameless double star comes as an... Integer? :-S
|
|
2216
|
+
visit double_star_param if double_star_param.is_a?(Array)
|
|
2217
|
+
skip_space_or_newline
|
|
2218
|
+
needs_comma = true
|
|
2219
|
+
end
|
|
2185
2220
|
end
|
|
2186
2221
|
|
|
2187
|
-
|
|
2222
|
+
# In 3.1.0 blockarg may be just a symbol `:&`
|
|
2223
|
+
if blockarg && blockarg.is_a?(Array)
|
|
2188
2224
|
# [:blockarg, [:@ident, "block", [1, 16]]]
|
|
2189
2225
|
write_params_comma if needs_comma
|
|
2190
2226
|
skip_space_or_newline
|
|
@@ -3184,13 +3220,6 @@ class Rufo::Formatter
|
|
|
3184
3220
|
last_space = current_token
|
|
3185
3221
|
next_token
|
|
3186
3222
|
when :on_nl, :on_ignored_nl
|
|
3187
|
-
# I don't know why but sometimes a on_ignored_nl
|
|
3188
|
-
# can appear with nil as the "text", and that's wrong
|
|
3189
|
-
if current_token[2].nil?
|
|
3190
|
-
next_token
|
|
3191
|
-
next
|
|
3192
|
-
end
|
|
3193
|
-
|
|
3194
3223
|
if last == :newline
|
|
3195
3224
|
# If we pass through consecutive newlines, don't print them
|
|
3196
3225
|
# yet, but remember this fact
|
|
@@ -3884,11 +3913,7 @@ class Rufo::Formatter
|
|
|
3884
3913
|
when :assoclist_from_args
|
|
3885
3914
|
node_line(beginning ? node[1][0] : node[1].last, beginning: beginning)
|
|
3886
3915
|
when :dyna_symbol
|
|
3887
|
-
|
|
3888
|
-
node_line(node[1], beginning: beginning)
|
|
3889
|
-
else
|
|
3890
|
-
node_line(node[1][0], beginning: beginning)
|
|
3891
|
-
end
|
|
3916
|
+
node_line(node[1], beginning: beginning)
|
|
3892
3917
|
when :@label, :@int, :@ident, :@tstring_content, :@kw
|
|
3893
3918
|
node[2][0]
|
|
3894
3919
|
end
|
data/lib/rufo/version.rb
CHANGED
data/rufo.gemspec
CHANGED
|
@@ -20,12 +20,13 @@ 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 = ">= 2.
|
|
23
|
+
spec.required_ruby_version = ">= 2.7.0"
|
|
24
24
|
|
|
25
25
|
spec.add_development_dependency "bundler", ">= 1.15"
|
|
26
26
|
spec.add_development_dependency "byebug", "~> 11.0.1"
|
|
27
27
|
spec.add_development_dependency "guard-rspec", "~> 4.0"
|
|
28
28
|
spec.add_development_dependency "rake", "~> 13.0"
|
|
29
|
+
spec.add_development_dependency "rexml", "~> 3.2.5"
|
|
29
30
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
30
31
|
spec.add_development_dependency "rspec_junit_formatter", "~> 0.4.1"
|
|
31
32
|
spec.add_development_dependency "rubocop", "~> 0.79.0"
|
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.14.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ary Borenszweig
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-01-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -66,6 +66,20 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
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
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: rspec
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -144,8 +158,8 @@ executables:
|
|
|
144
158
|
extensions: []
|
|
145
159
|
extra_rdoc_files: []
|
|
146
160
|
files:
|
|
147
|
-
- ".circleci/config.yml"
|
|
148
161
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
162
|
+
- ".github/workflows/ci.yml"
|
|
149
163
|
- ".gitignore"
|
|
150
164
|
- ".rspec"
|
|
151
165
|
- ".rubocop.yml"
|
|
@@ -180,7 +194,7 @@ homepage: https://github.com/ruby-formatter/rufo
|
|
|
180
194
|
licenses:
|
|
181
195
|
- MIT
|
|
182
196
|
metadata: {}
|
|
183
|
-
post_install_message:
|
|
197
|
+
post_install_message:
|
|
184
198
|
rdoc_options: []
|
|
185
199
|
require_paths:
|
|
186
200
|
- lib
|
|
@@ -188,15 +202,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
188
202
|
requirements:
|
|
189
203
|
- - ">="
|
|
190
204
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: 2.
|
|
205
|
+
version: 2.7.0
|
|
192
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
207
|
requirements:
|
|
194
208
|
- - ">="
|
|
195
209
|
- !ruby/object:Gem::Version
|
|
196
210
|
version: '0'
|
|
197
211
|
requirements: []
|
|
198
|
-
rubygems_version: 3.
|
|
199
|
-
signing_key:
|
|
212
|
+
rubygems_version: 3.3.7
|
|
213
|
+
signing_key:
|
|
200
214
|
specification_version: 4
|
|
201
215
|
summary: Ruby code formatter
|
|
202
216
|
test_files: []
|
data/.circleci/config.yml
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"-": &dockerbuild
|
|
2
|
-
steps:
|
|
3
|
-
- checkout
|
|
4
|
-
|
|
5
|
-
# Which version of ruby?
|
|
6
|
-
- run:
|
|
7
|
-
name: Which ruby?
|
|
8
|
-
command: ruby --version | tee ruby-version-for-ci.txt
|
|
9
|
-
|
|
10
|
-
# Which version of bundler?
|
|
11
|
-
- run:
|
|
12
|
-
name: Which bundler?
|
|
13
|
-
command: bundle -v
|
|
14
|
-
|
|
15
|
-
# Restore bundle cache
|
|
16
|
-
- restore_cache:
|
|
17
|
-
keys:
|
|
18
|
-
- bundler-packages-v2-{{ checksum "ruby-version-for-ci.txt" }}-{{ checksum "rufo.gemspec" }}-{{ checksum "bin/verify-sample-code" }}
|
|
19
|
-
|
|
20
|
-
- run:
|
|
21
|
-
name: Bundle Install
|
|
22
|
-
command: bundle check || bundle install
|
|
23
|
-
|
|
24
|
-
- run:
|
|
25
|
-
name: Run rspec
|
|
26
|
-
command: |
|
|
27
|
-
bundle exec rspec --profile 10 \
|
|
28
|
-
--format RspecJunitFormatter \
|
|
29
|
-
--out test_results/rspec.xml \
|
|
30
|
-
--format progress
|
|
31
|
-
- run:
|
|
32
|
-
name: Upload code coverage
|
|
33
|
-
command: bash <(curl -s https://codecov.io/bash) -f 'coverage/coverage.xml'
|
|
34
|
-
- run:
|
|
35
|
-
name: Run RuboCop
|
|
36
|
-
command: |
|
|
37
|
-
bundle exec rake rubocop
|
|
38
|
-
- run:
|
|
39
|
-
name: Run Rufo
|
|
40
|
-
command: |
|
|
41
|
-
bundle exec rake rufo:run
|
|
42
|
-
|
|
43
|
-
- run:
|
|
44
|
-
name: Verify rufo works against sample codebases
|
|
45
|
-
command: |
|
|
46
|
-
bin/verify-sample-code
|
|
47
|
-
|
|
48
|
-
# Store bundle cache
|
|
49
|
-
- save_cache:
|
|
50
|
-
key: bundler-packages-v2-{{ checksum "ruby-version-for-ci.txt" }}-{{ checksum "rufo.gemspec" }}-{{ checksum "bin/verify-sample-code" }}
|
|
51
|
-
paths:
|
|
52
|
-
- vendor/bundle
|
|
53
|
-
- Gemfile.lock
|
|
54
|
-
|
|
55
|
-
# Save test results for timing analysis
|
|
56
|
-
- store_test_results:
|
|
57
|
-
path: test_results
|
|
58
|
-
|
|
59
|
-
version: 2
|
|
60
|
-
jobs:
|
|
61
|
-
build-2-7-0:
|
|
62
|
-
<<: *dockerbuild
|
|
63
|
-
docker:
|
|
64
|
-
- image: circleci/ruby:2.7.0
|
|
65
|
-
environment:
|
|
66
|
-
BUNDLE_JOBS: "3"
|
|
67
|
-
BUNDLE_RETRY: "3"
|
|
68
|
-
BUNDLE_PATH: /home/circleci/project/vendor/bundle
|
|
69
|
-
build-2-6-3:
|
|
70
|
-
<<: *dockerbuild
|
|
71
|
-
docker:
|
|
72
|
-
- image: circleci/ruby:2.6.3
|
|
73
|
-
environment:
|
|
74
|
-
BUNDLE_JOBS: "3"
|
|
75
|
-
BUNDLE_RETRY: "3"
|
|
76
|
-
BUNDLE_PATH: /home/circleci/project/vendor/bundle
|
|
77
|
-
build-2-6-1:
|
|
78
|
-
<<: *dockerbuild
|
|
79
|
-
docker:
|
|
80
|
-
- image: circleci/ruby:2.6.1
|
|
81
|
-
environment:
|
|
82
|
-
BUNDLE_JOBS: "3"
|
|
83
|
-
BUNDLE_RETRY: "3"
|
|
84
|
-
BUNDLE_PATH: vendor/bundle
|
|
85
|
-
build-2-5-3:
|
|
86
|
-
<<: *dockerbuild
|
|
87
|
-
docker:
|
|
88
|
-
- image: circleci/ruby:2.5.3
|
|
89
|
-
environment:
|
|
90
|
-
BUNDLE_JOBS: "3"
|
|
91
|
-
BUNDLE_RETRY: "3"
|
|
92
|
-
BUNDLE_PATH: vendor/bundle
|
|
93
|
-
build-2-4-5:
|
|
94
|
-
<<: *dockerbuild
|
|
95
|
-
docker:
|
|
96
|
-
- image: circleci/ruby:2.4.5
|
|
97
|
-
environment:
|
|
98
|
-
BUNDLE_JOBS: "3"
|
|
99
|
-
BUNDLE_RETRY: "3"
|
|
100
|
-
BUNDLE_PATH: vendor/bundle
|
|
101
|
-
|
|
102
|
-
workflows:
|
|
103
|
-
version: 2
|
|
104
|
-
test:
|
|
105
|
-
jobs:
|
|
106
|
-
- build-2-7-0
|
|
107
|
-
- build-2-6-3
|
|
108
|
-
- build-2-6-1
|
|
109
|
-
- build-2-5-3
|
|
110
|
-
- build-2-4-5
|