htmlcom 0.2.6 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/htmlcom.rb +284 -53
  4. data.tar.gz.sig +0 -0
  5. metadata +35 -55
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10e65ec30c633da273e20802b6fc81ad1a4c4f4506f33425439f1073829098e9
4
- data.tar.gz: ef59c86481a1081f6b5eb1ddb6fe272f9177cd16e22cba454945a28427853a03
3
+ metadata.gz: c5c56bbfd02df1b1aa0af4dd6408b34301964015bcefed1a8a6a88b89c98d42d
4
+ data.tar.gz: 6dee7c3818848ce0428cfb5b3df0a2c7cf79b5b4139d22fde8389212dd6e7694
5
5
  SHA512:
6
- metadata.gz: 9d1f6037e43eed61531cbfbfe92ea8d95b0b620dbd9a786d679135c9d22c0c3988bcc2df3c3a85fd48b4354dc1278094053ae3575b62b65bedca6017a3c0d479
7
- data.tar.gz: 17bbb185d6ac10e162c9a9e2dfd17239a5b79283992ca1df02265277693e478e600506f8b39a52ca0b169d59609772f80fbcfc3363f098fdd4deb16de8cbdd51
6
+ metadata.gz: 31bdddd64984e4a344436918bb09e1a79acc0bb58d15a6878f8a0c28afa30da1b3486c7d68bf3464b4288faec8a7c55351f5f6bc33037dd7186bf0deb8be4c92
7
+ data.tar.gz: 46dfd28e68b5f40cabfbde02c854b2bfefaf1fbca2b7455945822b5b9635ea0f8ff45bb538130ecc987ae6e80137ab87b4b7f7c3d2dec4910fe37946a0e314ee
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/htmlcom.rb CHANGED
@@ -9,73 +9,86 @@ require 'xml_to_sliml'
9
9
  require 'jsajax_wizard'
10
10
  require 'jsmenubuilder'
11
11
  require 'jstreebuilder'
12
+ require 'rexle'
13
+ require 'rexle-builder'
12
14
 
15
+ # classes:
16
+
17
+ # Accordion
18
+ # Tabs (:tabs, :full_page_tabs)
19
+ # Tree
20
+ # Menu (:vertical_menu, :fixed_menu, sticky_nav, breadcrumb)
21
+ # Element # used by the HTML element
22
+ # InputElement # used by the HTML input element
23
+ # Dropdown # an HTML element
24
+ # Textarea # an HTML element
25
+ # FormBuilder
26
+
27
+ module HtmlCom
13
28
 
14
- module HtmlCom
15
-
16
29
  class Accordion
17
-
30
+
18
31
  attr_reader :to_html, :to_css, :to_js, :to_tags
19
-
32
+
20
33
  def initialize(xml, debug: false)
21
-
34
+
22
35
  xml, @debug = xml, debug
23
-
36
+
24
37
  # transform the accordion XML to tags XML
25
38
  tags = Nokogiri::XSLT(xsl()).transform(Nokogiri::XML(xml))\
26
39
  .to_xhtml(indent: 0)
27
-
40
+
28
41
  @to_tags = tags # used for debugging the structure
29
-
42
+
30
43
  jmb = JsMenuBuilder.new(tags, debug: debug)
31
-
44
+
32
45
  pg = if Rexle.new(xml).root.attributes[:navbar] then
33
46
 
34
47
  a = jmb.to_h.keys.sort.map {|key, _| [key, '#' + key.downcase]}
35
48
 
36
- navbar = JsMenuBuilder.new(:sticky_navbar, {sticky_navbar: a,
49
+ navbar = JsMenuBuilder.new(:sticky_navbar, {sticky_navbar: a,
37
50
  debug: debug})
38
-
51
+
39
52
  @to_css = navbar.to_css + "\n" + jmb.to_css
40
53
  @to_js = navbar.to_js + "\n" + jmb.to_js
41
54
 
42
55
 
43
56
  jmb.to_webpage do |css, html, js|
44
-
57
+
45
58
  [
46
- navbar.to_css + "\n" + css,
47
- navbar.to_html + "\n" + html,
59
+ navbar.to_css + "\n" + css,
60
+ navbar.to_html + "\n" + html,
48
61
  navbar.to_js + "\n" + js
49
62
  ]
50
-
63
+
51
64
  end
52
-
65
+
53
66
  else
54
-
67
+
55
68
  @to_css = jmb.to_css
56
69
  @to_js = jmb.to_js
57
-
70
+
58
71
  jmb.to_webpage
59
-
72
+
60
73
  end
61
74
 
62
75
  # apply the AJAX
63
- @to_html = JsAjaxWizard.new(pg).to_html
76
+ @to_html = JsAjaxWizard.new(pg).to_html
64
77
 
65
78
  end
66
-
67
-
79
+
80
+
68
81
  private
69
82
 
70
83
  def xsl()
71
-
84
+
72
85
  xsl= %q(
73
86
  <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
74
87
 
75
88
  <xsl:template match='accordion'>
76
89
 
77
90
  <xsl:element name='tags'>
78
- <xsl:attribute name='mode'>accordion</xsl:attribute>
91
+ <xsl:attribute name='mode'>accordion</xsl:attribute>
79
92
  <xsl:apply-templates select='panel' />
80
93
  </xsl:element>
81
94
 
@@ -87,10 +100,10 @@ xsl= %q(
87
100
  <xsl:attribute name='title'>
88
101
  <xsl:value-of select='@title'/>
89
102
  </xsl:attribute>
90
-
103
+
91
104
  <xsl:attribute name='class'>
92
105
  <xsl:value-of select='@class'/>
93
- </xsl:attribute>
106
+ </xsl:attribute>
94
107
 
95
108
  <xsl:element name="input">
96
109
  <xsl:attribute name="type">hidden</xsl:attribute>
@@ -117,7 +130,7 @@ xsl= %q(
117
130
  )
118
131
 
119
132
  end
120
-
133
+
121
134
  end
122
135
 
123
136
  class Tabs
@@ -155,16 +168,16 @@ xsl= %q(
155
168
 
156
169
  # current options for type:
157
170
  # :tabs, :full_page_tabs
158
-
171
+
159
172
  def initialize(type=:tabs, headings: [], xml: nil, debug: false)
160
173
 
161
174
  @type, @debug = type, debug
162
175
  @build = JsMenuBuilder.new(type, headings: headings)
163
-
176
+
164
177
  @active_tab = 1
165
178
 
166
179
  @tab = headings.map do |heading|
167
- Tab.new heading, content: "<h3>#{heading}</h3>",
180
+ Tab.new heading, content: "<h3>#{heading}</h3>",
168
181
  callback: self, debug: debug
169
182
  end
170
183
 
@@ -203,19 +216,19 @@ xsl= %q(
203
216
  tabs = @tab.map do |tab|
204
217
  tab.title ? tab.to_a : nil
205
218
  end.compact.to_h
206
-
219
+
207
220
  if @debug then
208
- puts 'inside ping; tabs: ' + tabs.inspect
221
+ puts 'inside ping; tabs: ' + tabs.inspect
209
222
  puts '@active_tab: ' + @active_tab.inspect
210
223
  end
211
-
212
- @build = JsMenuBuilder.new(@type, tabs: tabs,
224
+
225
+ @build = JsMenuBuilder.new(@type, tabs: tabs,
213
226
  active: @active_tab, debug: @debug)
214
227
 
215
228
  end
216
229
 
217
230
  alias refresh ping
218
-
231
+
219
232
  def to_css()
220
233
  @build.to_css
221
234
  end
@@ -239,42 +252,260 @@ xsl= %q(
239
252
  end
240
253
 
241
254
  end
242
-
255
+
243
256
  class Tree
244
-
257
+
258
+ # hn = heading number
245
259
  def initialize(s, debug: false, hn: 2)
246
260
  jtb = JsTreeBuilder.new(:sidebar, {src: s, hn: hn, debug: debug})
247
- @html = jtb.to_webpage
261
+ @html = jtb.to_webpage
248
262
  end
249
-
263
+
250
264
  def to_webpage()
251
265
  @html
252
266
  end
253
-
267
+
254
268
  end
255
-
256
- class VerticalMenu
257
-
258
- def initialize(links, debug: false)
259
- @jtb = JsMenuBuilder.new(:vertical_menu, {items: links, debug: debug})
269
+
270
+ class Menu
271
+
272
+ # current options
273
+ # :vertical_menu, :fixed_menu, sticky_nav, breadcrumb
274
+ #
275
+ def initialize(type=:vertical_menu, links, debug: false)
276
+ @jtb = JsMenuBuilder.new(type, {items: links, debug: debug})
260
277
  end
261
-
278
+
262
279
  def to_css()
263
280
  @jtb.to_css
264
- end
265
-
281
+ end
282
+
266
283
  def to_html()
267
284
  @jtb.to_html
268
- end
269
-
285
+ end
286
+
270
287
  def to_js()
271
288
  @jtb.to_js
272
289
  end
273
-
290
+
274
291
  def to_webpage()
275
292
  @jtb.to_webpage
276
293
  end
277
-
278
- end
294
+
295
+ end
296
+
297
+ class MindWordsWidget
298
+
299
+ def initialize(attributes)
300
+
301
+ @attributes = {
302
+ content: '',
303
+ action: 'mwupdate',
304
+ target: 'icontent'
305
+ }.merge(attributes)
306
+
307
+ end
308
+
309
+ def input(params={})
310
+
311
+ h = @attributes.merge(params)
312
+ content = h[:content]
313
+ action = h[:action]
314
+ target = h[:target]
315
+
316
+ @html =<<EOF
317
+ <form action='#{action}' method='post' target='#{target}'>
318
+ <textarea name='content' cols='30' rows='19'>
319
+ #{content}
320
+ </textarea>
321
+ <input type='submit' value='Submit'/>
322
+ </form>
323
+ EOF
324
+ self
325
+
326
+ end
327
+
328
+ def to_html()
329
+ @html
330
+ end
331
+
332
+ end
333
+
334
+ class Element
335
+
336
+ def initialize(obj)
337
+
338
+ @doc = build(obj)
339
+ puts '@doc.xml : ' + @doc.xml.inspect
340
+ if @id then
341
+ elem = @doc.root.element(@tag + '/' + @htmltag)
342
+ puts 'elem: ' +elem.inspect
343
+ elem.attributes[:name] = @id
344
+ elem.attributes[:id] = @id
345
+ end
346
+
347
+ end
348
+
349
+ def html_element()
350
+ @doc.root.element(@tag + '/' + @htmltag)
351
+ end
352
+
353
+ def to_doc()
354
+ @doc
355
+ end
356
+
357
+ def build(rawobj)
358
+ obj = rawobj.is_a?(Hash) ? RexleBuilder.new(rawobj).to_a : rawobj
359
+ Rexle.new(obj)
360
+ end
361
+
362
+ end
363
+
364
+ class InputElement < Element
365
+
366
+ def initialize(rawobj)
367
+
368
+ if @label then
369
+
370
+ obj = [{label: @label}, rawobj]
371
+ super({@tag.to_sym => obj})
372
+ @doc.root.element(@tag + '/label').attributes[:for] = @id
373
+
374
+ else
375
+ super({@tag.to_sym => rawobj})
376
+ end
377
+
378
+ end
379
+
380
+ end
381
+
382
+ class Dropdown < InputElement
383
+
384
+ def initialize(rawoptions=[], options: rawoptions, label: nil, id: nil)
385
+
386
+ @tag = 'dropdown'
387
+ @htmltag = 'select'
388
+ @id = id
389
+ @label = label
390
+
391
+ if options.is_a? Array then
392
+
393
+ list = options.map {|option| {option: option}}
394
+ super({_select: list})
395
+
396
+ values = options.map(&:downcase)
397
+ @doc.root.xpath('dropdown/select/option').each.with_index do |e,i|
398
+ e.attributes[:value] = values[i]
399
+ end
400
+
401
+ elsif options.is_a? Hash then
402
+
403
+ list = options.values.map {|option| {option: option}}
404
+ values = options.keys
405
+ super({_select: list})
406
+
407
+ @doc.root.xpath('dropdown/select/option').each.with_index do |e,i|
408
+ e.attributes[:value] = values[i]
409
+ end
410
+
411
+
412
+ end
413
+ end
414
+ end
415
+
416
+ class Textarea < InputElement
417
+
418
+ def initialize(value='', text: value, label: nil, id: nil)
419
+
420
+ @tag = 'textarea'
421
+ @htmltag = 'textarea'
422
+ @id = id
423
+ @label = label
424
+ super({@tag.to_sym => text})
425
+
426
+ end
427
+
428
+ end
429
+
430
+ class Form < Element
431
+
432
+ def initialize(inputs=nil, id: nil, method: :get, action: '')
433
+
434
+ @tag = 'form'
435
+ @htmltag = 'form'
436
+ @id = id
437
+
438
+ super([:root, {}, [@tag,{}, [@htmltag, {}]]])
439
+ form = @doc.root.element(@tag + '/' + @htmltag)
440
+ form.add inputs if inputs
441
+ form.attributes[:method] = method.to_s
442
+ form.attributes[:action] = action
443
+
444
+ end
445
+
446
+ end
447
+
448
+
449
+ # e.g. inputs = {txt: [:textarea], audiotype: [:dropdown, 'gsm'], voice: [:dropdown, 'Stuart']}
450
+ # options = {audiotype: ['gsm', 'wav'], voice: %w(Stuart Kirsty Andrew)}
451
+ #
452
+ # fb = HtmlCom::FormBuilder.new(inputs: inputs, options: options)
453
+ # puts fb.to_html
454
+
455
+ class FormBuilder
456
+
457
+
458
+
459
+ def initialize(inputs: {}, options: {}, id: 'form1', method: :get, action: '', debug: false)
460
+
461
+ @debug = debug
462
+
463
+ h = inputs.map do |key, value|
464
+
465
+ if debug then
466
+ puts 'id: ' + key.inspect
467
+ puts 'klass: ' + value.first.inspect
468
+ end
469
+
470
+ [key, [value.first]]
471
+ end.to_h
472
+
473
+ options.each do |key, value|
474
+ h[key] << value
475
+ end
476
+
477
+ klass = {dropdown: HtmlCom::Dropdown, textarea: HtmlCom::Textarea}
478
+
479
+ @form = HtmlCom::Form.new(id: id, method: method, action: action)
480
+
481
+ h.each do |key, value|
482
+
483
+ id = key
484
+ type, content = value
485
+ action = case type
486
+ when :dropdown
487
+ 'Select'
488
+ else
489
+ 'Enter'
490
+ end
491
+
492
+ obj = klass[type].new content, id: id, label: action + ' ' + id.to_s
493
+
494
+ obj.to_doc.root.element(type.to_s).elements.each do |e|
495
+ @form.html_element.add e
496
+ end
497
+
498
+ end
499
+ end
500
+
501
+ def to_doc()
502
+ @form.to_doc
503
+ end
504
+
505
+ def to_html()
506
+ @form.to_doc.root.xml pretty: true
507
+ end
508
+
509
+ end
279
510
 
280
511
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: htmlcom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,32 +10,33 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMTE3MTUzNjE1WhcN
15
- MjIwMTE3MTUzNjE1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDTZ8f6
17
- 3hCg1WPZPVRqvFupR3GrNpUVmE7ly6PnuoAGxvAr5QrGUy4mcy3NRYaExgE2sPMv
18
- zesDm3LVRvSLKoXThlbkNf/c2P4X2RXQzdNTuRY4hp77B9/a0+gWeFwX+K8dB27e
19
- foPBNLGwzlXl28b18cm+ik5CFwQiLtDYZUJIo6XMjpIOZX6r3ppdjX6zhxP83SJR
20
- DNcXYesJS2CW/Jr1nXA2VtW454tZT/G1My7OROMb13tyNeLvrBFnq+x5/qBzMTn5
21
- RSy3V/n1Q0acNgepEGTEF26bPz+KQi+IYUR+0SR4NlQvxFI3s/EwhGREs7ebb2n4
22
- y5z1O4BQU1CTNTEBVPErYe40rCbPx2tl7UFjeMREynyxdSqIgpuu5QDw+oGIA/G5
23
- +6n7+MSCiuK3aPweVRG+Cdx6bYJBgzR2oBTpOSnQBGuPJIYZsHbmxdlKl6IfoHV6
24
- YzOeCcZg7hO1LKZzk1tJhce60uC2CjNeBn8Qv4ZNr28jdV/xzuzoLTCT4FkCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUP5ZhNl+m
26
- fMETZog0vtUzDL9O7BkwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
- c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAAoxegKwCmU/XAf+rPvvgIXNHaHXNUrvz0UY35Fld
29
- UAUAT5VtRdMl1fOsF20D1ZvB8EvgcO5R9sZOh2zdyjCmn/XT6VIyQXMZ3pBEFoCX
30
- JyShDdKobcYKlMrb9Nr9+Mn4J4vfOQcB2NFYwonaDLPQ9AjXwit7rhuOsbDAPnHt
31
- WXQfhCZCk5CoVQeDAuzpnCJm55chl07x+VQYBDedjbHCevrleL6REiRQ0LhkEpPi
32
- 6beXYDQ6kQfSx368fAS8NLwNuozMTcRgRUl7xqP0+ul8nSJZLLWIXmsrs6cyHnw9
33
- HwdPlwmYQHY1xkBxGI9yW8rB4FrO3JUOgLgDnMZ57q9iNKMS9uIqXaWEm0MQLY6m
34
- 0KaSzHUAYca+U2kPPE5/bYl/PRm6PEwzKh9gvxP9DfOsvMo5zx6nIwTk7q9OBGVh
35
- Y7ogWFuR7xV5C2r4jFG/ETJJx68h+Dq4axa5mkEdMQz1iBbVr7SAq4Uoad0IbYtV
36
- 9JH57w1VS3ePSOlwBmm2yWGh
13
+ MIIEljCCAv6gAwIBAgIBATANBgkqhkiG9w0BAQsFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTIyMDcwNTE5MzkxNVoXDTIzMDcwNTE5MzkxNVowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC
18
+ ggGBAOmLrkZ4OBa23h4YUN8bv+VT9sZQCQf3xe0mUExHDJko8bjOx8ziw1KQl1tn
19
+ NSmAFTX+gyRX1n9P/9SgNfr3ZA0DIemn3p9apzFJdWajwpr4lqCpsPSbBCX/FdLQ
20
+ S1Wu77ILm58XBAA3mXOndYPhqsCtuuGUcNqdqrE0YeDkZio7f560sYT5daggM4q0
21
+ qK6lpvZJWjOm3dcZj8HUcf6uKSiZu3RAvABBE4qQ9890R1QNNFPgnjijBjG2k20J
22
+ fAVbHJOr5vIbmC0FJOF/VzmvSGdI8rRgzgcOlAsWYTWMvXxMF3AhH8qy/Q+GuxG8
23
+ YHkArheKw/m9+3ln5FwLhcfcEnDHCCqJrqyBErg1lbZCeeJR3+WfRQ3CmFCKbcUE
24
+ 3RJdIGPtl1MvwicA4+hwQa5/AOSvPl0pw9CmY0taJPRjQ6fFLyepNFRGVuTrnDcq
25
+ 1IAGs5NBJ34OD32aHitxrw/9XIWYzBH9cyRZF9hwYZY2kB2JHuSMl6Dz0g9ukBp4
26
+ b8g7cwIDAQABo4GKMIGHMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
27
+ BBSHDg8sYrd0BuKg+J9GCeDrgCZXsTAmBgNVHREEHzAdgRtnZW1tYXN0ZXJAamFt
28
+ ZXNyb2JlcnRzb24uZXUwJgYDVR0SBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
29
+ c29uLmV1MA0GCSqGSIb3DQEBCwUAA4IBgQAylxVngOZIAZ7MLLozAgOnFOf7s4/p
30
+ syqjV46C2FYJaMSyPjh2FpuGGoWorT6snGAR3V0xJhwg7/NWoLqfMM/XzeKLx8ni
31
+ +yxPmNFdAoTCA+NtY/hK6QWHNKd9NamAVVlZeccVn5MPPU3rXfR95+bB6Nhn+wbh
32
+ 6WTQc/GXDluzOMLoPHyE61J5tFBYSsA6BJZI5mOMBHP3UpJsuHTl2CHmHGjj4twk
33
+ IBxUACAF1vCdlWkL053BQttlZB5Pwb0U/tqclBwiNvx+lgKmz7ET1Jozhc5MinMk
34
+ aYiDsjEUsuY+OedqmF5uCi5smx9JJRDOBTNwJbHBWvPRMYI2Ll0a2lROWM4kxEeg
35
+ uI6GFPYf4z/KAOyF8W2uHSc7Hyt8ZB4BK7QLKo2PqdGlFsXk9r+LEMFuK3e8zEbF
36
+ JNdZs/7/k4vQlgqYQ3HnoA6GgIanmCgNkediqllxv/epLyIkW2DSJGcYXM8QjSEk
37
+ +4RQ8UHDCOWHpFPlT5Pgc0wPc7KyXosRYHg=
37
38
  -----END CERTIFICATE-----
38
- date: 2021-01-17 00:00:00.000000000 Z
39
+ date: 2022-07-06 00:00:00.000000000 Z
39
40
  dependencies:
40
41
  - !ruby/object:Gem::Dependency
41
42
  name: jsmenubuilder
@@ -46,7 +47,7 @@ dependencies:
46
47
  version: '0.3'
47
48
  - - ">="
48
49
  - !ruby/object:Gem::Version
49
- version: 0.3.4
50
+ version: 0.3.6
50
51
  type: :runtime
51
52
  prerelease: false
52
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,27 +57,27 @@ dependencies:
56
57
  version: '0.3'
57
58
  - - ">="
58
59
  - !ruby/object:Gem::Version
59
- version: 0.3.4
60
+ version: 0.3.6
60
61
  - !ruby/object:Gem::Dependency
61
62
  name: jstreebuilder
62
63
  requirement: !ruby/object:Gem::Requirement
63
64
  requirements:
64
65
  - - "~>"
65
66
  - !ruby/object:Gem::Version
66
- version: '0.2'
67
+ version: '0.3'
67
68
  - - ">="
68
69
  - !ruby/object:Gem::Version
69
- version: 0.2.4
70
+ version: 0.3.2
70
71
  type: :runtime
71
72
  prerelease: false
72
73
  version_requirements: !ruby/object:Gem::Requirement
73
74
  requirements:
74
75
  - - "~>"
75
76
  - !ruby/object:Gem::Version
76
- version: '0.2'
77
+ version: '0.3'
77
78
  - - ">="
78
79
  - !ruby/object:Gem::Version
79
- version: 0.2.4
80
+ version: 0.3.2
80
81
  - !ruby/object:Gem::Dependency
81
82
  name: jsajax_wizard
82
83
  requirement: !ruby/object:Gem::Requirement
@@ -117,28 +118,8 @@ dependencies:
117
118
  - - ">="
118
119
  - !ruby/object:Gem::Version
119
120
  version: 0.1.2
120
- - !ruby/object:Gem::Dependency
121
- name: nokogiri
122
- requirement: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: '1.11'
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: 1.11.1
130
- type: :runtime
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
135
- - !ruby/object:Gem::Version
136
- version: '1.11'
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 1.11.1
140
121
  description:
141
- email: james@jamesrobertson.eu
122
+ email: digital.robertson@gmail.com
142
123
  executables: []
143
124
  extensions: []
144
125
  extra_rdoc_files: []
@@ -163,8 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
144
  - !ruby/object:Gem::Version
164
145
  version: '0'
165
146
  requirements: []
166
- rubyforge_project:
167
- rubygems_version: 2.7.10
147
+ rubygems_version: 3.3.7
168
148
  signing_key:
169
149
  specification_version: 4
170
150
  summary: Generates HTML components and is designed for rendering dynamic web pages
metadata.gz.sig CHANGED
Binary file