w_syntax_tree-erb 0.10.5 → 0.11.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/main.yml +1 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +5 -4
- data/README.md +6 -0
- data/lib/syntax_tree/erb/format.rb +4 -0
- data/lib/syntax_tree/erb/nodes.rb +28 -1
- data/lib/syntax_tree/erb/parser.rb +5 -3
- data/lib/syntax_tree/erb/version.rb +1 -1
- metadata +2 -3
- data/.github/workflows/auto-merge.yml +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 459993e3b6d5a09ea5a902d6038acac34eeaddb7fa878cbd41a40039712c2d9a
|
4
|
+
data.tar.gz: 48843275b9b5ab46a23d61677c9e7b8cd93e7e4f5095376d128d9f525408cae9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 373abd1743f157914a3394f127a9e6b7d5c15fce3179894f74de072a220e5a6458fb2d09a25f4b7a2b5764c0f81f870045cba6c6f6756931be8fdbbb23e260eb
|
7
|
+
data.tar.gz: 38d635a29da6044441e6304fd488e8281b6a1ffa0718cea508541c242a9fc9d53d618956185ed1cf8cbf16efa357368ee99c5fb8d6d99a00e212e23eb92ac8a5
|
data/.github/workflows/main.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [0.11.0] - 2024-04-23
|
10
|
+
|
11
|
+
- ErbContent now has its value as child_nodes instead of empty array.
|
12
|
+
- Allow html void tags and format self-closing tags
|
13
|
+
|
9
14
|
## [0.10.5] - 2023-09-03
|
10
15
|
|
11
16
|
- Handle ERB-tags inside HTML-tags, like `<div <%= "class='foo'" %>>`
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
w_syntax_tree-erb (0.
|
4
|
+
w_syntax_tree-erb (0.11.0)
|
5
5
|
prettier_print (~> 1.2, >= 1.2.0)
|
6
6
|
syntax_tree (~> 6.1, >= 6.1.1)
|
7
7
|
|
@@ -9,20 +9,21 @@ GEM
|
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
11
|
docile (1.4.0)
|
12
|
-
minitest (5.
|
12
|
+
minitest (5.20.0)
|
13
13
|
prettier_print (1.2.1)
|
14
|
-
rake (13.0
|
14
|
+
rake (13.1.0)
|
15
15
|
simplecov (0.22.0)
|
16
16
|
docile (~> 1.1)
|
17
17
|
simplecov-html (~> 0.11)
|
18
18
|
simplecov_json_formatter (~> 0.1)
|
19
19
|
simplecov-html (0.12.3)
|
20
20
|
simplecov_json_formatter (0.1.4)
|
21
|
-
syntax_tree (6.
|
21
|
+
syntax_tree (6.2.0)
|
22
22
|
prettier_print (>= 1.2.0)
|
23
23
|
|
24
24
|
PLATFORMS
|
25
25
|
arm64-darwin-21
|
26
|
+
arm64-darwin-23
|
26
27
|
x86_64-darwin-21
|
27
28
|
x86_64-darwin-22
|
28
29
|
x86_64-linux
|
data/README.md
CHANGED
@@ -203,6 +203,10 @@ module SyntaxTree
|
|
203
203
|
q.text(" ")
|
204
204
|
end
|
205
205
|
|
206
|
+
# If element is a valid void element, but not currently self-closing
|
207
|
+
# format to be self-closing
|
208
|
+
q.text(" /") if node.is_void_element? and node.closing.value == ">"
|
209
|
+
|
206
210
|
visit(node.closing)
|
207
211
|
end
|
208
212
|
end
|
@@ -185,6 +185,25 @@ module SyntaxTree
|
|
185
185
|
# potentially contain an opening tag that self-closes, in which case the
|
186
186
|
# content and closing tag will be nil.
|
187
187
|
class HtmlNode < Block
|
188
|
+
# These elements do not require a closing tag
|
189
|
+
# https://developer.mozilla.org/en-US/docs/Glossary/Void_element
|
190
|
+
HTML_VOID_ELEMENTS = %w[
|
191
|
+
area
|
192
|
+
base
|
193
|
+
br
|
194
|
+
col
|
195
|
+
embed
|
196
|
+
hr
|
197
|
+
img
|
198
|
+
input
|
199
|
+
link
|
200
|
+
meta
|
201
|
+
param
|
202
|
+
source
|
203
|
+
track
|
204
|
+
wbr
|
205
|
+
]
|
206
|
+
|
188
207
|
# The opening tag of an element. It contains the opening character (<),
|
189
208
|
# the name of the element, any optional attributes, and the closing
|
190
209
|
# token (either > or />).
|
@@ -214,6 +233,10 @@ module SyntaxTree
|
|
214
233
|
[opening, name, *attributes, closing]
|
215
234
|
end
|
216
235
|
|
236
|
+
def is_void_element?
|
237
|
+
HTML_VOID_ELEMENTS.include?(name.value)
|
238
|
+
end
|
239
|
+
|
217
240
|
alias deconstruct child_nodes
|
218
241
|
|
219
242
|
def deconstruct_keys(keys)
|
@@ -253,6 +276,10 @@ module SyntaxTree
|
|
253
276
|
end
|
254
277
|
end
|
255
278
|
|
279
|
+
def is_void_element?
|
280
|
+
false
|
281
|
+
end
|
282
|
+
|
256
283
|
def without_new_line
|
257
284
|
self.class.new(
|
258
285
|
**deconstruct_keys([]).merge(
|
@@ -481,7 +508,7 @@ module SyntaxTree
|
|
481
508
|
end
|
482
509
|
|
483
510
|
def child_nodes
|
484
|
-
[]
|
511
|
+
[@value].compact
|
485
512
|
end
|
486
513
|
|
487
514
|
alias deconstruct child_nodes
|
@@ -419,7 +419,11 @@ module SyntaxTree
|
|
419
419
|
def parse_html_element
|
420
420
|
opening = parse_html_opening_tag
|
421
421
|
|
422
|
-
if opening.closing.value == "
|
422
|
+
if opening.closing.value == "/>"
|
423
|
+
HtmlNode.new(opening: opening, location: opening.location)
|
424
|
+
elsif opening.is_void_element?
|
425
|
+
HtmlNode.new(opening: opening, location: opening.location)
|
426
|
+
else
|
423
427
|
elements = many { parse_any_tag }
|
424
428
|
closing = maybe { parse_html_closing }
|
425
429
|
|
@@ -443,8 +447,6 @@ module SyntaxTree
|
|
443
447
|
closing: closing,
|
444
448
|
location: opening.location.to(closing.location)
|
445
449
|
)
|
446
|
-
else
|
447
|
-
HtmlNode.new(opening: opening, location: opening.location)
|
448
450
|
end
|
449
451
|
end
|
450
452
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: w_syntax_tree-erb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Newton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-04-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: prettier_print
|
@@ -118,7 +118,6 @@ files:
|
|
118
118
|
- ".github/ISSUE_TEMPLATE/formatting-report.md"
|
119
119
|
- ".github/ISSUE_TEMPLATE/general.md"
|
120
120
|
- ".github/dependabot.yml"
|
121
|
-
- ".github/workflows/auto-merge.yml"
|
122
121
|
- ".github/workflows/main.yml"
|
123
122
|
- ".gitignore"
|
124
123
|
- ".husky/pre-commit"
|
@@ -1,22 +0,0 @@
|
|
1
|
-
name: Dependabot auto-merge
|
2
|
-
on: pull_request
|
3
|
-
|
4
|
-
permissions:
|
5
|
-
contents: write
|
6
|
-
pull-requests: write
|
7
|
-
|
8
|
-
jobs:
|
9
|
-
dependabot:
|
10
|
-
runs-on: ubuntu-latest
|
11
|
-
if: ${{ github.actor == 'dependabot[bot]' }}
|
12
|
-
steps:
|
13
|
-
- name: Dependabot metadata
|
14
|
-
id: metadata
|
15
|
-
uses: dependabot/fetch-metadata@v1.3.3
|
16
|
-
with:
|
17
|
-
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
18
|
-
- name: Enable auto-merge for Dependabot PRs
|
19
|
-
run: gh pr merge --auto --merge "$PR_URL"
|
20
|
-
env:
|
21
|
-
PR_URL: ${{github.event.pull_request.html_url}}
|
22
|
-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|