rufo 0.8.1 → 0.9.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/CHANGELOG.md +8 -0
- data/lib/rufo/erb_formatter.rb +16 -2
- data/lib/rufo/formatter.rb +6 -1
- data/lib/rufo/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea171b0f22404cea26bb2f1263b5787721a968bc4be3dccb96d258ca7ab1586a
|
4
|
+
data.tar.gz: bdbafe76de95494aadff70e0183805dbe5a1734373b45d8fa5f6c4c8addb4e48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79279d81687a7137424100278d5fbc3727052317ad264bbf9b9379ec8f1902bf4e2a8239d6ba43b219149912372f9db78bc82288ff645889bd1333741c072b9d
|
7
|
+
data.tar.gz: 604473d7682a92356a4e3fd9aa865f3a0cb5ee248e7bac2b237c8f917d5feffa7fc66597dfbd5a91101154cfdbd5f9adb4d402fad2e0fcf034b4a3be79452867
|
data/CHANGELOG.md
CHANGED
@@ -12,6 +12,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
12
12
|
|
13
13
|
### Added
|
14
14
|
|
15
|
+
## [0.9.0] - 2020-01-11
|
16
|
+
|
17
|
+
### Added
|
18
|
+
|
19
|
+
- Support for trim style erb templates ending with `-%>`.
|
20
|
+
- Support for rails raw mode erb templates starting with `<%==`.
|
21
|
+
- Support for ruby 2.7 features. This includes beginless ranges `..10`, method argument forwarding `def forward(...); to(...); end` and keyword args not being allowed `def foo(*args, **nil)`.
|
22
|
+
|
15
23
|
## [0.8.1] - 2020-01-02
|
16
24
|
|
17
25
|
### Fixed
|
data/lib/rufo/erb_formatter.rb
CHANGED
@@ -1,6 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require "erb"
|
3
3
|
|
4
|
+
class CustomScanner < ERB::Compiler::TrimScanner
|
5
|
+
def initialize(src)
|
6
|
+
super(src, "<>", false)
|
7
|
+
@scan_reg = /(.*?)(%>\r?\n|#{(stags + etags).join("|")}|\n|\z)/m
|
8
|
+
end
|
9
|
+
|
10
|
+
def stags
|
11
|
+
["<%=="] + super
|
12
|
+
end
|
13
|
+
|
14
|
+
def etags
|
15
|
+
super + ["-%>"]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
4
19
|
class Rufo::ErbFormatter
|
5
20
|
def self.format(code, **options)
|
6
21
|
new(code, **options).format
|
@@ -9,9 +24,8 @@ class Rufo::ErbFormatter
|
|
9
24
|
attr_reader :result
|
10
25
|
|
11
26
|
def initialize(code, **options)
|
12
|
-
compiler = ERB::Compiler.new("<>")
|
13
27
|
@options = options
|
14
|
-
@scanner =
|
28
|
+
@scanner = CustomScanner.new(code)
|
15
29
|
@code_mode = false
|
16
30
|
@current_lineno = 0
|
17
31
|
@current_column = 0
|
data/lib/rufo/formatter.rb
CHANGED
@@ -484,6 +484,8 @@ class Rufo::Formatter
|
|
484
484
|
visit_begin_node(node)
|
485
485
|
when :END
|
486
486
|
visit_end_node(node)
|
487
|
+
when :args_forward
|
488
|
+
consume_op("...")
|
487
489
|
else
|
488
490
|
bug "Unhandled node: #{node.first}"
|
489
491
|
end
|
@@ -2052,6 +2054,7 @@ class Rufo::Formatter
|
|
2052
2054
|
end
|
2053
2055
|
|
2054
2056
|
skip_space_or_newline
|
2057
|
+
consume_keyword("nil") if current_token[1] == :on_kw
|
2055
2058
|
check :on_rparen
|
2056
2059
|
write ")"
|
2057
2060
|
next_token
|
@@ -2125,6 +2128,8 @@ class Rufo::Formatter
|
|
2125
2128
|
case rest_param
|
2126
2129
|
when 0, [:excessed_comma]
|
2127
2130
|
write_params_comma
|
2131
|
+
when [:args_forward]
|
2132
|
+
consume_op "..."
|
2128
2133
|
else
|
2129
2134
|
# [:rest_param, [:@ident, "x", [1, 15]]]
|
2130
2135
|
_, rest = rest_param
|
@@ -2377,7 +2382,7 @@ class Rufo::Formatter
|
|
2377
2382
|
# [:dot2, left, right]
|
2378
2383
|
_, left, right = node
|
2379
2384
|
|
2380
|
-
visit left
|
2385
|
+
visit left unless left.nil?
|
2381
2386
|
skip_space_or_newline
|
2382
2387
|
consume_op(inclusive ? ".." : "...")
|
2383
2388
|
skip_space_or_newline
|
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.9.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: 2020-01-
|
11
|
+
date: 2020-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
requirements: []
|
169
|
-
rubygems_version: 3.
|
169
|
+
rubygems_version: 3.1.2
|
170
170
|
signing_key:
|
171
171
|
specification_version: 4
|
172
172
|
summary: Ruby code formatter
|