weblet 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a20edd9605c808815e0aa3cfc7e9779406760cca57fd34db6011c81f2abaa3f2
4
- data.tar.gz: 1b99f0adc8fde98fe110fb06783644c3245ced80a4c5b03a4aa6f8bb20410e1e
3
+ metadata.gz: a554a34daec79c81fca1f25d822c6d0ceb784f9e86b8420cd6fada8372057995
4
+ data.tar.gz: 22ba08494032e5b230e5837baab8c821b23321a3d4cb91b507fe99ca6afa0fd2
5
5
  SHA512:
6
- metadata.gz: 3e7690b5ee283aee9c596e4496c738b756579801c54994bf0761e78a3a0825f9968eb84c5998675d3b6c8daf6a958a682872712f34a94631c60c74748cc3a156
7
- data.tar.gz: 1aef800f17899e8b11e48bac43fdbfa254e848ff3db59ea840da8b2ecbfd7808cef3a4ff6257adda2b3a351f7bfedc8c36806769f5e91f07b897084a97c7f768
6
+ metadata.gz: e665e8e8b68bd5fb7de8020b5f648087e4d8abeaf8580118a1f2ea786820dd69f359252ed51a502e171b9b59d9f3928f1ec457502e8eb5e9c52e1c15c632c917
7
+ data.tar.gz: be1d18c638b4628bfad7da54e717d476df9b339dc74233f08efa03dc5ca6ddc7ec42b0e377d97197c4dc85f8e04c911073fe817f20e44eed965e83b01791aae6
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/weblet.rb CHANGED
@@ -56,7 +56,9 @@ class WebletBuilder
56
56
 
57
57
  elsif x[0] and x[0].is_a? Array
58
58
 
59
- [:node, {id: x[0][0][/#{@marker}(\w+)/,1]}, '', *build(x[1..-1])]
59
+ head, body = x[0][0].split("\n", 2)
60
+ [:node, {id: head[/#{@marker}(\w+)/,1]}, '', \
61
+ ['![', {}, body.to_s.strip], *build(x[1..-1])]
60
62
 
61
63
  end
62
64
 
@@ -90,7 +92,9 @@ class Weblet
90
92
  @doc.root.xml pretty: true
91
93
  end
92
94
 
93
- def render(*args, b=@b)
95
+ def render(*args)
96
+
97
+ @b = args.pop if args.last.is_a? Binding
94
98
 
95
99
  if args.first.is_a? String then
96
100
  path = args.first.split('/').map(&:to_sym)
@@ -98,18 +102,35 @@ class Weblet
98
102
  path = *args.flatten(1)
99
103
  end
100
104
 
101
- r = @h.dig *path
105
+ #r = @h.dig *path
106
+ r = digx(@h, path)
107
+
108
+ puts 'r: ' + r.inspect if @debug
102
109
 
103
110
  if r.nil? then
104
111
  found = @doc.root.element("//node[@id='#{path.join}']")
105
112
  r = found.cdatas.join if found
106
113
  end
107
114
 
108
- eval('%Q(' + r + ')', b) if r
115
+ eval('%Q(' + r + ')', @b) if r
109
116
 
110
117
  end
111
118
 
112
119
  private
120
+
121
+ def digx(obj, a)
122
+
123
+ h = obj.is_a?(Array) ? obj.last : obj
124
+
125
+ r = h.dig(a.shift)
126
+
127
+ if a.any? then
128
+ digx(r, a)
129
+ else
130
+ r.is_a?(Array) ? r.first : r
131
+ end
132
+
133
+ end
113
134
 
114
135
  def scan(node)
115
136
 
@@ -121,7 +142,14 @@ class Weblet
121
142
 
122
143
  puts 'nodes: ' + nodes.inspect if @debug
123
144
 
124
- r = nodes.any? ? scan(e) : e.cdatas.join()
145
+ r = if nodes.any? then
146
+
147
+ r2 = scan(e)
148
+ e.cdatas.any? ? [e.cdatas.join(), r2] : r2
149
+
150
+ else
151
+ e.cdatas.join()
152
+ end
125
153
 
126
154
  [e.attributes[:id].to_sym, r]
127
155
 
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.2.4
4
+ version: 0.3.0
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-03 00:00:00.000000000 Z
38
+ date: 2021-04-04 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rexle
metadata.gz.sig CHANGED
Binary file