weblet 0.3.0 → 0.3.5
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/weblet.rb +49 -5
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e27f4831158495cbf179b607ccb378ae7a966d27abf52cb62a2381d45efcbf43
|
4
|
+
data.tar.gz: c9e3288adb19d3b9f01288932e852970cfb7ab86922ef8fce7de7e61db7af530
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b61a25a7e5c1a44e1949f99fa040a1be54e6c534d358de2dda6deee1d5f8353adf4a59405e7eb581e7ee4ce05f4baf34c773b61e3591ecc3e62095df7addec8
|
7
|
+
data.tar.gz: 65fd2f1ed959b189c87fd630fef8284db76e4d242ce95f5bd038ce9cc22082e14a080009fb9c2cac29fe2f7d71b79ad8cbd3344fee069265cf922121366af535
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/weblet.rb
CHANGED
@@ -49,9 +49,21 @@ class WebletBuilder
|
|
49
49
|
|
50
50
|
puts 'x: ' + x.inspect if @debug
|
51
51
|
|
52
|
-
if x
|
52
|
+
if x.is_a? String then
|
53
|
+
|
54
|
+
head, body = x.split("\n", 2)
|
55
|
+
puts 'head: ' + head.inspect if @debug
|
56
|
+
puts 'body: ' + body.inspect if @debug
|
57
|
+
puts 'marker: ' + @marker.inspect if @debug
|
58
|
+
|
59
|
+
[:node, {id: head[/#{@marker}(\w+)/,1]}, '',['![', {}, body.strip]]
|
60
|
+
|
61
|
+
elsif x[0].is_a? String
|
53
62
|
|
54
63
|
head, body = x[0].split("\n", 2)
|
64
|
+
puts 'body: ' + body.inspect if @debug
|
65
|
+
puts 'marker: ' + @marker.inspect if @debug
|
66
|
+
|
55
67
|
[:node, {id: head[/#{@marker}(\w+)/,1]}, '',['![', {}, body.strip]]
|
56
68
|
|
57
69
|
elsif x[0] and x[0].is_a? Array
|
@@ -70,7 +82,7 @@ end
|
|
70
82
|
|
71
83
|
class Weblet
|
72
84
|
|
73
|
-
def initialize(raws,
|
85
|
+
def initialize(raws, marker: nil, debug: false)
|
74
86
|
|
75
87
|
@debug = debug
|
76
88
|
|
@@ -78,9 +90,9 @@ class Weblet
|
|
78
90
|
|
79
91
|
obj = s[0] == '<' ? s : WebletBuilder.new(s, marker: marker, \
|
80
92
|
debug: debug).to_a
|
93
|
+
puts 'obj: ' + obj.inspect if @debug
|
81
94
|
@doc = Rexle.new(obj)
|
82
95
|
@h = scan @doc.root
|
83
|
-
@b = b
|
84
96
|
|
85
97
|
end
|
86
98
|
|
@@ -88,13 +100,17 @@ class Weblet
|
|
88
100
|
@h
|
89
101
|
end
|
90
102
|
|
103
|
+
def to_outline()
|
104
|
+
treeize(scan_h(@h))
|
105
|
+
end
|
106
|
+
|
91
107
|
def to_xml()
|
92
108
|
@doc.root.xml pretty: true
|
93
109
|
end
|
94
110
|
|
95
111
|
def render(*args)
|
96
112
|
|
97
|
-
|
113
|
+
b = args.pop if args.last.is_a? Binding
|
98
114
|
|
99
115
|
if args.first.is_a? String then
|
100
116
|
path = args.first.split('/').map(&:to_sym)
|
@@ -105,6 +121,9 @@ class Weblet
|
|
105
121
|
#r = @h.dig *path
|
106
122
|
r = digx(@h, path)
|
107
123
|
|
124
|
+
# check for interpolated substitution tags e.g/ <:card/svg/link>
|
125
|
+
r.gsub!(/<:([^>]+)>/) {|x| self.render($1) } if r
|
126
|
+
|
108
127
|
puts 'r: ' + r.inspect if @debug
|
109
128
|
|
110
129
|
if r.nil? then
|
@@ -112,7 +131,7 @@ class Weblet
|
|
112
131
|
r = found.cdatas.join if found
|
113
132
|
end
|
114
133
|
|
115
|
-
eval('%Q(' + r + ')',
|
134
|
+
eval('%Q(' + r + ')', b) if r
|
116
135
|
|
117
136
|
end
|
118
137
|
|
@@ -156,4 +175,29 @@ class Weblet
|
|
156
175
|
end.to_h
|
157
176
|
|
158
177
|
end
|
178
|
+
|
179
|
+
def scan_h(h)
|
180
|
+
|
181
|
+
a = h.map do |key, value|
|
182
|
+
value.is_a?(Array) ? [key, scan_h(value.last)] : [key]
|
183
|
+
end
|
184
|
+
|
185
|
+
end
|
186
|
+
|
187
|
+
def treeize(a, indent=-2)
|
188
|
+
|
189
|
+
indent += 1
|
190
|
+
a.map do |x|
|
191
|
+
|
192
|
+
if x.is_a? Symbol then
|
193
|
+
(' ' * indent) + x.to_s
|
194
|
+
else
|
195
|
+
treeize(x, indent)
|
196
|
+
end
|
197
|
+
|
198
|
+
end.join("\n")
|
199
|
+
|
200
|
+
end
|
201
|
+
|
202
|
+
|
159
203
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weblet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
mKbvoKGru7nPXh4E/ArWQ70Yz24o3lwGZW3XLzwdLPKB8MiOOGuTARkCWFEYT5tE
|
36
36
|
We42rjyhFeidBuSZp6/7Wwlo
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2021-04-
|
38
|
+
date: 2021-04-11 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: rexle
|
metadata.gz.sig
CHANGED
Binary file
|