glimmer-dsl-xml 1.3.0 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/LICENSE.txt +1 -1
- data/README.md +80 -13
- data/VERSION +1 -1
- data/lib/glimmer/dsl/xml/dsl.rb +4 -4
- data/lib/glimmer/dsl/xml/html_expression.rb +5 -5
- data/lib/glimmer/dsl/xml/meta_expression.rb +5 -5
- data/lib/glimmer/dsl/xml/name_space_expression.rb +4 -4
- data/lib/glimmer/dsl/xml/node_parent_expression.rb +1 -1
- data/lib/glimmer/dsl/xml/tag_expression.rb +4 -4
- data/lib/glimmer/dsl/xml/text_expression.rb +4 -4
- data/lib/glimmer/dsl/xml/xml_expression.rb +4 -4
- data/lib/glimmer/dsl/xml/xml_node_expression.rb +4 -4
- data/lib/glimmer/xml/depth_first_search_iterator.rb +4 -4
- data/lib/glimmer/xml/html_node.rb +5 -6
- data/lib/glimmer/xml/html_visitor.rb +5 -5
- data/lib/glimmer/xml/name_space_visitor.rb +4 -4
- data/lib/glimmer/xml/node.rb +2 -2
- data/lib/glimmer/xml/node_visitor.rb +4 -4
- data/lib/glimmer/xml/xml_visitor.rb +8 -7
- data/lib/glimmer-dsl-xml-ext/glimmer/config.rb +41 -0
- data/lib/glimmer-dsl-xml.rb +3 -1
- metadata +12 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7120ebc13114f4347589e7e082e14de894c522786a8de3d99707d342a269ba7
|
4
|
+
data.tar.gz: d278c65435fc6cb806c4e72703cbd0e2927b0d1cb2f9db23ef613f5b9c8b0464
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e762085105a741a28a7e5a33a3e9dfbcecc2e399fad2d731b716ab563978bdb7b0c3547b8d711345798bf78dedb11c684dfcc9f4b6b4b65922fa89835a1a5338
|
7
|
+
data.tar.gz: 6d04566d9b594028e4cb07f7902b26dd9fd3517ceeeb883508512c494d6beed7c333f64d48ab366949f4b9c3c58183da641239bdf11aed9ce33822b7a1404235
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 1.3.2
|
4
|
+
|
5
|
+
- Relaxed glimmer dependency to between 2.4.1 and 3.0.0
|
6
|
+
- Fix issue with `Glimmer::Config.xml_attribute_underscore` not available due to a conflict with other Glimmer gems having `ext` directory, by renaming this gem's `ext` directory to `glimmer-dsl-xml-ext`
|
7
|
+
|
8
|
+
## 1.3.1
|
9
|
+
|
10
|
+
- Support `Glimmer::Config.xml_attribute_underscore = '-'` to auto convert xml attribute underscores to dashes (or any character) only in symbols, but not strings
|
11
|
+
|
3
12
|
## 1.3.0
|
4
13
|
|
5
14
|
- Upgrade to Glimmer 2.4.1 (automatically gets rid of `invalid log level:` output without needing v1.2.1's fix)
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,21 +1,29 @@
|
|
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.
|
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
|
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.
|
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.
|
9
9
|
|
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/
|
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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
-
|
12
|
+
Otherwise, it is also used in the development of [Glimmer DSL for Opal](https://github.com/AndyObtiva/glimmer-dsl-opal).
|
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
|
19
27
|
|
20
28
|
## Setup
|
21
29
|
|
@@ -25,7 +33,7 @@ Please follow these instructions to make the `glimmer` command available on your
|
|
25
33
|
|
26
34
|
Run this command to install directly:
|
27
35
|
```
|
28
|
-
gem install glimmer-dsl-xml -v 1.3.
|
36
|
+
gem install glimmer-dsl-xml -v 1.3.2
|
29
37
|
```
|
30
38
|
|
31
39
|
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 ...`
|
@@ -40,7 +48,7 @@ That's it! Requiring the gem activates the Glimmer XML DSL automatically.
|
|
40
48
|
|
41
49
|
Add the following to `Gemfile` (after `glimmer-dsl-swt` and/or `glimmer-dsl-opal` if included too):
|
42
50
|
```
|
43
|
-
gem 'glimmer-dsl-xml', '~> 1.3.
|
51
|
+
gem 'glimmer-dsl-xml', '~> 1.3.2'
|
44
52
|
```
|
45
53
|
|
46
54
|
And, then run:
|
@@ -180,6 +188,65 @@ Output:
|
|
180
188
|
<p>p is a reserved keyword in Ruby</p>
|
181
189
|
```
|
182
190
|
|
191
|
+
## Glimmer Config
|
192
|
+
|
193
|
+
### `xml_attribute_underscore`
|
194
|
+
|
195
|
+
(default value: `'_'`)
|
196
|
+
|
197
|
+
Calling the following code enables auto-conversion of xml attribute underscores into dashes in `Symbol` attribute names (but not `String` attribute names):
|
198
|
+
|
199
|
+
```ruby
|
200
|
+
Glimmer::Config.xml_attribute_underscore = '-'
|
201
|
+
```
|
202
|
+
|
203
|
+
Example:
|
204
|
+
|
205
|
+
```ruby
|
206
|
+
require 'glimmer-dsl-xml'
|
207
|
+
|
208
|
+
Glimmer::Config.xml_attribute_underscore = '-'
|
209
|
+
|
210
|
+
include Glimmer
|
211
|
+
|
212
|
+
document = html {
|
213
|
+
body {
|
214
|
+
video(:data_loop, data_src: "http://videos.org/1.mp4")
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
puts document
|
219
|
+
```
|
220
|
+
|
221
|
+
```
|
222
|
+
<!DOCTYPE html><html><body><video data-src="http://videos.org/1.mp4" data-loop /></body></html>
|
223
|
+
```
|
224
|
+
|
225
|
+
Note that strings are intentionally ignored to enable using underscores when needed.
|
226
|
+
|
227
|
+
Example:
|
228
|
+
|
229
|
+
```ruby
|
230
|
+
require 'glimmer-dsl-xml'
|
231
|
+
|
232
|
+
Glimmer::Config.xml_attribute_underscore = '-'
|
233
|
+
|
234
|
+
include Glimmer
|
235
|
+
|
236
|
+
document = html {
|
237
|
+
body {
|
238
|
+
video('data_loop', 'data_src' => "http://videos.org/1.mp4")
|
239
|
+
}
|
240
|
+
}
|
241
|
+
|
242
|
+
puts document
|
243
|
+
```
|
244
|
+
|
245
|
+
```
|
246
|
+
<!DOCTYPE html><html><body><video data_src="http://videos.org/1.mp4" data_loop /></body></html>
|
247
|
+
```
|
248
|
+
|
249
|
+
|
183
250
|
## Multi-DSL Support
|
184
251
|
|
185
252
|
Learn more about how to use this DSL alongside other Glimmer DSLs:
|
@@ -222,7 +289,7 @@ These features have been suggested. You might see them in a future version of Gl
|
|
222
289
|
|
223
290
|
[MIT](LICENSE.txt)
|
224
291
|
|
225
|
-
Copyright (c) 2020 - Andy Maleh.
|
292
|
+
Copyright (c) 2020-2023 - Andy Maleh.
|
226
293
|
|
227
294
|
--
|
228
295
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.2
|
data/lib/glimmer/dsl/xml/dsl.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -27,7 +27,7 @@ require 'glimmer/xml/html_node'
|
|
27
27
|
module Glimmer
|
28
28
|
module DSL
|
29
29
|
module XML
|
30
|
-
# This static html expression flips the DSL switch on for
|
30
|
+
# This static html expression flips the DSL switch on for
|
31
31
|
# XML DSL in Glimmer
|
32
32
|
class HtmlExpression < StaticExpression
|
33
33
|
include TopLevelExpression
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -26,7 +26,7 @@ require 'glimmer/dsl/static_expression'
|
|
26
26
|
module Glimmer
|
27
27
|
module DSL
|
28
28
|
module XML
|
29
|
-
# This static html expression flips the DSL switch on for
|
29
|
+
# This static html expression flips the DSL switch on for
|
30
30
|
# XML DSL in Glimmer
|
31
31
|
class MetaExpression < StaticExpression
|
32
32
|
include NodeParentExpression
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
2
|
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
@@ -51,9 +51,9 @@ module Glimmer
|
|
51
51
|
unless node.is_a?(String)
|
52
52
|
name_space_visitor = Glimmer::XML::NameSpaceVisitor.new(parent.name)
|
53
53
|
Glimmer::XML::DepthFirstSearchIterator.new(node, name_space_visitor).iterate
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
# def node.process_block(block)
|
55
|
+
# Glimmer::Config.logger&.debug 'block'
|
56
|
+
# end
|
57
57
|
end
|
58
58
|
parent.children << node if parent and !parent.children.include?(node)
|
59
59
|
node
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -1,6 +1,5 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
4
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
4
|
# a copy of this software and associated documentation files (the
|
6
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -8,10 +7,10 @@
|
|
8
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
10
9
|
# the following conditions:
|
11
|
-
#
|
10
|
+
#
|
12
11
|
# The above copyright notice and this permission notice shall be
|
13
12
|
# included in all copies or substantial portions of the Software.
|
14
|
-
#
|
13
|
+
#
|
15
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -33,7 +32,7 @@ module Glimmer
|
|
33
32
|
node_visitor.document
|
34
33
|
end
|
35
34
|
alias to_html to_xml
|
36
|
-
alias to_s to_xml
|
35
|
+
alias to_s to_xml
|
37
36
|
end
|
38
37
|
end
|
39
38
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -50,7 +50,7 @@ module Glimmer
|
|
50
50
|
def append_close_tag(node)
|
51
51
|
return unless render_html_tag?(node)
|
52
52
|
super(node)
|
53
|
-
end
|
53
|
+
end
|
54
54
|
|
55
55
|
def append_attributes(node)
|
56
56
|
return unless render_html_tag?(node)
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
data/lib/glimmer/xml/node.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
2
|
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
@@ -59,7 +59,7 @@ module Glimmer
|
|
59
59
|
attribute.parent = nil #attributes do not usually have parents
|
60
60
|
end
|
61
61
|
end
|
62
|
-
|
62
|
+
# Glimmer::Config.logger&.debug(attributes)
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
2
|
-
#
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -33,7 +33,7 @@ module Glimmer
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def process_before_children(node)
|
36
|
-
if (!node.is_a?(Glimmer::XML::Node))
|
36
|
+
if (!node.is_a?(Glimmer::XML::Node))
|
37
37
|
@document += node.to_s
|
38
38
|
return
|
39
39
|
end
|
@@ -75,11 +75,12 @@ module Glimmer
|
|
75
75
|
|
76
76
|
def append_attributes(node)
|
77
77
|
return if node.name == 'xml' || node.name_space_context?
|
78
|
-
|
79
|
-
|
78
|
+
# Glimmer::Config.logger&.debug "Append Attributes"
|
79
|
+
# Glimmer::Config.logger&.debug(node.attributes)
|
80
80
|
node.attributes.each do |attribute, value|
|
81
81
|
attribute_name = attribute
|
82
82
|
attribute_name = "#{attribute.name_space.name}:#{attribute.name}" if attribute.is_a?(Node)
|
83
|
+
attribute_name = attribute_name.to_s.gsub('_', Glimmer::Config.xml_attribute_underscore) if attribute_name.is_a?(Symbol)
|
83
84
|
@document += " #{attribute_name}"
|
84
85
|
@document += "=\"#{value}\"" unless value.nil?
|
85
86
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2007-2021 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/config'
|
23
|
+
|
24
|
+
module Glimmer
|
25
|
+
module Config
|
26
|
+
class << self
|
27
|
+
# Tells Glimmer to automatically convert underscores in xml attribute names into dashes only when passed in as symbols (not strings)
|
28
|
+
def xml_attribute_underscore=(value)
|
29
|
+
@@xml_attribute_underscore = value
|
30
|
+
end
|
31
|
+
|
32
|
+
def xml_attribute_underscore
|
33
|
+
if defined?(@@xml_attribute_underscore) && @@xml_attribute_underscore
|
34
|
+
@@xml_attribute_underscore
|
35
|
+
else
|
36
|
+
@@xml_attribute_underscore = '_'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/glimmer-dsl-xml.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2020 - Andy Maleh
|
1
|
+
# Copyright (c) 2020-2023 - Andy Maleh
|
2
2
|
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
@@ -19,7 +19,9 @@
|
|
19
19
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
20
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
21
|
|
22
|
+
|
22
23
|
$LOAD_PATH.unshift(File.expand_path('..', __FILE__))
|
23
24
|
|
24
25
|
require 'glimmer'
|
26
|
+
require 'glimmer-dsl-xml-ext/glimmer/config'
|
25
27
|
require 'glimmer/dsl/xml/dsl'
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.4.1
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.0.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 2.4.1
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rspec-mocks
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,7 +188,7 @@ dependencies:
|
|
182
188
|
- - ">="
|
183
189
|
- !ruby/object:Gem::Version
|
184
190
|
version: '0'
|
185
|
-
description: Glimmer DSL for XML
|
191
|
+
description: Glimmer DSL for XML & HTML
|
186
192
|
email: andy.am@gmail.com
|
187
193
|
executables: []
|
188
194
|
extensions: []
|
@@ -196,6 +202,7 @@ files:
|
|
196
202
|
- LICENSE.txt
|
197
203
|
- README.md
|
198
204
|
- VERSION
|
205
|
+
- lib/glimmer-dsl-xml-ext/glimmer/config.rb
|
199
206
|
- lib/glimmer-dsl-xml.rb
|
200
207
|
- lib/glimmer/dsl/xml/dsl.rb
|
201
208
|
- lib/glimmer/dsl/xml/html_expression.rb
|