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