glimmer-dsl-xml 1.3.2 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7120ebc13114f4347589e7e082e14de894c522786a8de3d99707d342a269ba7
4
- data.tar.gz: d278c65435fc6cb806c4e72703cbd0e2927b0d1cb2f9db23ef613f5b9c8b0464
3
+ metadata.gz: 299589b2fe8ece942e67b330eaf32929870da8faa32b2ecf3dab2c92c3d28b13
4
+ data.tar.gz: dd4742f77cfe0e81299a80539069989e7315b04c276e07266403eac3d8758f91
5
5
  SHA512:
6
- metadata.gz: e762085105a741a28a7e5a33a3e9dfbcecc2e399fad2d731b716ab563978bdb7b0c3547b8d711345798bf78dedb11c684dfcc9f4b6b4b65922fa89835a1a5338
7
- data.tar.gz: 6d04566d9b594028e4cb07f7902b26dd9fd3517ceeeb883508512c494d6beed7c333f64d48ab366949f4b9c3c58183da641239bdf11aed9ce33822b7a1404235
6
+ metadata.gz: 96b1e96fed543c46ee0c04a4e3b0d2ffcc25d7b7691df64f7335eb12b80d770f5254e47ce711961e593a9ba21bb976197b0253912c38340e6bf324a126c072bc
7
+ data.tar.gz: 70af6db063691aeaa12342a4a4ada5eab28e016718cccdc41ab3b1cbb4916db83066c25353a01d9c6ff45eaa85a83387a1419aa61b7cbacee7a5247a66d16d13
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.4.0
4
+
5
+ - `html_to_glimmer` converter command for automatically converting HTML to Glimmer DSL Ruby code
6
+ - Support `p` keyword directly (without having to use the custom `tag` keyword like `tag(:_name => "p")`)
7
+
3
8
  ## 1.3.2
4
9
 
5
10
  - Relaxed glimmer dependency to between 2.4.1 and 3.0.0
data/README.md CHANGED
@@ -1,29 +1,17 @@
1
- # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for XML & HTML 1.3.2
1
+ # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for XML & HTML 1.4.0
2
2
  [![Gem Version](https://badge.fury.io/rb/glimmer-dsl-xml.svg)](http://badge.fury.io/rb/glimmer-dsl-xml)
3
3
  [![Travis CI](https://travis-ci.com/AndyObtiva/glimmer-dsl-xml.svg?branch=master)](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-xml)
4
4
  [![Coverage Status](https://coveralls.io/repos/github/AndyObtiva/glimmer-dsl-xml/badge.svg?branch=master)](https://coveralls.io/github/AndyObtiva/glimmer-dsl-xml?branch=master)
5
5
  [![Maintainability](https://api.codeclimate.com/v1/badges/65f487b8807f7126b803/maintainability)](https://codeclimate.com/github/AndyObtiva/glimmer-dsl-xml/maintainability)
6
6
  [![Join the chat at https://gitter.im/AndyObtiva/glimmer](https://badges.gitter.im/AndyObtiva/glimmer.svg)](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
7
7
 
8
- [Glimmer](https://github.com/AndyObtiva/glimmer) DSL for XML provides Ruby syntax for building XML (eXtensible Markup Language) and HTML documents. It used to be part of the [Glimmer](https://github.com/AndyObtiva/glimmer) library (created in 2007), but eventually got extracted into its own project.
8
+ [Glimmer](https://github.com/AndyObtiva/glimmer) DSL for XML provides Ruby syntax for building XML (eXtensible Markup Language) and HTML documents, included in [Glimmer DSL for Web](https://github.com/AndyObtiva/glimmer-dsl-web) (Ruby in the Browser Web Frontend Framework) to use in Rails Frontend Development. It used to be part of the [Glimmer](https://github.com/AndyObtiva/glimmer) library (created in 2007), but eventually got extracted into its own project. The Ruby gem also includes an [HTML to Glimmer Converter](#html-to-glimmer-converter) (`html_to_glimmer`) to automatically convert legacy HTML code into Glimmer DSL syntax.
9
9
 
10
10
  Within the context of desktop development, Glimmer DSL for XML is useful in providing XML data for the [SWT Browser widget](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#browser-widget).
11
11
 
12
12
  Otherwise, it is also used in the development of [Glimmer DSL for Opal](https://github.com/AndyObtiva/glimmer-dsl-opal).
13
13
 
14
- **[Glimmer](https://github.com/AndyObtiva/glimmer) DSL Comparison Table:**
15
- DSL | Platforms | Native? | Vector Graphics? | Pros | Cons | Prereqs
16
- ----|-----------|---------|------------------|------|------|--------
17
- [Glimmer DSL for SWT (JRuby Desktop Development GUI Framework)](https://github.com/AndyObtiva/glimmer-dsl-swt) | Mac / Windows / Linux | Yes | Yes (Canvas Shape DSL) | Very Mature / Scaffolding / Native Executable Packaging / Custom Widgets | Slow JRuby Startup Time / Heavy Memory Footprint | Java / JRuby
18
- [Glimmer DSL for Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop Apps)](https://github.com/AndyObtiva/glimmer-dsl-opal) | All Web Browsers | No | Yes (Canvas Shape DSL) | Simpler than All JavaScript Technologies / Auto-Webify Desktop Apps | Setup Process / Only Rails 5 Support for Now | Rails
19
- [Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-libui) | Mac / Windows / Linux | Yes | Yes (Area API) | Fast Startup Time / Light Memory Footprint | LibUI is an Incomplete Mid-Alpha Only | None Other Than MRI Ruby
20
- [Glimmer DSL for Tk (MRI Ruby Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-tk) | Mac / Windows / Linux | Some Native-Themed Widgets (Not Truly Native) | Yes (Canvas) | Fast Startup Time / Light Memory Footprint | Widgets Do Not Look Truly Native, Espcially on Linux | ActiveTcl / MRI Ruby
21
- [Glimmer DSL for GTK (Ruby-GNOME Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-gtk) | Mac / Windows / Linux | Only on Linux | Yes (Cairo) | Complete Access to GNOME Features on Linux (Forte) | Not Native on Mac and Windows | None Other Than MRI Ruby on Linux / Brew Packages on Mac / MSYS & MING Toolchains on Windows / MRI Ruby
22
- [Glimmer DSL for FX (FOX Toolkit Ruby Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-fx) | Mac (requires XQuartz) / Windows / Linux | No | Yes (Canvas) | No Prerequisites on Windows (Forte Since Binaries Are Included Out of The Box) | Widgets Do Not Look Native / Mac Usage Obtrusively Starts XQuartz | None Other Than MRI Ruby on Windows / XQuarts on Mac / MRI Ruby
23
- [Glimmer DSL for JFX (JRuby JavaFX Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-jfx) | Mac / Windows / Linux | No | Yes (javafx.scene.shape and javafx.scene.canvas) | Rich in Custom Widgets | Slow JRuby Startup Time / Heavy Memory Footprint / Widgets Do Not Look Native | Java / JRuby / JavaFX SDK
24
- [Glimmer DSL for Swing (JRuby Swing Desktop Development GUI Library)](https://github.com/AndyObtiva/glimmer-dsl-swing) | Mac / Windows / Linux | No | Yes (Java2D) | Very Mature | Slow JRuby Startup Time / Heavy Memory Footprint / Widgets Do Not Look Native | Java / JRuby
25
- [Glimmer DSL for XML (& HTML)](https://github.com/AndyObtiva/glimmer-dsl-xml) | All Web Browsers | No | Yes (SVG) | Programmable / Lighter-weight Than Actual XML | XML Elements Are Sometimes Not Well-Named (Many Types of Input) | None
26
- [Glimmer DSL for CSS](https://github.com/AndyObtiva/glimmer-dsl-css) | All Web Browsers | No | Yes | Programmable | CSS Is Over-Engineered / Too Many Features To Learn | None
14
+ Learn more about the differences between various [Glimmer](https://github.com/AndyObtiva/glimmer) DSLs by looking at the **[Glimmer DSL Comparison Table](https://github.com/AndyObtiva/glimmer#glimmer-dsl-comparison-table)**.
27
15
 
28
16
  ## Setup
29
17
 
@@ -33,7 +21,7 @@ Please follow these instructions to make the `glimmer` command available on your
33
21
 
34
22
  Run this command to install directly:
35
23
  ```
36
- gem install glimmer-dsl-xml -v 1.3.2
24
+ gem install glimmer-dsl-xml -v 1.4.0
37
25
  ```
38
26
 
39
27
  Note: When using JRuby, `jgem` is JRuby's version of `gem` command. RVM allows running `gem` as an alias in JRuby. Otherwise, you may also run `jruby -S gem install ...`
@@ -48,7 +36,7 @@ That's it! Requiring the gem activates the Glimmer XML DSL automatically.
48
36
 
49
37
  Add the following to `Gemfile` (after `glimmer-dsl-swt` and/or `glimmer-dsl-opal` if included too):
50
38
  ```
51
- gem 'glimmer-dsl-xml', '~> 1.3.2'
39
+ gem 'glimmer-dsl-xml', '~> 1.4.0'
52
40
  ```
53
41
 
54
42
  And, then run:
@@ -73,7 +61,7 @@ Here are all the Glimmer XML DSL top-level keywords:
73
61
  - `html`: renders partial HTML just like `xml` (not having body/head) or full HTML document (having body/head), automatically including doctype (`<!DOCTYPE html>`) and surrounding content by the `<html></html>` tag
74
62
  - `xml`: renders XML/XHTML content (e.g. `xml {span {'Hello'}; br}.to_s` renders `<span>Hello</span><br />`)
75
63
  - `name_space`: enables namespacing html tags
76
- - `tag`: enables custom tag creation for exceptional cases (e.g. `p` as reserved Ruby keyword) by passing tag name as '_name' attribute
64
+ - `tag`: enables custom tag creation for exceptional cases (e.g. `acme:window` as reserved Ruby keyword) by passing tag name as '_name' attribute
77
65
 
78
66
  Element properties are typically passed as a key/value hash (e.g. `section(id: 'main', class: 'accordion')`) . However, for properties like "selected" or "checked", you must leave value `nil` or otherwise pass in front of the hash (e.g. `input(:checked, type: 'checkbox')` )
79
67
 
@@ -179,13 +167,100 @@ Output:
179
167
  Example (custom tag):
180
168
 
181
169
  ```ruby
182
- puts tag(:_name => "p") {"p is a reserved keyword in Ruby"}
170
+ puts tag(:_name => "acme:window") {"This is a window under acme inc."}
183
171
  ```
184
172
 
185
173
  Output:
186
174
 
187
175
  ```
188
- <p>p is a reserved keyword in Ruby</p>
176
+ <acme:window>This is a window under acme inc.</acme:window>
177
+ ```
178
+
179
+ ### HTML to Glimmer Converter
180
+
181
+ The Ruby gem includes a HTML to Glimmer converter (`html_to_glimmer`) to automatically convert legacy HTML code into Glimmer DSL syntax.
182
+
183
+ Prerequisite: the `nokogiri` Ruby gem. If not already installed, run `gem install nokogiri` before using `html_to_glimmer`.
184
+
185
+ Script:
186
+
187
+ [bin/html_to_glimmer](/bin/html_to_glimmer)
188
+
189
+ Usage:
190
+
191
+ ```
192
+ html_to_glimmer path_to_html_file
193
+ ```
194
+
195
+ Example:
196
+
197
+ Suppose we have an HTML file called `input.html`:
198
+
199
+ ```html
200
+ <html style='max-height: 100%'>
201
+ <body style="max-height: 100%; font: 'Times New Roman', Arial;">
202
+ <h1 id="top-header" class="header" data-owner='John "Bonham" Doe'>Welcome</h1>
203
+ <p>It is good to have <strong>you</strong> in our <strong><em>platform</em></strong>!</p>
204
+ <form action="/owner" method="post">
205
+ <input type="text" value="you" />
206
+ </form>
207
+ </body>
208
+ </html>
209
+ ```
210
+
211
+ We can run this command:
212
+
213
+ ```
214
+ html_to_glimmer input.html
215
+ ```
216
+
217
+ Printout:
218
+
219
+ ```
220
+ Converting from HTML syntax to Glimmer DSL Ruby syntax for input file: input.html
221
+ Converted output file: input.html.glimmer.rb
222
+ ```
223
+
224
+ Output file (`input.html.glimmer.rb`) is a runnable Ruby file containing Glimmer DSL for XML & HTML syntax:
225
+
226
+ ```rb
227
+ require 'glimmer-dsl-xml'
228
+
229
+ include Glimmer
230
+
231
+ html_document = xml {
232
+ html(style: 'max-height: 100%') {
233
+ body(style: "max-height: 100%; font: 'Times New Roman', Arial;") {
234
+ h1(id: 'top-header', class: 'header', 'data-owner': 'John "Bonham" Doe') {
235
+ "Welcome"
236
+ }
237
+ p {
238
+ span {
239
+ "It is good to have "
240
+ }
241
+ strong {
242
+ "you"
243
+ }
244
+ span {
245
+ " in our "
246
+ }
247
+ strong {
248
+ em {
249
+ "platform"
250
+ }
251
+ }
252
+ span {
253
+ "!"
254
+ }
255
+ }
256
+ form(action: '/owner', method: 'post') {
257
+ input(type: 'text', value: 'you')
258
+ }
259
+ }
260
+ }
261
+ }
262
+
263
+ puts html_document.to_s
189
264
  ```
190
265
 
191
266
  ## Glimmer Config
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.2
1
+ 1.4.0
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/glimmer/xml/html_to_glimmer_converter'
4
+
5
+ usage = "***Glimmer DSL for XML & HTML - HTML to Glimmer Converter***\nPrerequisite: `nokogiri` gem (install by running: gem install nokogiri)\nUsage: html_to_glimmer path_to_html_file"
6
+
7
+ if ARGV.empty?
8
+ puts usage
9
+ else
10
+ html_file_path = ARGV.last
11
+ puts "Converting from HTML syntax to Glimmer DSL Ruby syntax for input file: #{html_file_path}"
12
+ html = File.read(html_file_path)
13
+ converter = Glimmer::XML::HTMLToGlimmerConverter.new
14
+ glimmer = converter.convert(html)
15
+ glimmer_file_path = "#{html_file_path}.glimmer.rb"
16
+ File.write(glimmer_file_path, glimmer)
17
+ puts "Converted output file: #{glimmer_file_path}"
18
+ end
@@ -27,6 +27,7 @@ require 'glimmer/dsl/xml/xml_node_expression'
27
27
  require 'glimmer/dsl/xml/html_expression'
28
28
  require 'glimmer/dsl/xml/meta_expression'
29
29
  require 'glimmer/dsl/xml/name_space_expression'
30
+ require 'glimmer/dsl/xml/p_expression'
30
31
 
31
32
  module Glimmer
32
33
  module DSL
@@ -0,0 +1,46 @@
1
+ # Copyright (c) 2020-2023 - Andy Maleh
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining
4
+ # a copy of this software and associated documentation files (the
5
+ # "Software"), to deal in the Software without restriction, including
6
+ # without limitation the rights to use, copy, modify, merge, publish,
7
+ # distribute, sublicense, and/or sell copies of the Software, and to
8
+ # permit persons to whom the Software is furnished to do so, subject to
9
+ # the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be
12
+ # included in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ require 'glimmer/dsl/xml/node_parent_expression'
23
+ require 'glimmer/dsl/static_expression'
24
+ require 'glimmer/xml/node'
25
+
26
+ module Kernel
27
+ alias pi p
28
+ end
29
+
30
+ module Glimmer
31
+ module DSL
32
+ module XML
33
+ class PExpression < StaticExpression
34
+ include NodeParentExpression
35
+
36
+ def can_interpret?(parent, keyword, *args, &block)
37
+ keyword == 'p' && parent.is_a?(Glimmer::XML::Node)
38
+ end
39
+
40
+ def interpret(parent, keyword, *args, &block)
41
+ Glimmer::XML::Node.new(parent, keyword.to_s, args, &block)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,127 @@
1
+ # Copyright (c) 2020-2024 - Andy Maleh
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining
4
+ # a copy of this software and associated documentation files (the
5
+ # "Software"), to deal in the Software without restriction, including
6
+ # without limitation the rights to use, copy, modify, merge, publish,
7
+ # distribute, sublicense, and/or sell copies of the Software, and to
8
+ # permit persons to whom the Software is furnished to do so, subject to
9
+ # the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be
12
+ # included in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ begin
23
+ require 'nokogiri'
24
+ rescue LoadError
25
+ puts 'Please install the `nokogiri` gem by running: gem install nokogiri'
26
+ raise 'The `nokogiri` gem is not installed!'
27
+ end
28
+
29
+ module Glimmer
30
+ module XML
31
+ class HTMLToGlimmerConverter
32
+ def convert(html)
33
+ glimmer = ''
34
+ glimmer += "require 'glimmer-dsl-xml'\n\n"
35
+ glimmer += "include Glimmer\n\n"
36
+ glimmer += "html_document = xml {\n"
37
+ glimmer += indent_lines(convert_html(html))
38
+ glimmer += "}\n\n"
39
+ glimmer += "puts html_document.to_s\n"
40
+ end
41
+
42
+ private
43
+
44
+ def convert_html(html)
45
+ html_doc = Nokogiri::HTML(html)
46
+ glimmer = ''
47
+ html_doc.children.select(&:element?).each do |element|
48
+ glimmer += convert_element(element)
49
+ end
50
+ glimmer
51
+ end
52
+
53
+ def convert_element(element)
54
+ children_count = element.children.size
55
+ glimmer = ''
56
+ glimmer += "#{element.node_name}#{convert_attributes(element)}" if element.element?
57
+ glimmer += " {\n" if element.element? && children_count > 0
58
+ if element.children.size == 1 && element.children.first.text?
59
+ glimmer += indent_lines(convert_text(element.children.first))
60
+ else
61
+ element.children.each do |child|
62
+ if child.element?
63
+ glimmer += indent_lines(convert_element(child))
64
+ elsif child.text?
65
+ glimmer += indent_lines(convert_span(child))
66
+ end
67
+ end
68
+ end
69
+ glimmer += "}\n" if element.element? && children_count > 0
70
+ glimmer += "\n" if element.element? && children_count == 0
71
+ glimmer
72
+ end
73
+
74
+ def convert_span(text_element)
75
+ text_content = indent_lines(convert_text(text_element))
76
+ return '' if text_content.strip.empty?
77
+ glimmer = ''
78
+ glimmer += "span {\n"
79
+ glimmer += text_content
80
+ glimmer += "}\n"
81
+ glimmer
82
+ end
83
+
84
+ def convert_text(text_element)
85
+ text_content = text_element.to_s
86
+ if text_content.strip.empty?
87
+ ''
88
+ else
89
+ "#{text_element.to_s.dump}\n"
90
+ end
91
+ end
92
+
93
+ def convert_attributes(element)
94
+ attributes_string = element.attributes.to_a.map do |attribute, value|
95
+ "#{normalize_attribute(attribute)}: #{normalize_value(value)}"
96
+ end.join(', ')
97
+ return '' if attributes_string.strip.empty?
98
+ glimmer = ''
99
+ glimmer += '('
100
+ glimmer += attributes_string
101
+ glimmer += ')'
102
+ glimmer
103
+ end
104
+
105
+ def normalize_attribute(attribute)
106
+ if attribute.include?('-')
107
+ "'#{attribute}'"
108
+ else
109
+ attribute
110
+ end
111
+ end
112
+
113
+ def normalize_value(value)
114
+ value = value.to_s
115
+ if value.include?("'")
116
+ "\"#{value}\""
117
+ else
118
+ "'#{value}'"
119
+ end
120
+ end
121
+
122
+ def indent_lines(multi_line_string)
123
+ multi_line_string.lines.map { |line| " #{line}" }.join
124
+ end
125
+ end
126
+ end
127
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AndyMaleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-15 00:00:00.000000000 Z
11
+ date: 2024-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer
@@ -190,7 +190,8 @@ dependencies:
190
190
  version: '0'
191
191
  description: Glimmer DSL for XML & HTML
192
192
  email: andy.am@gmail.com
193
- executables: []
193
+ executables:
194
+ - html_to_glimmer
194
195
  extensions: []
195
196
  extra_rdoc_files:
196
197
  - CHANGELOG.md
@@ -202,6 +203,7 @@ files:
202
203
  - LICENSE.txt
203
204
  - README.md
204
205
  - VERSION
206
+ - bin/html_to_glimmer
205
207
  - lib/glimmer-dsl-xml-ext/glimmer/config.rb
206
208
  - lib/glimmer-dsl-xml.rb
207
209
  - lib/glimmer/dsl/xml/dsl.rb
@@ -209,12 +211,14 @@ files:
209
211
  - lib/glimmer/dsl/xml/meta_expression.rb
210
212
  - lib/glimmer/dsl/xml/name_space_expression.rb
211
213
  - lib/glimmer/dsl/xml/node_parent_expression.rb
214
+ - lib/glimmer/dsl/xml/p_expression.rb
212
215
  - lib/glimmer/dsl/xml/tag_expression.rb
213
216
  - lib/glimmer/dsl/xml/text_expression.rb
214
217
  - lib/glimmer/dsl/xml/xml_expression.rb
215
218
  - lib/glimmer/dsl/xml/xml_node_expression.rb
216
219
  - lib/glimmer/xml/depth_first_search_iterator.rb
217
220
  - lib/glimmer/xml/html_node.rb
221
+ - lib/glimmer/xml/html_to_glimmer_converter.rb
218
222
  - lib/glimmer/xml/html_visitor.rb
219
223
  - lib/glimmer/xml/name_space_visitor.rb
220
224
  - lib/glimmer/xml/node.rb
@@ -239,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
243
  - !ruby/object:Gem::Version
240
244
  version: '0'
241
245
  requirements: []
242
- rubygems_version: 3.2.22
246
+ rubygems_version: 3.5.3
243
247
  signing_key:
244
248
  specification_version: 4
245
249
  summary: Glimmer DSL for XML