rufo 0.3.1 → 0.4.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 +5 -5
- data/.travis.yml +4 -5
- data/CHANGELOG.md +18 -0
- data/README.md +1 -1
- data/lib/rufo/command.rb +2 -2
- data/lib/rufo/formatter.rb +19 -6
- data/lib/rufo/version.rb +1 -1
- data/rufo.gemspec +1 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 882bdf48ef5e72a77d7971ee7569d8f9b8e70269c6c61a87bb73791a17634b8e
|
4
|
+
data.tar.gz: df6f5f5b21ad982b68bb21cb092d06eae0b9f1bdaebcbbd22711b490b9d41eb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4fdfc5b81de84282a471532d222fdf5b233a88d04c1ac5f8fa542e15b480264be269c5dcbf03d2bdea192739b5ca7b6c01fb96a95695b341211bff81f36ac90
|
7
|
+
data.tar.gz: 6bb2aa7c349e41503634d7a891047a401f9ebb8fe8f574c9f894bdcc5fd5c6cbf45aa16cc327b69227630c143e8e5b82e7edd141749dda5b423c4d2572791a9c
|
data/.travis.yml
CHANGED
@@ -2,14 +2,13 @@ sudo: false
|
|
2
2
|
language: ruby
|
3
3
|
cache: bundler
|
4
4
|
rvm:
|
5
|
-
- 2.5.
|
6
|
-
- 2.4.
|
7
|
-
- 2.3.
|
8
|
-
- 2.2.8
|
5
|
+
- 2.5.1
|
6
|
+
- 2.4.4
|
7
|
+
- 2.3.7
|
9
8
|
- ruby-head
|
10
9
|
matrix:
|
11
10
|
allow_failures:
|
12
11
|
- rvm: ruby-head
|
13
|
-
before_install: gem install bundler -v 1.16.
|
12
|
+
before_install: gem install bundler -v 1.16.2
|
14
13
|
script:
|
15
14
|
- bundle exec rake ci
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,24 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
### Fixed
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
## [0.4.0] - 2018-08-09
|
14
|
+
|
15
|
+
### Fixed
|
16
|
+
- Fix Bug: Rufo breaks HEREDOC syntax. (issue [#88](https://github.com/ruby-formatter/rufo/issues/88)). This fixes heredoc within parens formatting causing bad formatting and subsequent syntax error.
|
17
|
+
- Fix Bug: formatter.rb:3700:in `block in adjust_other_alignments': undefined method `[]' for nil:NilClass (NoMethodError) (issue [#87](https://github.com/ruby-formatter/rufo/issues/87)). Check alignment target exists.
|
18
|
+
- Fix Bug: Rufo keeps switching formatting on same file every time it runs (issue [#86](https://github.com/ruby-formatter/rufo/issues/86)). Avoids re-indenting nested literal indents.
|
19
|
+
|
20
|
+
### Added
|
21
|
+
- Allow for simpler else_body node to suit new Ripper style in 2.6.0
|
22
|
+
- Allow new Ripper node :excessed_comma in block parsing
|
23
|
+
- Allow :bodystmt in lambda nodes to suit Ripper format in 2.6.0
|
24
|
+
- Drop support for ruby 2.2
|
25
|
+
- Set minimum required ruby version. As rufo is not tested on unsupported versions it may (and is known to) break code.
|
26
|
+
|
9
27
|
## [0.3.1] - 2018-04-12
|
10
28
|
|
11
29
|
### Fixed
|
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 >= 2.
|
15
|
+
Rufo supports all Ruby versions >= 2.3.**5** / >= 2.4.**2**, due to a bug in Ruby's Ripper parser.
|
16
16
|
|
17
17
|
## Installation
|
18
18
|
|
data/lib/rufo/command.rb
CHANGED
data/lib/rufo/formatter.rb
CHANGED
@@ -1547,6 +1547,7 @@ class Rufo::Formatter
|
|
1547
1547
|
|
1548
1548
|
def visit_bodystmt(node)
|
1549
1549
|
# [:bodystmt, body, rescue_body, else_body, ensure_body]
|
1550
|
+
# [:bodystmt, [[:@int, "1", [2, 1]]], nil, [[:@int, "2", [4, 1]]], nil] (2.6.0)
|
1550
1551
|
_, body, rescue_body, else_body, ensure_body = node
|
1551
1552
|
|
1552
1553
|
inside_type_body = @inside_type_body
|
@@ -1585,9 +1586,11 @@ class Rufo::Formatter
|
|
1585
1586
|
|
1586
1587
|
if else_body
|
1587
1588
|
# [:else, body]
|
1589
|
+
# [[:@int, "2", [4, 1]]] (2.6.0)
|
1588
1590
|
write_indent
|
1589
1591
|
consume_keyword "else"
|
1590
|
-
|
1592
|
+
else_body = else_body[1] if else_body[0] == :else
|
1593
|
+
indent_body else_body
|
1591
1594
|
end
|
1592
1595
|
|
1593
1596
|
if ensure_body
|
@@ -2077,11 +2080,13 @@ class Rufo::Formatter
|
|
2077
2080
|
consume_token :on_lparen
|
2078
2081
|
skip_space_or_newline
|
2079
2082
|
|
2083
|
+
heredoc = current_token_kind == :on_heredoc_beg
|
2080
2084
|
if exps
|
2081
2085
|
visit_exps to_ary(exps), with_lines: false
|
2082
2086
|
end
|
2083
2087
|
|
2084
2088
|
skip_space_or_newline
|
2089
|
+
write "\n" if heredoc
|
2085
2090
|
consume_token :on_rparen
|
2086
2091
|
end
|
2087
2092
|
|
@@ -2111,8 +2116,9 @@ class Rufo::Formatter
|
|
2111
2116
|
end
|
2112
2117
|
|
2113
2118
|
if rest_param
|
2114
|
-
# check for trailing , |x, |
|
2115
|
-
|
2119
|
+
# check for trailing , |x, | (may be [:excessed_comma] in 2.6.0)
|
2120
|
+
case rest_param
|
2121
|
+
when 0, [:excessed_comma]
|
2116
2122
|
write_params_comma
|
2117
2123
|
else
|
2118
2124
|
# [:rest_param, [:@ident, "x", [1, 15]]]
|
@@ -2524,8 +2530,11 @@ class Rufo::Formatter
|
|
2524
2530
|
|
2525
2531
|
def visit_lambda(node)
|
2526
2532
|
# [:lambda, [:params, nil, nil, nil, nil, nil, nil, nil], [[:void_stmt]]]
|
2533
|
+
# [:lambda, [:params, nil, nil, nil, nil, nil, nil, nil], [[:@int, "1", [2, 2]], [:@int, "2", [3, 2]]]]
|
2534
|
+
# [:lambda, [:params, nil, nil, nil, nil, nil, nil, nil], [:bodystmt, [[:@int, "1", [2, 2]], [:@int, "2", [3, 2]]], nil, nil, nil]] (on 2.6.0)
|
2527
2535
|
_, params, body = node
|
2528
2536
|
|
2537
|
+
body = body[1] if body[0] == :bodystmt
|
2529
2538
|
check :on_tlambda
|
2530
2539
|
write "->"
|
2531
2540
|
next_token
|
@@ -3728,14 +3737,18 @@ class Rufo::Formatter
|
|
3728
3737
|
|
3729
3738
|
lines = @output.lines
|
3730
3739
|
|
3740
|
+
modified_lines = []
|
3731
3741
|
@literal_indents.each do |first_line, last_line, indent|
|
3732
3742
|
(first_line + 1..last_line).each do |line|
|
3733
3743
|
next if @unmodifiable_string_lines[line]
|
3734
3744
|
|
3735
3745
|
current_line = lines[line]
|
3736
3746
|
current_line = "#{" " * indent}#{current_line}"
|
3737
|
-
|
3738
|
-
|
3747
|
+
unless modified_lines[line]
|
3748
|
+
modified_lines[line] = current_line
|
3749
|
+
lines[line] = current_line
|
3750
|
+
adjust_other_alignments nil, line, 0, indent
|
3751
|
+
end
|
3739
3752
|
end
|
3740
3753
|
end
|
3741
3754
|
|
@@ -3803,7 +3816,7 @@ class Rufo::Formatter
|
|
3803
3816
|
next if adjustment_column <= column
|
3804
3817
|
next if scope == key
|
3805
3818
|
|
3806
|
-
target[index][1] += offset
|
3819
|
+
target[index][1] += offset if target[index]
|
3807
3820
|
end
|
3808
3821
|
end
|
3809
3822
|
|
data/lib/rufo/version.rb
CHANGED
data/rufo.gemspec
CHANGED
@@ -20,6 +20,7 @@ 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.3.5'
|
23
24
|
|
24
25
|
spec.add_development_dependency "bundler", "~> 1.15"
|
25
26
|
spec.add_development_dependency "rake", "~> 10.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.4.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: 2018-
|
11
|
+
date: 2018-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
116
|
+
version: 2.3.5
|
117
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
119
|
- - ">="
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
124
|
+
rubygems_version: 2.7.3
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: Ruby code formatter
|