dang 2.0.0 → 2.1.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/Gemfile.lock +3 -3
- data/History.md +10 -0
- data/Manifest.txt +24 -25
- data/README.md +3 -3
- data/Rakefile +3 -3
- data/dang.gemspec +8 -8
- data/lib/dang/dang.rb +6 -6
- data/lib/dang/parser.kpeg +57 -23
- data/lib/dang/parser.rb +202 -71
- data/{spectory → specs}/attribute_spec.rb +1 -1
- data/{spectory → specs}/comment_spec.rb +1 -1
- data/{spectory → specs}/conditional_comment_spec.rb +1 -1
- data/{spectory → specs}/data_attribute_spec.rb +1 -1
- data/{spectory → specs}/doctype_spec.rb +1 -1
- data/{spectory → specs}/embedded_ruby_spec.rb +1 -1
- data/{spectory/v2 → specs/experiments}/array_classes_spec.rb +1 -1
- data/{spectory/v2 → specs/experiments}/filters/markdown_spec.rb +1 -1
- data/{spectory/v2 → specs/experiments}/hash_attribute_spec.rb +2 -2
- data/{spectory/v2 → specs/experiments}/script_exception_spec.rb +1 -1
- data/{spectory/v2 → specs/experiments}/style_exception_spec.rb +1 -1
- data/{spectory → specs}/file_spec.rb +1 -1
- data/{spectory → specs}/files/iamshane-com.html +0 -0
- data/{spectory → specs}/files/iamshane-com.html.dang +0 -0
- data/{spectory → specs}/filter_spec.rb +1 -1
- data/{spectory → specs}/helper.rb +0 -0
- data/specs/interpolation_spec.rb +12 -0
- data/{spectory → specs}/sanity_spec.rb +1 -1
- data/{spectory → specs}/script_spec.rb +1 -1
- data/{spectory → specs}/selector_spec.rb +1 -1
- data/{spectory → specs}/style_spec.rb +1 -1
- data/{spectory → specs}/tag_spec.rb +1 -1
- data/{spectory → specs}/well_formedness_spec.rb +1 -1
- data/{spectory → specs}/whitespace_spec.rb +1 -1
- metadata +28 -30
- data/TODO.md +0 -0
- data/spectory/v2/interpolation_spec.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7de06baa99ae1e305941525514814cfed5206f2
|
4
|
+
data.tar.gz: 30763edb48c45e9242a76a27ad9f090d89025a50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8ca0079ed5a497a796bdf81f88f134f3f09d2b6f96670aef9cf20a83630418dd1a4a87199700a5a74a72afa3da9f1d97adaf0fbbafd35d3966e40645dac62c7
|
7
|
+
data.tar.gz: 8470423a9c391400fd10cfcf8c1671fe7f232e5d58286a36cc1e6b90f1592385d1a3a39576b86856dfea917f4914ff18be48d84066056013a332228cd9a4f406
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dang (
|
4
|
+
dang (2.0.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -14,7 +14,7 @@ GEM
|
|
14
14
|
kpeg (1.0.0)
|
15
15
|
minitest (5.4.3)
|
16
16
|
rake (10.3.2)
|
17
|
-
rdoc (
|
17
|
+
rdoc (4.1.2)
|
18
18
|
json (~> 1.4)
|
19
19
|
|
20
20
|
PLATFORMS
|
@@ -28,4 +28,4 @@ DEPENDENCIES
|
|
28
28
|
kpeg
|
29
29
|
minitest
|
30
30
|
rake
|
31
|
-
rdoc (~>
|
31
|
+
rdoc (~> 4.0)
|
data/History.md
CHANGED
data/Manifest.txt
CHANGED
@@ -5,7 +5,6 @@ History.md
|
|
5
5
|
Manifest.txt
|
6
6
|
README.md
|
7
7
|
Rakefile
|
8
|
-
TODO.md
|
9
8
|
bin/dang
|
10
9
|
dang.gemspec
|
11
10
|
lib/dang.rb
|
@@ -13,27 +12,27 @@ lib/dang/dang.rb
|
|
13
12
|
lib/dang/parser.kpeg
|
14
13
|
lib/dang/parser.rb
|
15
14
|
lib/dang/rails.rb
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
15
|
+
specs/attribute_spec.rb
|
16
|
+
specs/comment_spec.rb
|
17
|
+
specs/conditional_comment_spec.rb
|
18
|
+
specs/data_attribute_spec.rb
|
19
|
+
specs/doctype_spec.rb
|
20
|
+
specs/embedded_ruby_spec.rb
|
21
|
+
specs/file_spec.rb
|
22
|
+
specs/filter_spec.rb
|
23
|
+
specs/helper.rb
|
24
|
+
specs/interpolation_spec.rb
|
25
|
+
specs/sanity_spec.rb
|
26
|
+
specs/script_spec.rb
|
27
|
+
specs/selector_spec.rb
|
28
|
+
specs/style_spec.rb
|
29
|
+
specs/tag_spec.rb
|
30
|
+
specs/well_formedness_spec.rb
|
31
|
+
specs/whitespace_spec.rb
|
32
|
+
specs/experiments/array_classes_spec.rb
|
33
|
+
specs/experiments/filters/markdown_spec.rb
|
34
|
+
specs/experiments/hash_attribute_spec.rb
|
35
|
+
specs/experiments/script_exception_spec.rb
|
36
|
+
specs/experiments/style_exception_spec.rb
|
37
|
+
specs/files/iamshane-com.html
|
38
|
+
specs/files/iamshane-com.html.dang
|
data/README.md
CHANGED
@@ -51,7 +51,7 @@ Or just a snippet of dang into html:
|
|
51
51
|
|
52
52
|
## Current Version
|
53
53
|
|
54
|
-
2.
|
54
|
+
2.1.0
|
55
55
|
|
56
56
|
|
57
57
|
## Requirements
|
@@ -98,8 +98,8 @@ This will install any missing dependencies.
|
|
98
98
|
|
99
99
|
## Authors
|
100
100
|
|
101
|
-
|
102
|
-
|
101
|
+
* Shane Becker / [@veganstraightedge](https://github.com/veganstraightedge)
|
102
|
+
* Evan Phoenix / [@evanphx](https://github.com/evanphx)
|
103
103
|
|
104
104
|
|
105
105
|
## Contributing
|
data/Rakefile
CHANGED
@@ -25,16 +25,16 @@ $:.unshift "./lib"
|
|
25
25
|
task :default => :spec
|
26
26
|
|
27
27
|
task :spec do
|
28
|
-
Dir[File.dirname(__FILE__) + "/
|
28
|
+
Dir[File.dirname(__FILE__) + "/specs/**/*_spec.rb"].each do |path|
|
29
29
|
require path
|
30
30
|
end
|
31
31
|
|
32
32
|
Minitest.autorun
|
33
33
|
end
|
34
34
|
|
35
|
-
file "#{HOE.spec.name}.gemspec" => [
|
35
|
+
file "#{HOE.spec.name}.gemspec" => ["Rakefile", "lib/dang/dang.rb"] do |t|
|
36
36
|
puts "Generating #{t.name}"
|
37
|
-
File.open(t.name,
|
37
|
+
File.open(t.name, "wb") { |f| f.write HOE.spec.to_ruby }
|
38
38
|
end
|
39
39
|
|
40
40
|
desc "Generate or update the standalone gemspec file for the project"
|
data/dang.gemspec
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: dang 2.
|
2
|
+
# stub: dang 2.1.0 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "dang"
|
6
|
-
s.version = "2.
|
6
|
+
s.version = "2.1.0"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib"]
|
10
10
|
s.authors = ["Shane Becker"]
|
11
|
-
s.date = "
|
11
|
+
s.date = "2015-02-12"
|
12
12
|
s.description = "Dang is a Ruby templating language.\nIt uses angle brackets and CSS syntax.\nSomewhere between ERB and Haml."
|
13
13
|
s.email = ["veganstraightedge@gmail.com"]
|
14
14
|
s.executables = ["dang"]
|
15
|
-
s.extra_rdoc_files = ["History.md", "Manifest.txt", "README.md"
|
16
|
-
s.files = [".
|
15
|
+
s.extra_rdoc_files = ["History.md", "Manifest.txt", "README.md"]
|
16
|
+
s.files = [".hoeignore", "Gemfile", "Gemfile.lock", "History.md", "Manifest.txt", "README.md", "Rakefile", "bin/dang", "dang.gemspec", "lib/dang.rb", "lib/dang/dang.rb", "lib/dang/parser.kpeg", "lib/dang/parser.rb", "lib/dang/rails.rb", "specs/attribute_spec.rb", "specs/comment_spec.rb", "specs/conditional_comment_spec.rb", "specs/data_attribute_spec.rb", "specs/doctype_spec.rb", "specs/embedded_ruby_spec.rb", "specs/experiments/array_classes_spec.rb", "specs/experiments/filters/markdown_spec.rb", "specs/experiments/hash_attribute_spec.rb", "specs/experiments/script_exception_spec.rb", "specs/experiments/style_exception_spec.rb", "specs/file_spec.rb", "specs/files/iamshane-com.html", "specs/files/iamshane-com.html.dang", "specs/filter_spec.rb", "specs/helper.rb", "specs/interpolation_spec.rb", "specs/sanity_spec.rb", "specs/script_spec.rb", "specs/selector_spec.rb", "specs/style_spec.rb", "specs/tag_spec.rb", "specs/well_formedness_spec.rb", "specs/whitespace_spec.rb"]
|
17
17
|
s.homepage = "https://github.com/veganstraightedge/dang"
|
18
18
|
s.licenses = ["PUBLIC DOMAIN", "CC0"]
|
19
19
|
s.rdoc_options = ["--main", "README.md"]
|
@@ -25,13 +25,13 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
27
27
|
s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
|
28
|
-
s.add_development_dependency(%q<hoe>, ["~> 3.
|
28
|
+
s.add_development_dependency(%q<hoe>, ["~> 3.12"])
|
29
29
|
else
|
30
30
|
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
31
|
-
s.add_dependency(%q<hoe>, ["~> 3.
|
31
|
+
s.add_dependency(%q<hoe>, ["~> 3.12"])
|
32
32
|
end
|
33
33
|
else
|
34
34
|
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
35
|
-
s.add_dependency(%q<hoe>, ["~> 3.
|
35
|
+
s.add_dependency(%q<hoe>, ["~> 3.12"])
|
36
36
|
end
|
37
37
|
end
|
data/lib/dang/dang.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "stringio"
|
2
|
+
require "rubygems"
|
3
|
+
require "dang/parser"
|
4
4
|
|
5
5
|
class Dang
|
6
|
-
VERSION =
|
7
|
-
CODENAME =
|
6
|
+
VERSION = "2.1.0"
|
7
|
+
CODENAME = "Kira"
|
8
8
|
|
9
9
|
@filters = {}
|
10
10
|
|
@@ -28,7 +28,7 @@ class Dang
|
|
28
28
|
if filter = @filters[name]
|
29
29
|
return filter[text]
|
30
30
|
else
|
31
|
-
raise "Unknown filter:
|
31
|
+
raise "Unknown filter: '#{name}'"
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
data/lib/dang/parser.kpeg
CHANGED
@@ -80,21 +80,47 @@
|
|
80
80
|
out = []
|
81
81
|
classes = []
|
82
82
|
|
83
|
-
(at+sel).each do |
|
83
|
+
(at+sel).flatten.each do |pair|
|
84
|
+
key = pair.key
|
85
|
+
val = pair.value
|
86
|
+
|
84
87
|
if key == "class"
|
88
|
+
val = val.str if val.kind_of? Literal
|
85
89
|
classes.unshift val
|
86
90
|
elsif val == true
|
87
91
|
out << "#{key}"
|
92
|
+
out << " "
|
88
93
|
else
|
89
|
-
out << "#{key}='
|
94
|
+
out << "#{key}='"
|
95
|
+
out << val
|
96
|
+
out << "'"
|
97
|
+
out << " "
|
90
98
|
end
|
91
99
|
end
|
92
100
|
|
93
101
|
unless classes.empty?
|
94
|
-
|
102
|
+
expanded = ["class='"]
|
103
|
+
classes.each do |c|
|
104
|
+
expanded << c
|
105
|
+
expanded << " "
|
106
|
+
end
|
107
|
+
|
108
|
+
expanded[-1] = "'"
|
109
|
+
|
110
|
+
classes = expanded
|
111
|
+
|
112
|
+
if out.empty?
|
113
|
+
return classes
|
114
|
+
end
|
115
|
+
|
116
|
+
out = classes + [" "] + out
|
117
|
+
end
|
118
|
+
|
119
|
+
if out.last == " "
|
120
|
+
out.pop
|
95
121
|
end
|
96
122
|
|
97
|
-
out
|
123
|
+
out
|
98
124
|
end
|
99
125
|
|
100
126
|
class Literal
|
@@ -124,7 +150,7 @@
|
|
124
150
|
end
|
125
151
|
|
126
152
|
def joinm(*elems)
|
127
|
-
elems.map do |i|
|
153
|
+
elems.flatten.map do |i|
|
128
154
|
if i.kind_of? String
|
129
155
|
Literal.new(i)
|
130
156
|
else
|
@@ -133,6 +159,8 @@
|
|
133
159
|
end
|
134
160
|
end
|
135
161
|
|
162
|
+
Pair = Struct.new(:key, :value)
|
163
|
+
|
136
164
|
def join(f,b)
|
137
165
|
f = Literal.new(f) if f.kind_of? String
|
138
166
|
b = Literal.new(b) if b.kind_of? String
|
@@ -182,16 +210,22 @@ pclose = "|>"
|
|
182
210
|
key = name
|
183
211
|
| "'" < /[^'\n]*/ > "'" { text }
|
184
212
|
|
213
|
+
valsrt = "]" | "<|"
|
214
|
+
valchk = < (!valsrt .)* > { text }
|
215
|
+
valprt = puby | valchk
|
216
|
+
valraw = valprt:p valraw:b { join(p,b) }
|
217
|
+
| valprt
|
218
|
+
|
185
219
|
val = "'" < /[^'\n]*/ > "'" { text }
|
186
|
-
|
|
220
|
+
| valraw
|
187
221
|
|
188
|
-
dattr = "[" key:k "=" val:v "]" { "data-#{k}
|
189
|
-
dattrs = dattr:a dattrs:l {
|
190
|
-
| dattr
|
222
|
+
dattr = "[" key:k "=" val:v "]" { Pair.new("data-#{k}", v) }
|
223
|
+
dattrs = dattr:a dattrs:l { [a] + l }
|
224
|
+
| dattr:a { [a] }
|
191
225
|
|
192
|
-
attr = "[data" dattrs:t "]" {
|
193
|
-
| "[" key:k "=" val:v "]" {
|
194
|
-
| "[" key:k "]" {
|
226
|
+
attr = "[data" dattrs:t "]" { t }
|
227
|
+
| "[" key:k "=" val:v "]" { Pair.new(k, v) }
|
228
|
+
| "[" key:k "]" { Pair.new(k,true) }
|
195
229
|
attrs = attr:a attrs:l { [a] + l }
|
196
230
|
| attr:a { [a] }
|
197
231
|
|
@@ -205,8 +239,8 @@ comment = "<!" space+ < "[" space* cc_if (!"]" .)* "]" > space+ "!>"
|
|
205
239
|
{ "<!--#{text}-->" }
|
206
240
|
|
207
241
|
simple = /[a-zA-Z0-9_\-]+/
|
208
|
-
select = "#" < simple > {
|
209
|
-
| "." < simple > {
|
242
|
+
select = "#" < simple > { Pair.new("id", text) }
|
243
|
+
| "." < simple > { Pair.new("class", text) }
|
210
244
|
|
211
245
|
selects = select:s selects:t { [s] + t }
|
212
246
|
| select:s { [s] }
|
@@ -219,23 +253,23 @@ filter = "<:" name:n bs* < (!end_filter(n) .)* > end_filter(n)
|
|
219
253
|
tag = start:l slash { "<#{l} />" }
|
220
254
|
| start:l space+ end:r { "<#{l}></#{r}>" }
|
221
255
|
| start:l attrs:a slash
|
222
|
-
{ "<#{l}
|
256
|
+
{ joinm "<#{l} ", attrs(a), " />" }
|
223
257
|
| start:l selects:t slash
|
224
|
-
{ "<#{l}
|
258
|
+
{ joinm "<#{l} ", attrs(t), " />" }
|
225
259
|
| start:l selects:t attrs:a slash
|
226
|
-
{ "<#{l}
|
260
|
+
{ joinm "<#{l} ", attrs(t,a), " />" }
|
227
261
|
| start:l attrs:a space+ end:r
|
228
|
-
{ "<#{l}
|
262
|
+
{ joinm "<#{l} ", attrs(a), "></#{r}>" }
|
229
263
|
| start:l selects:t space+ end:r
|
230
|
-
{ "<#{l}
|
264
|
+
{ joinm "<#{l} ", attrs(t), "></#{r}>" }
|
231
265
|
| start:l selects:t attrs:a space+ end:r
|
232
|
-
{ "<#{l}
|
266
|
+
{ joinm "<#{l} ", attrs(t,a), "></#{r}>" }
|
233
267
|
| start:l selects:t attrs:a pts body:b pts:es end:r
|
234
|
-
{ joinm "<#{l}
|
268
|
+
{ joinm "<#{l} ", attrs(a,t), ">",b,es,"</#{r}>" }
|
235
269
|
| start:l attrs:a pts body:b pts:es end:r
|
236
|
-
{ joinm "<#{l}
|
270
|
+
{ joinm "<#{l} ", attrs(a), ">", b, es, "</#{r}>" }
|
237
271
|
| start:l selects:t pts:s body:b pts:es end:r
|
238
|
-
{ joinm "<#{l}
|
272
|
+
{ joinm "<#{l} ", attrs(t), ">",s, b, es, "</#{r}>" }
|
239
273
|
| start:l pts:s body:b pts:es end:r
|
240
274
|
{ joinm "<#{l}>", s, b, es, "</#{r}>" }
|
241
275
|
|
data/lib/dang/parser.rb
CHANGED
@@ -435,21 +435,47 @@ class Dang::Parser
|
|
435
435
|
out = []
|
436
436
|
classes = []
|
437
437
|
|
438
|
-
(at+sel).each do |
|
438
|
+
(at+sel).flatten.each do |pair|
|
439
|
+
key = pair.key
|
440
|
+
val = pair.value
|
441
|
+
|
439
442
|
if key == "class"
|
443
|
+
val = val.str if val.kind_of? Literal
|
440
444
|
classes.unshift val
|
441
445
|
elsif val == true
|
442
446
|
out << "#{key}"
|
447
|
+
out << " "
|
443
448
|
else
|
444
|
-
out << "#{key}='
|
449
|
+
out << "#{key}='"
|
450
|
+
out << val
|
451
|
+
out << "'"
|
452
|
+
out << " "
|
445
453
|
end
|
446
454
|
end
|
447
455
|
|
448
456
|
unless classes.empty?
|
449
|
-
|
457
|
+
expanded = ["class='"]
|
458
|
+
classes.each do |c|
|
459
|
+
expanded << c
|
460
|
+
expanded << " "
|
461
|
+
end
|
462
|
+
|
463
|
+
expanded[-1] = "'"
|
464
|
+
|
465
|
+
classes = expanded
|
466
|
+
|
467
|
+
if out.empty?
|
468
|
+
return classes
|
469
|
+
end
|
470
|
+
|
471
|
+
out = classes + [" "] + out
|
450
472
|
end
|
451
473
|
|
452
|
-
out.
|
474
|
+
if out.last == " "
|
475
|
+
out.pop
|
476
|
+
end
|
477
|
+
|
478
|
+
out
|
453
479
|
end
|
454
480
|
|
455
481
|
class Literal
|
@@ -479,7 +505,7 @@ class Dang::Parser
|
|
479
505
|
end
|
480
506
|
|
481
507
|
def joinm(*elems)
|
482
|
-
elems.map do |i|
|
508
|
+
elems.flatten.map do |i|
|
483
509
|
if i.kind_of? String
|
484
510
|
Literal.new(i)
|
485
511
|
else
|
@@ -488,6 +514,8 @@ class Dang::Parser
|
|
488
514
|
end
|
489
515
|
end
|
490
516
|
|
517
|
+
Pair = Struct.new(:key, :value)
|
518
|
+
|
491
519
|
def join(f,b)
|
492
520
|
f = Literal.new(f) if f.kind_of? String
|
493
521
|
b = Literal.new(b) if b.kind_of? String
|
@@ -1211,34 +1239,110 @@ class Dang::Parser
|
|
1211
1239
|
return _tmp
|
1212
1240
|
end
|
1213
1241
|
|
1214
|
-
#
|
1215
|
-
def
|
1242
|
+
# valsrt = ("]" | "<|")
|
1243
|
+
def _valsrt
|
1244
|
+
|
1245
|
+
_save = self.pos
|
1246
|
+
while true # choice
|
1247
|
+
_tmp = match_string("]")
|
1248
|
+
break if _tmp
|
1249
|
+
self.pos = _save
|
1250
|
+
_tmp = match_string("<|")
|
1251
|
+
break if _tmp
|
1252
|
+
self.pos = _save
|
1253
|
+
break
|
1254
|
+
end # end choice
|
1255
|
+
|
1256
|
+
set_failed_rule :_valsrt unless _tmp
|
1257
|
+
return _tmp
|
1258
|
+
end
|
1259
|
+
|
1260
|
+
# valchk = < (!valsrt .)* > { text }
|
1261
|
+
def _valchk
|
1262
|
+
|
1263
|
+
_save = self.pos
|
1264
|
+
while true # sequence
|
1265
|
+
_text_start = self.pos
|
1266
|
+
while true
|
1267
|
+
|
1268
|
+
_save2 = self.pos
|
1269
|
+
while true # sequence
|
1270
|
+
_save3 = self.pos
|
1271
|
+
_tmp = apply(:_valsrt)
|
1272
|
+
_tmp = _tmp ? nil : true
|
1273
|
+
self.pos = _save3
|
1274
|
+
unless _tmp
|
1275
|
+
self.pos = _save2
|
1276
|
+
break
|
1277
|
+
end
|
1278
|
+
_tmp = get_byte
|
1279
|
+
unless _tmp
|
1280
|
+
self.pos = _save2
|
1281
|
+
end
|
1282
|
+
break
|
1283
|
+
end # end sequence
|
1284
|
+
|
1285
|
+
break unless _tmp
|
1286
|
+
end
|
1287
|
+
_tmp = true
|
1288
|
+
if _tmp
|
1289
|
+
text = get_text(_text_start)
|
1290
|
+
end
|
1291
|
+
unless _tmp
|
1292
|
+
self.pos = _save
|
1293
|
+
break
|
1294
|
+
end
|
1295
|
+
@result = begin; text ; end
|
1296
|
+
_tmp = true
|
1297
|
+
unless _tmp
|
1298
|
+
self.pos = _save
|
1299
|
+
end
|
1300
|
+
break
|
1301
|
+
end # end sequence
|
1302
|
+
|
1303
|
+
set_failed_rule :_valchk unless _tmp
|
1304
|
+
return _tmp
|
1305
|
+
end
|
1306
|
+
|
1307
|
+
# valprt = (puby | valchk)
|
1308
|
+
def _valprt
|
1309
|
+
|
1310
|
+
_save = self.pos
|
1311
|
+
while true # choice
|
1312
|
+
_tmp = apply(:_puby)
|
1313
|
+
break if _tmp
|
1314
|
+
self.pos = _save
|
1315
|
+
_tmp = apply(:_valchk)
|
1316
|
+
break if _tmp
|
1317
|
+
self.pos = _save
|
1318
|
+
break
|
1319
|
+
end # end choice
|
1320
|
+
|
1321
|
+
set_failed_rule :_valprt unless _tmp
|
1322
|
+
return _tmp
|
1323
|
+
end
|
1324
|
+
|
1325
|
+
# valraw = (valprt:p valraw:b { join(p,b) } | valprt)
|
1326
|
+
def _valraw
|
1216
1327
|
|
1217
1328
|
_save = self.pos
|
1218
1329
|
while true # choice
|
1219
1330
|
|
1220
1331
|
_save1 = self.pos
|
1221
1332
|
while true # sequence
|
1222
|
-
_tmp =
|
1223
|
-
|
1224
|
-
self.pos = _save1
|
1225
|
-
break
|
1226
|
-
end
|
1227
|
-
_text_start = self.pos
|
1228
|
-
_tmp = scan(/\A(?-mix:[^'\n]*)/)
|
1229
|
-
if _tmp
|
1230
|
-
text = get_text(_text_start)
|
1231
|
-
end
|
1333
|
+
_tmp = apply(:_valprt)
|
1334
|
+
p = @result
|
1232
1335
|
unless _tmp
|
1233
1336
|
self.pos = _save1
|
1234
1337
|
break
|
1235
1338
|
end
|
1236
|
-
_tmp =
|
1339
|
+
_tmp = apply(:_valraw)
|
1340
|
+
b = @result
|
1237
1341
|
unless _tmp
|
1238
1342
|
self.pos = _save1
|
1239
1343
|
break
|
1240
1344
|
end
|
1241
|
-
@result = begin;
|
1345
|
+
@result = begin; join(p,b) ; end
|
1242
1346
|
_tmp = true
|
1243
1347
|
unless _tmp
|
1244
1348
|
self.pos = _save1
|
@@ -1248,47 +1352,54 @@ class Dang::Parser
|
|
1248
1352
|
|
1249
1353
|
break if _tmp
|
1250
1354
|
self.pos = _save
|
1355
|
+
_tmp = apply(:_valprt)
|
1356
|
+
break if _tmp
|
1357
|
+
self.pos = _save
|
1358
|
+
break
|
1359
|
+
end # end choice
|
1251
1360
|
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
while true
|
1361
|
+
set_failed_rule :_valraw unless _tmp
|
1362
|
+
return _tmp
|
1363
|
+
end
|
1256
1364
|
|
1257
|
-
|
1258
|
-
|
1259
|
-
_save5 = self.pos
|
1260
|
-
_tmp = match_string("]")
|
1261
|
-
_tmp = _tmp ? nil : true
|
1262
|
-
self.pos = _save5
|
1263
|
-
unless _tmp
|
1264
|
-
self.pos = _save4
|
1265
|
-
break
|
1266
|
-
end
|
1267
|
-
_tmp = get_byte
|
1268
|
-
unless _tmp
|
1269
|
-
self.pos = _save4
|
1270
|
-
end
|
1271
|
-
break
|
1272
|
-
end # end sequence
|
1365
|
+
# val = ("'" < /[^'\n]*/ > "'" { text } | valraw)
|
1366
|
+
def _val
|
1273
1367
|
|
1274
|
-
|
1368
|
+
_save = self.pos
|
1369
|
+
while true # choice
|
1370
|
+
|
1371
|
+
_save1 = self.pos
|
1372
|
+
while true # sequence
|
1373
|
+
_tmp = match_string("'")
|
1374
|
+
unless _tmp
|
1375
|
+
self.pos = _save1
|
1376
|
+
break
|
1275
1377
|
end
|
1276
|
-
|
1378
|
+
_text_start = self.pos
|
1379
|
+
_tmp = scan(/\A(?-mix:[^'\n]*)/)
|
1277
1380
|
if _tmp
|
1278
1381
|
text = get_text(_text_start)
|
1279
1382
|
end
|
1280
1383
|
unless _tmp
|
1281
|
-
self.pos =
|
1384
|
+
self.pos = _save1
|
1385
|
+
break
|
1386
|
+
end
|
1387
|
+
_tmp = match_string("'")
|
1388
|
+
unless _tmp
|
1389
|
+
self.pos = _save1
|
1282
1390
|
break
|
1283
1391
|
end
|
1284
1392
|
@result = begin; text ; end
|
1285
1393
|
_tmp = true
|
1286
1394
|
unless _tmp
|
1287
|
-
self.pos =
|
1395
|
+
self.pos = _save1
|
1288
1396
|
end
|
1289
1397
|
break
|
1290
1398
|
end # end sequence
|
1291
1399
|
|
1400
|
+
break if _tmp
|
1401
|
+
self.pos = _save
|
1402
|
+
_tmp = apply(:_valraw)
|
1292
1403
|
break if _tmp
|
1293
1404
|
self.pos = _save
|
1294
1405
|
break
|
@@ -1298,7 +1409,7 @@ class Dang::Parser
|
|
1298
1409
|
return _tmp
|
1299
1410
|
end
|
1300
1411
|
|
1301
|
-
# dattr = "[" key:k "=" val:v "]" { "data-#{k}
|
1412
|
+
# dattr = "[" key:k "=" val:v "]" { Pair.new("data-#{k}", v) }
|
1302
1413
|
def _dattr
|
1303
1414
|
|
1304
1415
|
_save = self.pos
|
@@ -1330,7 +1441,7 @@ class Dang::Parser
|
|
1330
1441
|
self.pos = _save
|
1331
1442
|
break
|
1332
1443
|
end
|
1333
|
-
@result = begin; "data-#{k}
|
1444
|
+
@result = begin; Pair.new("data-#{k}", v) ; end
|
1334
1445
|
_tmp = true
|
1335
1446
|
unless _tmp
|
1336
1447
|
self.pos = _save
|
@@ -1342,7 +1453,7 @@ class Dang::Parser
|
|
1342
1453
|
return _tmp
|
1343
1454
|
end
|
1344
1455
|
|
1345
|
-
# dattrs = (dattr:a dattrs:l {
|
1456
|
+
# dattrs = (dattr:a dattrs:l { [a] + l } | dattr:a { [a] })
|
1346
1457
|
def _dattrs
|
1347
1458
|
|
1348
1459
|
_save = self.pos
|
@@ -1362,7 +1473,7 @@ class Dang::Parser
|
|
1362
1473
|
self.pos = _save1
|
1363
1474
|
break
|
1364
1475
|
end
|
1365
|
-
@result = begin;
|
1476
|
+
@result = begin; [a] + l ; end
|
1366
1477
|
_tmp = true
|
1367
1478
|
unless _tmp
|
1368
1479
|
self.pos = _save1
|
@@ -1372,7 +1483,23 @@ class Dang::Parser
|
|
1372
1483
|
|
1373
1484
|
break if _tmp
|
1374
1485
|
self.pos = _save
|
1375
|
-
|
1486
|
+
|
1487
|
+
_save2 = self.pos
|
1488
|
+
while true # sequence
|
1489
|
+
_tmp = apply(:_dattr)
|
1490
|
+
a = @result
|
1491
|
+
unless _tmp
|
1492
|
+
self.pos = _save2
|
1493
|
+
break
|
1494
|
+
end
|
1495
|
+
@result = begin; [a] ; end
|
1496
|
+
_tmp = true
|
1497
|
+
unless _tmp
|
1498
|
+
self.pos = _save2
|
1499
|
+
end
|
1500
|
+
break
|
1501
|
+
end # end sequence
|
1502
|
+
|
1376
1503
|
break if _tmp
|
1377
1504
|
self.pos = _save
|
1378
1505
|
break
|
@@ -1382,7 +1509,7 @@ class Dang::Parser
|
|
1382
1509
|
return _tmp
|
1383
1510
|
end
|
1384
1511
|
|
1385
|
-
# attr = ("[data" dattrs:t "]" {
|
1512
|
+
# attr = ("[data" dattrs:t "]" { t } | "[" key:k "=" val:v "]" { Pair.new(k, v) } | "[" key:k "]" { Pair.new(k,true) })
|
1386
1513
|
def _attr
|
1387
1514
|
|
1388
1515
|
_save = self.pos
|
@@ -1406,7 +1533,7 @@ class Dang::Parser
|
|
1406
1533
|
self.pos = _save1
|
1407
1534
|
break
|
1408
1535
|
end
|
1409
|
-
@result = begin;
|
1536
|
+
@result = begin; t ; end
|
1410
1537
|
_tmp = true
|
1411
1538
|
unless _tmp
|
1412
1539
|
self.pos = _save1
|
@@ -1446,7 +1573,7 @@ class Dang::Parser
|
|
1446
1573
|
self.pos = _save2
|
1447
1574
|
break
|
1448
1575
|
end
|
1449
|
-
@result = begin;
|
1576
|
+
@result = begin; Pair.new(k, v) ; end
|
1450
1577
|
_tmp = true
|
1451
1578
|
unless _tmp
|
1452
1579
|
self.pos = _save2
|
@@ -1475,7 +1602,7 @@ class Dang::Parser
|
|
1475
1602
|
self.pos = _save3
|
1476
1603
|
break
|
1477
1604
|
end
|
1478
|
-
@result = begin;
|
1605
|
+
@result = begin; Pair.new(k,true) ; end
|
1479
1606
|
_tmp = true
|
1480
1607
|
unless _tmp
|
1481
1608
|
self.pos = _save3
|
@@ -1866,7 +1993,7 @@ class Dang::Parser
|
|
1866
1993
|
return _tmp
|
1867
1994
|
end
|
1868
1995
|
|
1869
|
-
# select = ("#" < simple > {
|
1996
|
+
# select = ("#" < simple > { Pair.new("id", text) } | "." < simple > { Pair.new("class", text) })
|
1870
1997
|
def _select
|
1871
1998
|
|
1872
1999
|
_save = self.pos
|
@@ -1888,7 +2015,7 @@ class Dang::Parser
|
|
1888
2015
|
self.pos = _save1
|
1889
2016
|
break
|
1890
2017
|
end
|
1891
|
-
@result = begin;
|
2018
|
+
@result = begin; Pair.new("id", text) ; end
|
1892
2019
|
_tmp = true
|
1893
2020
|
unless _tmp
|
1894
2021
|
self.pos = _save1
|
@@ -1915,7 +2042,7 @@ class Dang::Parser
|
|
1915
2042
|
self.pos = _save2
|
1916
2043
|
break
|
1917
2044
|
end
|
1918
|
-
@result = begin;
|
2045
|
+
@result = begin; Pair.new("class", text) ; end
|
1919
2046
|
_tmp = true
|
1920
2047
|
unless _tmp
|
1921
2048
|
self.pos = _save2
|
@@ -2101,7 +2228,7 @@ class Dang::Parser
|
|
2101
2228
|
return _tmp
|
2102
2229
|
end
|
2103
2230
|
|
2104
|
-
# tag = (start:l slash { "<#{l} />" } | start:l space+ end:r { "<#{l}></#{r}>" } | start:l attrs:a slash { "<#{l}
|
2231
|
+
# tag = (start:l slash { "<#{l} />" } | start:l space+ end:r { "<#{l}></#{r}>" } | start:l attrs:a slash { joinm "<#{l} ", attrs(a), " />" } | start:l selects:t slash { joinm "<#{l} ", attrs(t), " />" } | start:l selects:t attrs:a slash { joinm "<#{l} ", attrs(t,a), " />" } | start:l attrs:a space+ end:r { joinm "<#{l} ", attrs(a), "></#{r}>" } | start:l selects:t space+ end:r { joinm "<#{l} ", attrs(t), "></#{r}>" } | start:l selects:t attrs:a space+ end:r { joinm "<#{l} ", attrs(t,a), "></#{r}>" } | start:l selects:t attrs:a pts body:b pts:es end:r { joinm "<#{l} ", attrs(a,t), ">",b,es,"</#{r}>" } | start:l attrs:a pts body:b pts:es end:r { joinm "<#{l} ", attrs(a), ">", b, es, "</#{r}>" } | start:l selects:t pts:s body:b pts:es end:r { joinm "<#{l} ", attrs(t), ">",s, b, es, "</#{r}>" } | start:l pts:s body:b pts:es end:r { joinm "<#{l}>", s, b, es, "</#{r}>" })
|
2105
2232
|
def _tag
|
2106
2233
|
|
2107
2234
|
_save = self.pos
|
@@ -2190,7 +2317,7 @@ class Dang::Parser
|
|
2190
2317
|
self.pos = _save4
|
2191
2318
|
break
|
2192
2319
|
end
|
2193
|
-
@result = begin; "<#{l}
|
2320
|
+
@result = begin; joinm "<#{l} ", attrs(a), " />" ; end
|
2194
2321
|
_tmp = true
|
2195
2322
|
unless _tmp
|
2196
2323
|
self.pos = _save4
|
@@ -2220,7 +2347,7 @@ class Dang::Parser
|
|
2220
2347
|
self.pos = _save5
|
2221
2348
|
break
|
2222
2349
|
end
|
2223
|
-
@result = begin; "<#{l}
|
2350
|
+
@result = begin; joinm "<#{l} ", attrs(t), " />" ; end
|
2224
2351
|
_tmp = true
|
2225
2352
|
unless _tmp
|
2226
2353
|
self.pos = _save5
|
@@ -2256,7 +2383,7 @@ class Dang::Parser
|
|
2256
2383
|
self.pos = _save6
|
2257
2384
|
break
|
2258
2385
|
end
|
2259
|
-
@result = begin; "<#{l}
|
2386
|
+
@result = begin; joinm "<#{l} ", attrs(t,a), " />" ; end
|
2260
2387
|
_tmp = true
|
2261
2388
|
unless _tmp
|
2262
2389
|
self.pos = _save6
|
@@ -2302,7 +2429,7 @@ class Dang::Parser
|
|
2302
2429
|
self.pos = _save7
|
2303
2430
|
break
|
2304
2431
|
end
|
2305
|
-
@result = begin; "<#{l}
|
2432
|
+
@result = begin; joinm "<#{l} ", attrs(a), "></#{r}>" ; end
|
2306
2433
|
_tmp = true
|
2307
2434
|
unless _tmp
|
2308
2435
|
self.pos = _save7
|
@@ -2348,7 +2475,7 @@ class Dang::Parser
|
|
2348
2475
|
self.pos = _save9
|
2349
2476
|
break
|
2350
2477
|
end
|
2351
|
-
@result = begin; "<#{l}
|
2478
|
+
@result = begin; joinm "<#{l} ", attrs(t), "></#{r}>" ; end
|
2352
2479
|
_tmp = true
|
2353
2480
|
unless _tmp
|
2354
2481
|
self.pos = _save9
|
@@ -2400,7 +2527,7 @@ class Dang::Parser
|
|
2400
2527
|
self.pos = _save11
|
2401
2528
|
break
|
2402
2529
|
end
|
2403
|
-
@result = begin; "<#{l}
|
2530
|
+
@result = begin; joinm "<#{l} ", attrs(t,a), "></#{r}>" ; end
|
2404
2531
|
_tmp = true
|
2405
2532
|
unless _tmp
|
2406
2533
|
self.pos = _save11
|
@@ -2454,7 +2581,7 @@ class Dang::Parser
|
|
2454
2581
|
self.pos = _save13
|
2455
2582
|
break
|
2456
2583
|
end
|
2457
|
-
@result = begin; joinm "<#{l}
|
2584
|
+
@result = begin; joinm "<#{l} ", attrs(a,t), ">",b,es,"</#{r}>" ; end
|
2458
2585
|
_tmp = true
|
2459
2586
|
unless _tmp
|
2460
2587
|
self.pos = _save13
|
@@ -2502,7 +2629,7 @@ class Dang::Parser
|
|
2502
2629
|
self.pos = _save14
|
2503
2630
|
break
|
2504
2631
|
end
|
2505
|
-
@result = begin; joinm "<#{l}
|
2632
|
+
@result = begin; joinm "<#{l} ", attrs(a), ">", b, es, "</#{r}>" ; end
|
2506
2633
|
_tmp = true
|
2507
2634
|
unless _tmp
|
2508
2635
|
self.pos = _save14
|
@@ -2551,7 +2678,7 @@ class Dang::Parser
|
|
2551
2678
|
self.pos = _save15
|
2552
2679
|
break
|
2553
2680
|
end
|
2554
|
-
@result = begin; joinm "<#{l}
|
2681
|
+
@result = begin; joinm "<#{l} ", attrs(t), ">",s, b, es, "</#{r}>" ; end
|
2555
2682
|
_tmp = true
|
2556
2683
|
unless _tmp
|
2557
2684
|
self.pos = _save15
|
@@ -2671,20 +2798,24 @@ class Dang::Parser
|
|
2671
2798
|
Rules[:_part] = rule_info("part", "(ruby | puby | filter | comment | tag | chunk)")
|
2672
2799
|
Rules[:_body] = rule_info("body", "(part:p body:b { join(p,b) } | part)")
|
2673
2800
|
Rules[:_key] = rule_info("key", "(name | \"'\" < /[^'\\n]*/ > \"'\" { text })")
|
2674
|
-
Rules[:
|
2675
|
-
Rules[:
|
2676
|
-
Rules[:
|
2677
|
-
Rules[:
|
2801
|
+
Rules[:_valsrt] = rule_info("valsrt", "(\"]\" | \"<|\")")
|
2802
|
+
Rules[:_valchk] = rule_info("valchk", "< (!valsrt .)* > { text }")
|
2803
|
+
Rules[:_valprt] = rule_info("valprt", "(puby | valchk)")
|
2804
|
+
Rules[:_valraw] = rule_info("valraw", "(valprt:p valraw:b { join(p,b) } | valprt)")
|
2805
|
+
Rules[:_val] = rule_info("val", "(\"'\" < /[^'\\n]*/ > \"'\" { text } | valraw)")
|
2806
|
+
Rules[:_dattr] = rule_info("dattr", "\"[\" key:k \"=\" val:v \"]\" { Pair.new(\"data-\#{k}\", v) }")
|
2807
|
+
Rules[:_dattrs] = rule_info("dattrs", "(dattr:a dattrs:l { [a] + l } | dattr:a { [a] })")
|
2808
|
+
Rules[:_attr] = rule_info("attr", "(\"[data\" dattrs:t \"]\" { t } | \"[\" key:k \"=\" val:v \"]\" { Pair.new(k, v) } | \"[\" key:k \"]\" { Pair.new(k,true) })")
|
2678
2809
|
Rules[:_attrs] = rule_info("attrs", "(attr:a attrs:l { [a] + l } | attr:a { [a] })")
|
2679
2810
|
Rules[:_cc_if] = rule_info("cc_if", "/[iI][fF]/")
|
2680
2811
|
Rules[:_cc_end] = rule_info("cc_end", "/[eE][nN][dD][iI][fF]/")
|
2681
2812
|
Rules[:_comment] = rule_info("comment", "(\"<!\" space+ < \"[\" space* cc_if (!\"]\" .)* \"]\" > space+ \"!>\" { \"<!--\#{text}>\" } | \"<!\" space+ < \"[\" space* cc_end (!\"]\" .)* \"]\" > space+ \"!>\" { \"<!\#{text}-->\" } | \"<!\" < (!\"!>\" .)* > \"!>\" { \"<!--\#{text}-->\" })")
|
2682
2813
|
Rules[:_simple] = rule_info("simple", "/[a-zA-Z0-9_\\-]+/")
|
2683
|
-
Rules[:_select] = rule_info("select", "(\"\#\" < simple > {
|
2814
|
+
Rules[:_select] = rule_info("select", "(\"\#\" < simple > { Pair.new(\"id\", text) } | \".\" < simple > { Pair.new(\"class\", text) })")
|
2684
2815
|
Rules[:_selects] = rule_info("selects", "(select:s selects:t { [s] + t } | select:s { [s] })")
|
2685
2816
|
Rules[:_end_filter] = rule_info("end_filter", "bs* < /[a-zA-Z]+/ > &{ n == text } \":>\"")
|
2686
2817
|
Rules[:_filter] = rule_info("filter", "\"<:\" name:n bs* < (!end_filter(n) .)* > end_filter(n) { Filter.new(n, text) }")
|
2687
|
-
Rules[:_tag] = rule_info("tag", "(start:l slash { \"<\#{l} />\" } | start:l space+ end:r { \"<\#{l}></\#{r}>\" } | start:l attrs:a slash { \"<\#{l}
|
2818
|
+
Rules[:_tag] = rule_info("tag", "(start:l slash { \"<\#{l} />\" } | start:l space+ end:r { \"<\#{l}></\#{r}>\" } | start:l attrs:a slash { joinm \"<\#{l} \", attrs(a), \" />\" } | start:l selects:t slash { joinm \"<\#{l} \", attrs(t), \" />\" } | start:l selects:t attrs:a slash { joinm \"<\#{l} \", attrs(t,a), \" />\" } | start:l attrs:a space+ end:r { joinm \"<\#{l} \", attrs(a), \"></\#{r}>\" } | start:l selects:t space+ end:r { joinm \"<\#{l} \", attrs(t), \"></\#{r}>\" } | start:l selects:t attrs:a space+ end:r { joinm \"<\#{l} \", attrs(t,a), \"></\#{r}>\" } | start:l selects:t attrs:a pts body:b pts:es end:r { joinm \"<\#{l} \", attrs(a,t), \">\",b,es,\"</\#{r}>\" } | start:l attrs:a pts body:b pts:es end:r { joinm \"<\#{l} \", attrs(a), \">\", b, es, \"</\#{r}>\" } | start:l selects:t pts:s body:b pts:es end:r { joinm \"<\#{l} \", attrs(t), \">\",s, b, es, \"</\#{r}>\" } | start:l pts:s body:b pts:es end:r { joinm \"<\#{l}>\", s, b, es, \"</\#{r}>\" })")
|
2688
2819
|
Rules[:_root] = rule_info("root", "doctype? body:b eof { @output = join(b,\"\") }")
|
2689
2820
|
# :startdoc:
|
2690
2821
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require "
|
1
|
+
require "specs/helper"
|
2
2
|
|
3
3
|
# TODO experimental
|
4
4
|
# for v2
|
@@ -12,7 +12,7 @@ require "spectory/helper"
|
|
12
12
|
# # <body[foo=#{bar}]{attrs, attrs}
|
13
13
|
# # <body{ hidden }
|
14
14
|
# # <body#id.class.class2{ attrs }
|
15
|
-
# # <body#id.class.class2
|
15
|
+
# # <body#id.class.class2<| attrs |>
|
16
16
|
#
|
17
17
|
# # TODO experimental
|
18
18
|
#
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "specs/helper"
|
2
|
+
|
3
|
+
describe "interpolation" do
|
4
|
+
# it "should allow ruby interpolation in ids"
|
5
|
+
# it "should allow ruby interpolation in classes"
|
6
|
+
|
7
|
+
it "should interpolate in attributes" do
|
8
|
+
foo = "bar"
|
9
|
+
|
10
|
+
Dang.it("<time[name=<| foo |>-<| foo |>] <| foo |> time>", binding).must_equal "<time name='bar-bar'>bar</time>"
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shane Becker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdoc
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '3.
|
33
|
+
version: '3.12'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '3.
|
40
|
+
version: '3.12'
|
41
41
|
description: |-
|
42
42
|
Dang is a Ruby templating language.
|
43
43
|
It uses angle brackets and CSS syntax.
|
@@ -51,7 +51,6 @@ extra_rdoc_files:
|
|
51
51
|
- History.md
|
52
52
|
- Manifest.txt
|
53
53
|
- README.md
|
54
|
-
- TODO.md
|
55
54
|
files:
|
56
55
|
- ".hoeignore"
|
57
56
|
- Gemfile
|
@@ -60,7 +59,6 @@ files:
|
|
60
59
|
- Manifest.txt
|
61
60
|
- README.md
|
62
61
|
- Rakefile
|
63
|
-
- TODO.md
|
64
62
|
- bin/dang
|
65
63
|
- dang.gemspec
|
66
64
|
- lib/dang.rb
|
@@ -68,30 +66,30 @@ files:
|
|
68
66
|
- lib/dang/parser.kpeg
|
69
67
|
- lib/dang/parser.rb
|
70
68
|
- lib/dang/rails.rb
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
-
|
80
|
-
-
|
81
|
-
-
|
82
|
-
-
|
83
|
-
-
|
84
|
-
-
|
85
|
-
-
|
86
|
-
-
|
87
|
-
-
|
88
|
-
-
|
89
|
-
-
|
90
|
-
-
|
91
|
-
-
|
92
|
-
-
|
93
|
-
-
|
94
|
-
-
|
69
|
+
- specs/attribute_spec.rb
|
70
|
+
- specs/comment_spec.rb
|
71
|
+
- specs/conditional_comment_spec.rb
|
72
|
+
- specs/data_attribute_spec.rb
|
73
|
+
- specs/doctype_spec.rb
|
74
|
+
- specs/embedded_ruby_spec.rb
|
75
|
+
- specs/experiments/array_classes_spec.rb
|
76
|
+
- specs/experiments/filters/markdown_spec.rb
|
77
|
+
- specs/experiments/hash_attribute_spec.rb
|
78
|
+
- specs/experiments/script_exception_spec.rb
|
79
|
+
- specs/experiments/style_exception_spec.rb
|
80
|
+
- specs/file_spec.rb
|
81
|
+
- specs/files/iamshane-com.html
|
82
|
+
- specs/files/iamshane-com.html.dang
|
83
|
+
- specs/filter_spec.rb
|
84
|
+
- specs/helper.rb
|
85
|
+
- specs/interpolation_spec.rb
|
86
|
+
- specs/sanity_spec.rb
|
87
|
+
- specs/script_spec.rb
|
88
|
+
- specs/selector_spec.rb
|
89
|
+
- specs/style_spec.rb
|
90
|
+
- specs/tag_spec.rb
|
91
|
+
- specs/well_formedness_spec.rb
|
92
|
+
- specs/whitespace_spec.rb
|
95
93
|
homepage: https://github.com/veganstraightedge/dang
|
96
94
|
licenses:
|
97
95
|
- PUBLIC DOMAIN
|
data/TODO.md
DELETED
File without changes
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require "spectory/helper"
|
2
|
-
|
3
|
-
# TODO experimental
|
4
|
-
# for v2
|
5
|
-
|
6
|
-
# describe "interpolation" do
|
7
|
-
# it "should allow ruby interpolation in ids"
|
8
|
-
# it "should allow ruby interpolation in classes"
|
9
|
-
# it "should allow ruby interpolation in attributes"
|
10
|
-
# it "should allow ruby interpolation in values"
|
11
|
-
# end
|