jsmenubuilder 0.2.0 → 0.2.1
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/lib/jsmenubuilder.rb +57 -16
- data.tar.gz.sig +0 -0
- metadata +4 -4
- 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: 2f303aa79ef11bb30ff2289012d37c775e7ff786331240f2284455166f9aac30
|
4
|
+
data.tar.gz: 4160d4d6bfb62fd333e694c03c455f2061dad62aa50f69b8ff6281f31ac4c60d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae6a8105f95911bc57cc108494b879314a5af1c310e72201db8b2f351278b7f6e71e4e6a8fc33350876cfa8998358fa0bd2dfb59e7cfe75ba90f69c16e7236c6
|
7
|
+
data.tar.gz: 7ce31bcbacefd42b138ec5767fbb63c1cafb628a8ff4ed1153d9d44b8a16e6b37d95f2c659bc17cbb45e4b399c0b33caf32d6bf241db5e7107a0951eb571de03
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/jsmenubuilder.rb
CHANGED
@@ -6,6 +6,7 @@ require 'rexle'
|
|
6
6
|
require 'rexle-builder'
|
7
7
|
|
8
8
|
class JsMenuBuilder
|
9
|
+
using ColouredText
|
9
10
|
|
10
11
|
TABS_CSS =<<EOF
|
11
12
|
/* Style the tab */
|
@@ -139,20 +140,47 @@ EOF
|
|
139
140
|
|
140
141
|
attr_reader :html, :css, :js
|
141
142
|
|
142
|
-
def initialize(
|
143
|
+
def initialize(unknown=nil, options={})
|
144
|
+
|
145
|
+
if unknown.is_a? String then
|
146
|
+
type = unknown
|
147
|
+
else
|
148
|
+
options = unknown
|
149
|
+
end
|
150
|
+
|
151
|
+
@debug = options[:debug]
|
143
152
|
|
144
|
-
@
|
145
|
-
types = %i(tabs full_page_tabs)
|
146
|
-
doc = method(type.to_sym).call(options) if types.include? type
|
147
|
-
@html = doc.xml(pretty: true, declaration: false)\
|
148
|
-
.gsub(/<\/div>/,'\0' + "\n").strip.lines[1..-2]\
|
149
|
-
.map {|x| x.sub(/^ /,'') }.join
|
153
|
+
@types = %i(tabs full_page_tabs)
|
150
154
|
|
151
|
-
|
152
|
-
@js = Object.const_get 'JsMenuBuilder::' + @type.to_s.upcase + '_JS'
|
155
|
+
build(type, options) if type
|
153
156
|
|
154
157
|
end
|
155
158
|
|
159
|
+
def import(xml)
|
160
|
+
|
161
|
+
puts 'inside import'.info if @debug
|
162
|
+
doc = Rexle.new(xml)
|
163
|
+
type = doc.root.attributes[:mode]
|
164
|
+
type = 'full_page_tabs' if type == 'fullpage'
|
165
|
+
|
166
|
+
tabs = doc.root.xpath('tab').inject({}) do |r, tab|
|
167
|
+
r.merge(tab.attributes[:title] => tab.children.join.strip)
|
168
|
+
end
|
169
|
+
|
170
|
+
e = doc.root.element('tab[@mode="active"]')
|
171
|
+
|
172
|
+
default_tab = if e then
|
173
|
+
title = e.attributes[:title]
|
174
|
+
(tabs.keys.index(title) + 1).to_s
|
175
|
+
else
|
176
|
+
'1'
|
177
|
+
end
|
178
|
+
|
179
|
+
h = { active: default_tab, tabs: tabs}
|
180
|
+
build(type, h)
|
181
|
+
|
182
|
+
end
|
183
|
+
|
156
184
|
def to_css()
|
157
185
|
@css
|
158
186
|
end
|
@@ -193,6 +221,24 @@ EOF
|
|
193
221
|
end
|
194
222
|
|
195
223
|
private
|
224
|
+
|
225
|
+
def build(type, options)
|
226
|
+
|
227
|
+
puts 'inside build'.info if @debug
|
228
|
+
puts "type: %s\noptions: %s".debug % [type, options] if @debug
|
229
|
+
|
230
|
+
return unless @types.include? type.to_sym
|
231
|
+
|
232
|
+
doc = method(type.to_sym).call(options)
|
233
|
+
|
234
|
+
@html = doc.xml(pretty: true, declaration: false)\
|
235
|
+
.gsub(/<\/div>/,'\0' + "\n").strip.lines[1..-2]\
|
236
|
+
.map {|x| x.sub(/^ /,'') }.join
|
237
|
+
|
238
|
+
@css = Object.const_get 'JsMenuBuilder::' + type.to_s.upcase + '_CSS'
|
239
|
+
@js = Object.const_get 'JsMenuBuilder::' + type.to_s.upcase + '_JS'
|
240
|
+
|
241
|
+
end
|
196
242
|
|
197
243
|
def tabs(opt={})
|
198
244
|
|
@@ -204,9 +250,6 @@ EOF
|
|
204
250
|
else
|
205
251
|
options[:tabs]
|
206
252
|
end
|
207
|
-
|
208
|
-
|
209
|
-
## build the HTML
|
210
253
|
|
211
254
|
a = RexleBuilder.build do |xml|
|
212
255
|
xml.html do
|
@@ -246,10 +289,7 @@ EOF
|
|
246
289
|
headings.zip(headings.map {|heading| ['h3', {}, heading]}).to_h
|
247
290
|
else
|
248
291
|
options[:tabs]
|
249
|
-
end
|
250
|
-
|
251
|
-
|
252
|
-
## build the HTML
|
292
|
+
end
|
253
293
|
|
254
294
|
a = RexleBuilder.build do |xml|
|
255
295
|
xml.html do
|
@@ -276,4 +316,5 @@ EOF
|
|
276
316
|
|
277
317
|
end
|
278
318
|
|
319
|
+
|
279
320
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsmenubuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
haYJPATx3zs+9jtQoiFg+keM0CPYk/5LgCv9jxxzQcSS20C8O9MWRVvYfIr47ak7
|
36
36
|
yXrDPmRvbJLTNjDv6Tkg3vU6
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2019-07-
|
38
|
+
date: 2019-07-14 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: rexle
|
@@ -46,7 +46,7 @@ dependencies:
|
|
46
46
|
version: '1.5'
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.5.
|
49
|
+
version: 1.5.2
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -56,7 +56,7 @@ dependencies:
|
|
56
56
|
version: '1.5'
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 1.5.
|
59
|
+
version: 1.5.2
|
60
60
|
description:
|
61
61
|
email: james@jamesrobertson.eu
|
62
62
|
executables: []
|
metadata.gz.sig
CHANGED
Binary file
|