svgle 0.1.5 → 0.2.0
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/svgle.rb +46 -1
- data.tar.gz.sig +0 -0
- metadata +3 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebac10f7f16a51fdc11cb47d10722df139a6ad6e
|
4
|
+
data.tar.gz: c193058e7416fec69057dff1a4b6d1d8d0425bad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b502b25bc97c7143935a5a2af502136c4fd4972d585404d2889f980db1b8c2db11a36c47662f0ec897f035c09c896a1f60c6ad4235989b52c960d3e287498e51
|
7
|
+
data.tar.gz: 7436b3233067e7d5a94ed37fe58135661b26c40d1cd48b45f84cd247e05da5b557990b09dd805c3d36b6b7be76f7d33e23884ddbf0434cc6f51c6a37ce2b801a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/svgle.rb
CHANGED
@@ -176,6 +176,11 @@ class Svgle < Rexle
|
|
176
176
|
|
177
177
|
end
|
178
178
|
|
179
|
+
class Style < Element
|
180
|
+
|
181
|
+
end
|
182
|
+
|
183
|
+
|
179
184
|
class Svg < Element
|
180
185
|
attr2_accessor *%i(width height)
|
181
186
|
def boundary()
|
@@ -191,14 +196,53 @@ class Svgle < Rexle
|
|
191
196
|
end
|
192
197
|
|
193
198
|
|
194
|
-
def initialize(x=nil,callback: nil)
|
199
|
+
def initialize(x=nil, callback: nil)
|
195
200
|
super x
|
201
|
+
add_css()
|
196
202
|
@callback = callback
|
197
203
|
end
|
198
204
|
|
205
|
+
def inspect()
|
206
|
+
"#<Svgle:%s>" % [self.object_id]
|
207
|
+
end
|
208
|
+
|
199
209
|
def refresh()
|
200
210
|
@callback.refresh if @callback
|
201
211
|
end
|
212
|
+
|
213
|
+
private
|
214
|
+
|
215
|
+
def add_css()
|
216
|
+
|
217
|
+
@doc.root.xpath('//style').each do |e|
|
218
|
+
|
219
|
+
# parse the CSS
|
220
|
+
|
221
|
+
a = e.text.split(/}/)[0..-2].map do |entry|
|
222
|
+
|
223
|
+
raw_selector,raw_styles = entry.split(/{/,2)
|
224
|
+
|
225
|
+
h = raw_styles.split(/;/).inject({}) do |r, x|
|
226
|
+
k, v = x.split(/:/,2).map(&:strip)
|
227
|
+
r.merge(k.to_sym => v)
|
228
|
+
end
|
229
|
+
|
230
|
+
[raw_selector.split(/,\s*/).map(&:strip), h]
|
231
|
+
end
|
232
|
+
|
233
|
+
|
234
|
+
# add the CSS style attributes to the element
|
235
|
+
# e.g. a = [[['line'],{stroke: 'green'}]]
|
236
|
+
|
237
|
+
a.each do |selectors, style|
|
238
|
+
selectors.each do |selector|
|
239
|
+
style.each {|k,v| self.at_css(selector).style[k] = v }
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
end
|
244
|
+
|
245
|
+
end
|
202
246
|
|
203
247
|
def scan_element(name, attributes=nil, *children)
|
204
248
|
|
@@ -212,6 +256,7 @@ class Svgle < Rexle
|
|
212
256
|
g: Svgle::G,
|
213
257
|
svg: Svgle::Svg,
|
214
258
|
script: Svgle::Script,
|
259
|
+
style: Svgle::Style,
|
215
260
|
doc: Rexle::Element,
|
216
261
|
polygon: Svgle::Polygon,
|
217
262
|
polyline: Svgle::Polyline,
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: svgle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -83,7 +83,6 @@ rubyforge_project:
|
|
83
83
|
rubygems_version: 2.4.8
|
84
84
|
signing_key:
|
85
85
|
specification_version: 4
|
86
|
-
summary:
|
87
|
-
|
88
|
-
elements as objects."
|
86
|
+
summary: Svgle (SVG + Rexle) generates an SVG Document Object Model from the given
|
87
|
+
SVG. Suitable for accessing, or modifying SVG elements as objects.
|
89
88
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|