shul 0.3.13 → 0.4.0

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.tar.gz.sig +0 -0
  4. data/lib/shul.rb +90 -12
  5. metadata +26 -26
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20e97767b7db378996a7a95ec176b5149be6bcc9
4
- data.tar.gz: 9d6792343efbe2c637ffe91c701366777ab51f7d
3
+ metadata.gz: 0303a5535fb2c819de9cc8a113534fe528951ff7
4
+ data.tar.gz: c62a337a7e4c72f172eade89e88441ecb00a9f60
5
5
  SHA512:
6
- metadata.gz: 25b371058131849a62509355cf7ae5b8676732b04b3330039ba2501d9a4d006485a93f96b03a3dc5dcbac5068af7f5d6a34b4bdb0c990050893161a87ecbde44
7
- data.tar.gz: 88530a2d21351fa77a50f864bf101deff5e63ad3deabd4ca2cc4d521223300da1eaff35880117ab1611f10e483b7d47ca79f031cf261c172d6f53d5601011383
6
+ metadata.gz: ab4f7952c033fe47d0bb49fb703433528610923e55ab8f12eb72329af4588dc2f93195c4b92fa16f547b92531e623af18faebcc0997b7d3b25d729996acdb503
7
+ data.tar.gz: 968bb1e646dc9b6864dda413e9045953b356f0b43c21b5cabb24030d22f2307fa965737b4523433f7184724549de06c43389851a5b57bd5fa8e37d92c4b63763
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/shul.rb CHANGED
@@ -40,6 +40,7 @@ Shul::Main.new Shoes, xml
40
40
 
41
41
  # modifications
42
42
  #
43
+ # 21-May-2017: Added a Document Object Model (DOM) class called Shule
43
44
  # 23-Jan-2017: A Vbox or Hbox width can now be set
44
45
  # 13-Jan-2017: The script tag is now executed only after the
45
46
  # document elements have been loaded
@@ -57,12 +58,7 @@ Shul::Main.new Shoes, xml
57
58
  # Rexle::Element enhancement rather than a monkey patch
58
59
  # * tested using the green_shoes gem.
59
60
 
60
- #require 'rexle'
61
-
62
- require 'requestor'
63
-
64
-
65
- eval Requestor.read('http://rorbuilder.info/r/ruby'){|x| x.require 'rexle'}
61
+ require 'domle'
66
62
  require 'rxfhelper'
67
63
 
68
64
 
@@ -75,19 +71,92 @@ module RexleObject
75
71
  end
76
72
  end
77
73
 
74
+ DEFAULT_SHUL_CSS = <<CSS
75
+
76
+ app {background-color: white}
77
+ hbox {background-color: yellow}
78
+ vbox {background-color: #0e0}
79
+ label {background-color: #aa1}
80
+
81
+ CSS
78
82
 
79
83
  module Shul
84
+
85
+
86
+ class Shule < Domle
87
+
88
+ class Box < Element
89
+ attr2_accessor *%i(background-color margin padding)
90
+
91
+ end
92
+
93
+ class Component < Box
94
+ attr2_accessor *%i(width height)
95
+
96
+ end
97
+
98
+
99
+ class App < Component
100
+
101
+ end
102
+
103
+ class Hbox < Box
104
+ end
105
+
106
+ class Vbox < Box
107
+ end
108
+
109
+ class Label < Component
110
+
111
+ end
112
+
113
+
114
+ def inspect()
115
+ "#<Shule:%s>" % [self.object_id]
116
+ end
117
+
118
+
119
+ protected
120
+
121
+ def add_default_css()
122
+ add_css DEFAULT_SHUL_CSS
123
+ end
124
+
125
+ private
126
+
127
+ def defined_elements()
128
+ super.merge({
129
+ app: Shule::App,
130
+ script: Shule::Script,
131
+ hbox: Shule::Hbox,
132
+ vbox: Shule::Vbox,
133
+ label: Shule::Label
134
+ })
135
+ end
136
+
137
+ end
138
+
139
+
80
140
 
81
141
  class Main
82
142
 
83
143
 
84
144
  def initialize(shoes, source)
85
145
 
86
- doc = if source.is_a? Rexle then source
146
+ if source.is_a? Rexle then
147
+
148
+ doc = source
149
+
87
150
  else
88
- xml, _ = RXFHelper.read(source)
89
- Rexle.new(xml)
90
- end
151
+
152
+ xml, type = RXFHelper.read(source)
153
+ # is the first line an XML processing instruction?
154
+ #jr210517 doc = Rexle.new(xml)
155
+ doc = Shule.new(xml)
156
+ #doc = Rexle.new(xml)
157
+ puts 'doc: ' + doc.xml.inspect
158
+
159
+ end
91
160
 
92
161
  attr = {width: 300, height: 200}.merge doc.root.attributes.to_h
93
162
 
@@ -305,6 +374,11 @@ module Shul
305
374
 
306
375
  flow = @shoes.flow h2 do
307
376
  @shoes.background h[:bgcolor] if h[:bgcolor]
377
+
378
+ if e.style.has_key? :'background-color' then
379
+ @shoes.background e.style[:'background-color']
380
+ end
381
+
308
382
  e.elements.each {|x| method(x.name.sub(':','_').to_sym).call(x) }
309
383
  end
310
384
  e.obj = flow
@@ -457,12 +531,16 @@ module Shul
457
531
  h2.merge!({width: h[:width].to_i}) if h[:width]
458
532
 
459
533
  stack = @shoes.stack h2 do
534
+
460
535
  @shoes.background h[:bgcolor] if h[:bgcolor]
536
+
537
+ if e.style.has_key? :'background-color' then
538
+ @shoes.background e.style[:'background-color']
539
+ end
461
540
  e.elements.each {|x| method(x.name.sub(':','_').to_sym).call(x) }
462
541
  end
463
542
 
464
- e.obj = stack
465
-
543
+ e.obj = stack
466
544
 
467
545
  end
468
546
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shul
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.13
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -12,67 +12,67 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
14
  YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MDQyOTE1MzcxNloXDTE3MDQyOTE1MzcxNlowSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE3MDUyMTIyMTEzM1oXDTE4MDUyMTIyMTEzM1owSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBALk4luolS+KwzbVZrPWkmJLD2RrKFPLHTrW2TCqZnKKF3M8xVV6lKXGjbMl4
19
- dawA9hEdQzRvV5rMsK30BSgbVpSpibt6yrhx8+CRk/JNqXPS0kqjUmZWh40lIbri
20
- zj19r1Ex9ZLOA28h8k5ibyOTpVp5o7HxZtS+YRse2mnY/fWJ3Fpt0gNEoLpp/f0A
21
- Hpa5Vq2V+KQ0UjnGKBKwdeiX2EDNdhnG/XagTmCsQ3pjxIKG9KVBIXyYq7Px9rKQ
22
- Nv+Pr6efP8Hd9GUXWAHDb3eMIh29DD3jVVHuQTtr/lKnD/lMixg7FL42slge2U7o
23
- vYgSBUzQ+d+LUQtN9gi6qwzInKsCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUzwnyGuljEK+HovXrhS+/el3X1HkwJgYDVR0RBB8w
18
+ ggEBAK/yhqXgYTqu66Wmclzd8xfGjG6gpCXX5rMeBVK7pHnWfjtGULQYbKpObIqH
19
+ ybaHU7z1scBTsIZR3ZJNTOqhYfFDmnX3LDUdLN815BNZQxqkw8mRws0pRu/q0pKS
20
+ cJAcnK/yKJ1YjyqBCjqgaL11wkl6dkn6wEHWp83dwbvatb/HssBv8HdDnov0Y17g
21
+ jf8YtUsOLKTa51Gpy7IRPw3jv0RZ1LXrc7J6LZANWPEePAjS4vsjlNJjpX4V6lHO
22
+ HnNaqCKjFreeIGJvjP9YxEBleu+DD/8GNRXS17vYMt0QxPb+eYE6faz618wpgxps
23
+ v4Bti5xfKy1RC9MV223EUHfiHycCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUT3OlGzhUrE2Xnp2c8rUhkdgNdV8wJgYDVR0RBB8w
25
25
  HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAt141lEVO
27
- cCYR72FTuooESYZZZueEXPzLIqMN1Oo4fbJBYguvvsC497q03YUWW9BDLWRtPKFi
28
- 5X/6UGzJbNX4SMIEtHSETx22H4osWzhcEP5x7njvn1mrybCyEo4Btftzb7BTu2J8
29
- OjsPaGOdgGXcCcDN+O55EYcT0ONa6oOFv8vxujWAvitf8KMhrXn0QoKCFt/fBSot
30
- TqcwMdqbyj69HORcyQWSM3Zt4Q/YiBFZx38q6j4Qiyi6gq8DWr7z0A+qe2ZlcGdu
31
- /vGEl178JmTwkkyOnfudv6A8yY1uGiMvCrStPdAXg91qOFgoQFo/tUKAHYzSpxYg
32
- pcdACC5rdLX/DA==
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAeo2gOcdo
27
+ 8BVde/rFBM1ld6/EMUEwbPNmcRiqYzfYJNHdqmkUPsJip5nbxG7vdvsod4TzfCU1
28
+ QyIq90bojSH7LuZHVxngq4AUZCBDKvxEU2dQzRWkyDnYVz7kwTIfZ3J3PDJ4vxDX
29
+ YhPDygx+MWImBKPKqGL9yqcck0FWEMyieAM+uGk40D5OwUzGdgQ88mLTXkVA4ioM
30
+ ozfKsYalbIlswHu1Mf8tfBDFOzmAs4keW2MZ/9KHyNFz3rSSMD3wNUt5ASpBWde4
31
+ t8eGazfn6KO3ECwm0DI6ZG6K+/TPPHv8HXfONWq0oGmvwamHXWjcz3hCa5hZw0Vt
32
+ +vU993j3UFViMQ==
33
33
  -----END CERTIFICATE-----
34
- date: 2017-01-23 00:00:00.000000000 Z
34
+ date: 2017-05-21 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
- name: rexle
37
+ name: domle
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '1.3'
42
+ version: '0.1'
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 1.3.30
45
+ version: 0.1.7
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '1.3'
52
+ version: '0.1'
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.3.30
55
+ version: 0.1.7
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rxfhelper
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '0.3'
62
+ version: '0.4'
63
63
  - - ">="
64
64
  - !ruby/object:Gem::Version
65
- version: 0.3.0
65
+ version: 0.4.2
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
- version: '0.3'
72
+ version: '0.4'
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.3.0
75
+ version: 0.4.2
76
76
  description:
77
77
  email: james@jamesrobertson.eu
78
78
  executables: []
metadata.gz.sig CHANGED
Binary file