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