rufo 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|