r2dsvg 0.3.1 → 0.5.0

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.
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/r2dsvg.rb +152 -395
  5. metadata +59 -39
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b533b526c3036bd4871bd65fb8290c7940edadd27093997eeafd6dd1b9da764
4
- data.tar.gz: 720f44a65ebdd583408e11bd2538c57023f4d862e81b9a87bc8fa063f7712e02
3
+ metadata.gz: 218f3f75c56256cfbf3ccd9f0755d31bfad7ec53ae8a235e32103118de2fc8e9
4
+ data.tar.gz: 21aba9150ca1a85bfe48352c02e5bac17b276de41133b97d4e887a823bd85a2d
5
5
  SHA512:
6
- metadata.gz: 2d0c784f1ef2a3fe4a9900e9f0d340b69f9b9d2d578a68e99d36b845f15b0ece63a4c5a8ac895c4c490466d76c68ffc77ef725ffcaa550740d83111053951eab
7
- data.tar.gz: 53a22ec28deaa9fd2f0852697f9f5a395c73ac5cc4999d9bd0502969a7f62ace94f65133d5091d336da923617d2962f2b0d816bdcb0b402e1b221197fab41b19
6
+ metadata.gz: 0250d7a5f4a76af1811e16ad9d38a9e9be12a13708abf20698876a5a94d22fa293ce94bb879d19f900fa802e78b85e73c8eedc455418cf7dd7685f70938a9181
7
+ data.tar.gz: 8fe0f560dddc4f193338019384356665170fb130a08f03407a3dda0709d03e4b91ed3fbf40c7cb2a0911344a915ab0aa6b9d92b6c28db584e3654a7c1c349200
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -5,468 +5,225 @@
5
5
  # Description: Experimental gem to render SVG within a Ruby2D application.
6
6
 
7
7
 
8
- require 'svgle'
9
- require 'ruby2d' # experimental gem depends upon simple2d binaries
10
- require 'dom_render'
8
+ require 'r2dsvg/r2dsvg_module'
11
9
 
12
10
 
13
- DEFAULT_CSS = <<CSS
14
-
15
- svg {background-color: white}
16
- rect {fill: yellow}
17
- line, polyline {stroke: green; stroke-width: 3}
18
- text {fill: red, size: 20}
19
-
20
- CSS
21
-
22
- module SvgleX
11
+ class Reader
12
+ include R2dEngine
13
+ using ColouredText
23
14
 
24
- refine Svgle::Element do
15
+ def initialize(s, model=Svgle, debug: false)
25
16
 
26
- def obj=(object)
27
- @obj = object
28
- end
17
+ svg, _ = RXFHelper.read(s)
18
+ doc = model.new(svg, debug: debug)
19
+ @a = Render.new(doc, debug: debug).to_a
29
20
 
30
- def obj()
31
- @obj
32
- end
33
21
 
34
22
  end
35
23
 
24
+ def to_a()
25
+ @a
26
+ end
27
+
36
28
  end
37
29
 
38
30
  class R2dSvg
39
31
  include Ruby2D
32
+ include R2dEngine
40
33
  using ColouredText
41
34
  using SvgleX
42
35
 
43
- class Render < DomRender
44
-
45
- def audio(e, attributes, raw_style)
46
-
47
- puts 'inside audio attributes: ' + attributes.inspect if @debug
48
- style = style_filter(attributes).merge(raw_style)
49
- h = attributes
50
-
51
- sources = e.xpath('source').map do |x|
52
- h = x.attributes.to_h
53
- h.delete :style
54
- h
55
- end
56
-
57
- [:embed_audio, sources, e]
58
- end
59
-
60
- def circle(e, attributes, raw_style)
61
-
62
- style = style_filter(attributes).merge(raw_style)
63
-
64
- h = attributes
65
-
66
- x, y, radius= %i(cx cy r).map{|x| h[x].to_i }
67
- fill = h[:fill]
68
-
69
-
70
- [:draw_circle, [x, y], radius, fill, style, render_all(e)]
71
- end
72
-
73
- # not yet implemented
74
- #
75
- def ellipse(e, attributes, raw_style)
76
-
77
- style = style_filter(attributes).merge(raw_style)
78
- h = attributes
36
+ attr_reader :doc
79
37
 
80
- x, y= %i(cx cy).map{|x| h[x].to_i }
81
- width = h[:rx].to_i * 2
82
- height = h[:ry].to_i * 2
38
+ def initialize(s, title: 'R2dSVG', debug: false, server: false)
83
39
 
84
- [:draw_arc, [x, y, width, height], style, render_all(e)]
85
- end
40
+ @debug = debug
86
41
 
87
- def line(e, attributes, raw_style)
88
-
89
- style = style_filter(attributes).merge(raw_style)
90
-
91
- x1, y1, x2, y2 = %i(x1 y1 x2 y2).map{|x| attributes[x].to_i }
92
-
93
- [:draw_line, [x1, y1, x2, y2], style, render_all(e)]
94
- end
95
-
42
+ @window = window = Window.new
43
+ @loaded = false
44
+ @model = Svgle
96
45
 
97
- def image(e, attributes, raw_style)
98
-
99
- style = style_filter(attributes).merge(raw_style)
100
- h = attributes
101
-
102
- x, y, width, height = %i(x y width height).map{|x| h[x] ? h[x].to_i : nil }
103
- src = h[:'xlink:href']
104
-
105
- [:draw_image, [x, y, width, height], src, style, e, render_all(e)]
106
- end
107
-
108
- def polygon(e, attributes, raw_style)
109
-
110
- style = style_filter(attributes).merge(raw_style)
111
- points = attributes[:points].split(/\s+/). \
112
- map {|x| x.split(/\s*,\s*/).map(&:to_i)}
46
+ read(s, title)
113
47
 
114
- [:draw_polygon, points, style, e, render_all(e)]
115
- end
116
-
117
- def polyline(e, attributes, raw_style)
118
-
119
- style = style_filter(attributes).merge(raw_style)
120
- points = attributes[:points].split(/\s+/). \
121
- map {|x| x.split(/\s*,\s*/).map(&:to_i)}
122
-
123
- [:draw_lines, points, style, render_all(e)]
124
- end
125
-
126
- def rect(e, attributes, raw_style)
127
-
128
- puts 'inside rect attributes: ' + attributes.inspect if @debug
129
- style = style_filter(attributes).merge(raw_style)
130
- h = attributes
131
-
132
- x1, y1, width, height = %i(x y width height).map{|x| h[x].to_i }
133
- x2, y2, = x1 + width, y1 + height
134
-
135
- [:draw_rectangle, [x1, y1, x2, y2], style, e, render_all(e)]
48
+ if server then
49
+ drb = OneDrb::Server.new(host: '127.0.0.1', port: '57844', obj: self)
50
+ Thread.new { drb.start }
136
51
  end
137
52
 
138
- def script(e, attributes, style)
139
- [:script]
140
- end
141
-
142
- def svg(e, attributes, raw_style)
143
-
144
- style = style_filter(attributes).merge(raw_style)
145
-
146
- h = attributes
147
- width, height = %i(width height).map{|x| h[x].to_i }
53
+ if @loaded then
148
54
 
149
- [:draw_rectangle, [0, 0, width, height], style, render_all(e)]
150
- end
151
-
152
- def text(e, attributes, raw_style)
153
-
154
- style = style_filter(attributes).merge(raw_style)
155
- style.merge!({font_size: '20'})
156
-
157
- x, y = %i(x y).map{|x| attributes[x].to_i }
158
-
159
- [:draw_text, [x, y], e.text, style, e, render_all(e)]
160
- end
55
+ window.on(:mouse_move) do |event|
56
+ mouse :mousemove, event
57
+ mouse :mouseenter, event
58
+ end
59
+
60
+ window.on(:mouse_down) do |event|
161
61
 
162
- private
62
+ if event.button == :left then
63
+
64
+ # click and mousedown do the same thing
65
+ mouse :click, event
66
+ mouse :mousedown, event
67
+ end
68
+
69
+ end
163
70
 
164
- def style_filter(attributes)
165
-
166
- %i(stroke stroke-width fill z-index).inject({}) do |r,x|
167
- attributes.has_key?(x) ? r.merge(x => attributes[x]) : r
71
+ window.on :key_down do |event|
72
+ # A key was pressed
73
+ keyboard :keydown, event
168
74
  end
169
75
 
170
76
  end
171
-
172
- end
173
-
174
- class DrawingInstructions
175
- using ColouredText
176
-
177
- attr_accessor :area
178
-
179
-
180
- def initialize(window, debug: false)
181
-
182
- @window, @debug = window, debug
183
-
77
+ =begin
78
+ window.on :key_held do |event|
79
+ # A key is being held down
80
+ puts event.key
81
+ keyboard :onkeyheld, event
184
82
  end
185
83
 
186
- def draw_arc(args)
187
-
188
- dimensions, style = args
189
-
190
- x, y, width, height = dimensions
191
-
192
- #gc = gc_ini(fill: style[:fill] || :none)
193
- #@area.window.draw_arc(gc, 1, x, y, width, height, 0, 64 * 360)
194
- end
195
-
196
- def draw_circle(args)
197
-
198
- coords, radius, fill, style, e = args
199
-
200
- x1, y1 = coords
201
-
202
- if @debug then
203
- puts 'inside draw_circle'.info
204
- puts ('style: ' + style.inspect).debug
205
- end
206
-
207
- obj = Circle.new(
208
- x: x1, y: y1,
209
- radius: radius,
210
- sectors: 32,
211
- color: style[:fill],
212
- z: style[:"z-index"].to_i
213
- )
214
- e.obj = obj if e.respond_to? :obj=
215
- @window.add obj
216
-
84
+ window.on :key_up do |event|
85
+ # A key was released
86
+ puts event.key
87
+ keyboard :onkeyup, event
217
88
  end
89
+ =end
90
+ window.show
218
91
 
219
- def draw_image(args)
220
-
221
- dimensions, src, style, e = args
222
-
223
- x, y, width, height = dimensions
224
-
225
- filepath = Tempfile.new('r2dsvg').path + File.basename(src)
226
- puts 'filepath: ' + filepath.inspect if @debug
227
- File.write filepath, RXFHelper.read(src).first
228
-
229
-
230
- if File.exists? filepath then
231
-
232
- obj = Image.new(
233
- filepath,
234
- x: x, y: y,
235
- width: width, height: height,
236
- color: style[:fill],
237
- z: style[:"z-index"].to_i
238
- )
239
-
240
- e.obj = obj if e.respond_to? :obj=
241
- @window.add obj
242
- end
243
- end
244
92
 
245
- def draw_line(args)
246
-
247
- coords, style, e = args
248
-
249
- x1, y1, x2, y2 = coords
250
-
251
- if @debug then
252
- puts 'inside draw_rectangle'.info
253
- puts ('style: ' + style.inspect).debug
254
- end
93
+ end
94
+
95
+ def clear()
96
+ @window.clear
97
+ end
98
+
99
+ def read(unknown, title=@title)
255
100
 
256
- obj = Line.new(
257
- x1: x1, y1: y1,
258
- x2: x2, y2: y2,
259
- width: style[:"stroke-width"].to_f,
260
- color: style[:"stroke"],
261
- z: style[:"z-index"].to_i
262
- )
263
-
264
- e.obj = obj if e.respond_to? :obj=
265
- @window.add obj
266
-
267
- end
101
+ @loaded = false
102
+ @window.clear
103
+ doc = nil
268
104
 
269
- def draw_polygon(args)
270
-
271
- points, style, e = args
272
-
273
- puts ('points: ' + points.inspect).debug if @debug
274
- coords = points
105
+ if unknown.is_a? String
106
+
107
+ svg, _ = RXFHelper.read(unknown)
108
+ doc = @model.new(svg, callback: self, debug: @debug)
109
+ instructions = Render.new(doc, debug: @debug).to_a
275
110
 
276
- if @debug then
277
- puts 'inside draw_polygon'.info
278
- puts ('style: ' + style.inspect).debug
279
- end
111
+ elsif unknown.is_a? Array
280
112
 
281
- puts ('coords: ' + coords.inspect).debug if @debug
113
+ puts 'array found' if @debug
114
+
115
+ instructions = unknown
282
116
 
283
- h = coords.map.with_index do |c2,i|
284
-
285
- %w(x y).zip(c2).map {|key, c| [(key + (i+1).to_s).to_sym, c] }
286
-
287
- end.flatten(1).to_h
288
- puts ('triangle h: ' + h.inspect).debug if @debug
289
-
290
- puts ('triangle h merged: ' + h.inspect).debug if @debug
291
- obj = Triangle.new(h.merge({color: style[:fill], z: style[:"z-index"].to_i}))
292
- e.obj = obj if e.respond_to? :obj=
293
- @window.add obj
294
- end
295
-
296
-
297
- # not yet implemented
298
- #
299
- def draw_lines(args)
300
-
301
- coords, width, style, e = args
302
-
303
- x1, y1, x2, y2 = coords
304
-
305
-
306
- end
307
-
308
- def draw_rectangle(args)
309
-
310
- coords, style, e = args
311
-
312
- x1, y1, x2, y2 = coords
313
-
314
- if @debug then
315
- puts 'inside draw_rectangle'.info
316
- puts ('style: ' + style.inspect).debug
317
- end
318
-
319
- obj = Rectangle.new(
320
- x: x1, y: y1,
321
- width: x2 - x1, height: y2 - y1,
322
- color: style[:fill],
323
- z: style[:"z-index"].to_i
324
- )
325
- e.obj = obj if e.respond_to? :obj=
326
- @window.add obj
327
-
328
- end
329
-
330
- def draw_text(args)
331
-
332
- coords, text, style, e = args
333
-
334
- x, y = coords
335
-
336
- if @debug then
337
- puts 'inside draw_text'.info
338
- puts ('style: ' + style.inspect).debug
339
- end
340
-
341
- obj = Text.new(
342
- text,
343
- x: x, y: y,
344
- #font: 'vera.ttf',
345
- size: style[:font_size].to_i,
346
- color: style[:color],
347
- z: style[:"z-index"].to_i
348
- )
349
- e.obj = obj
350
- @window.add obj
351
-
352
117
  end
353
-
354
- # Ruby 2D supports a number of popular audio formats, including WAV,
355
- # MP3, Ogg Vorbis, and FLAC.
118
+
119
+ drawing = DrawingInstructions.new @window, debug: @debug
356
120
 
357
- def embed_audio(args)
121
+ if doc then
358
122
 
359
- sources, e = args
123
+ @width, @height = %i(width height).map{|x| doc.root.attributes[x].to_i }
124
+ @window.set title: title, width: @width, height: @height
125
+
360
126
 
361
- if @debug then
362
- puts 'sources: ' + sources.inspect if @debug
363
- puts 'inside embed_audio'.info
364
- end
365
-
127
+ threads = []
366
128
 
367
- audio_files = sources.map do |source|
368
-
369
- filepath = Tempfile.new('r2dsvg').path + File.basename(source[:src])
370
- File.write filepath, RXFHelper.read(source[:src]).first
371
- filepath
129
+ threads << Thread.new do
130
+ doc.root.xpath('//script').each {|x| eval x.texts.join }
131
+ drawing.render instructions
372
132
  end
373
133
 
374
- audio = audio_files.find {|file| File.exists? file }
375
-
376
- return unless audio
377
-
378
- file = File.exists?(audio) ? audio : nil
379
- puts 'file: ' + file.inspect if @debug
134
+ threads.join
380
135
 
381
- obj = Sound.new(file)
382
- e.obj = obj
136
+ @loaded = true
137
+ @doc = doc
383
138
 
384
- def e.play() self.obj.play() end
385
-
386
- end
387
-
388
- def window(args)
389
- end
390
-
391
- def render(a)
392
- method(a[0]).call(args=a[1..2])
393
- draw a[3]
394
- end
395
-
396
- def script(args)
397
-
398
- end
399
-
400
- private
401
-
402
- def draw(a)
139
+ else
403
140
 
404
- a.each do |rawx|
405
-
406
- x, *remaining = rawx
407
-
408
- if x.is_a? Symbol then
409
- method(x).call(args=remaining)
410
- elsif x.is_a? String then
411
- draw remaining
412
- elsif x.is_a? Array
413
- draw remaining
414
- else
415
- method(x).call(remaining.take 2)
416
- end
417
-
418
- end
419
-
141
+ drawing.render instructions
142
+ h = instructions[2]
143
+ @width, @height = h[:width].to_i, h[:height].to_i
144
+ @window.set title: 'Untitled', width: @width, height: @height
420
145
  end
421
-
422
- end
423
-
424
- def initialize(svg, title: 'R2dSVG', debug: false)
425
-
426
- @svg, @debug = svg, debug
427
- doc = Svgle.new(svg, callback: self, debug: debug)
428
- instructions = Render.new(doc, debug: debug).to_a
429
-
430
- window = Window.new
431
- drawing = DrawingInstructions.new window, debug: debug
432
- puts ('instructions: ' + instructions.inspect).debug if @debug
433
-
434
- @width, @height = %i(width height).map{|x| doc.root.attributes[x].to_i }
435
- window.set title: title, width: @width, height: @height
436
-
437
146
 
438
- doc.root.xpath('//script').each {|x| eval x.text.unescape }
147
+ end
148
+
149
+ def refresh()
150
+ puts 'do nothing' if @debug
151
+ end
152
+
153
+
154
+ private
155
+
156
+ def keyboard(action, event)
439
157
 
440
- drawing.render instructions
441
-
442
- @doc = doc
158
+ doc = @doc
443
159
 
444
- window.on(:mouse_move) {|event| mouse(:move, event) }
160
+ @doc.root.xpath("//*[@on#{action}]").each do |x|
161
+
162
+ if block_given? then
163
+ valid = yield(x)
164
+ statement = x.method(('on' + action.to_s).to_sym).call()
165
+ puts 'statement: ' + statement.inspect if @debug
166
+ eval statement if valid
167
+ else
168
+ statement = x.method(('on' + action.to_s).to_sym).call()
169
+ puts 'statement: ' + statement.inspect if @debug
170
+ eval statement
171
+ end
445
172
 
446
- window.on(:mouse_down) do |event|
447
- mouse :down, event if event.button == :left
448
173
  end
449
-
450
-
451
- window.show
452
- end
453
-
454
- private
174
+
175
+ @doc.event[action].each {|name| method(name).call event }
176
+
177
+ end
455
178
 
456
179
  def mouse(action, event)
457
180
 
458
181
  doc = @doc
459
182
 
460
- @doc.root.xpath("//*[@onmouse#{action}]").each do |x|
183
+ @doc.root.xpath("//*[@on#{action}]").each do |x|
461
184
 
462
185
  #puts 'x.class: ' + x.inspect if @debug
463
186
  if x.obj and x.obj.contains? event.x, event.y then
464
- eval x.method(('onmouse' + action.to_s).to_sym).call()
187
+
188
+
189
+ if not x.active? then
190
+ x.active = true
191
+ elsif action == :mouseenter
192
+ next
193
+ end
194
+
195
+ if block_given? then
196
+ valid = yield(x)
197
+ statement = x.method(('on' + action.to_s).to_sym).call()
198
+ puts 'statement: ' + statement.inspect if @debug
199
+ eval statement if valid
200
+ else
201
+ statement = x.method(('on' + action.to_s).to_sym).call()
202
+ puts 'statement: ' + statement.inspect if @debug
203
+ eval statement
204
+ end
205
+
206
+ else
207
+
208
+ if x.active? then
209
+ x.active = false
210
+ onleave
211
+ end
465
212
  end
466
213
 
467
214
  end
468
215
 
469
216
  end
217
+
218
+ def onleave()
219
+
220
+ @doc.root.xpath("//*[@onmouseleave]").each do |x|
221
+ puts 'onleave'.info if @debug
222
+ eval x.method(:onmouseleave).call()
223
+ end
224
+
225
+ end
226
+
470
227
  end
471
228
 
472
229
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r2dsvg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwMjI0MTUwMTAwWhcN
15
- MjAwMjI0MTUwMTAwWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCm1HdP
17
- w16RoJrJtDnLGLrKsxYgef4nzZif9w8E9yuNoYc98dvnGvOhlU9cAEg6CLGpfmYT
18
- jmIhNQ1xFBUYRQlsSh3mrPp8sOV5jqd+s31g/Sa/hdY9Xj9klojEW0jdIe/oOPWu
19
- lhUWf6kOs6BUKSU1Sv3d7bW2v5o22nItXXSu4ncmNipLlnF5sYyW0dHh5f/9iaV1
20
- DJXwHmwtNvQTSoQX5+RqT4pCftn4GRCH/Jj7PZnEYg6eIBToNjYETMdEfj6wivgz
21
- uZgd/QFYeDD2BfCaV7SHBxL6O+4AJunq/ZbUqkHO0mNoR4ZHrtEFrCZq63OLkBuF
22
- H7wvmNInvl0WJjBnOWiewCiukOfo0szEmAY4ol7946coghPTMd3VNHUlNfMop4/a
23
- P4pcrvYWvrVW/GtBC3MVSLesP8D6IPc2kpViChOyo68U0tRq6IdXKAIR4GuPG/OR
24
- VSGVrkAzG3j+h/tD0wmfSYlE6es1gQ1425z4ljqEpAG0SSYQnamtsWGsmbUCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUrUSMYRp3
26
- 1ekG8TFSXJ+VAoqH2OgwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNDMwMTkyMTE0WhcN
15
+ MjEwNDMwMTkyMTE0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC0pOK2
17
+ 4cEo9eTgZjcf6hCWPhfzB8ylmXTwD3lS6OIzBDsEt3xCkJo8XnTi5d/nsPujrS0p
18
+ +UyMbXmvMg930CR1RVfNIiyxvIxns4pG5nqCWNfYVybIptl+TTmVDu68H7Y2IcVa
19
+ UWTATtB6lVnzm9xJAOwUB1gdR4dQ4qYQtzRUIbSfBpRKzz7xzlIAMtUTNpO+VsIM
20
+ T7PjVDuS3Q3t9yEsWMjHJiK4HjA/cYFpv2gb3uu6Nte6DB9tzAjDkyaDiyiBe0Zf
21
+ Po6GiicAktTdU8KPGCz095AvuEntMiogfU5+J+h+5UQ06s6f8i50MCjyTCpQRBOf
22
+ Y8emglgF5mwOSbtiZmKYNeC1iWmUjLWhSAM5i1CedJliM84loqDvIM7JohPrPe0W
23
+ iVI4roGY3cNJujprtu48mSz4bQ7K2YYNwPUC51lwu/HOfW88nyA73enk1GucaWCv
24
+ wlpQ3/o5DAAdHxyU58Cn5+IccHJB29JpsqCy3ziNGDEoP5oXcu4/JZHjYWkCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUSLKMrYPy
26
+ 3XTqc2K7Hr0Oh0oqmlgwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAo6JZdBbBIo3dNWbnhXes7iMTe2KiX1LZqw0vPdSW
29
- C4zrtVK4KSTH3fUcXS5BoevuuFlEDacX/LDFz44h1XKoRDUXnrcvJKky8l65O2ZE
30
- RQynlQG0OQSxCEeuYnF6n8/4jUVWoWdVIwuQwNz06SvDL5mTfTHAupjcwRTQz2u8
31
- r776IRslpFo7q5fQz9d3kWOTPnDlmJ4Gsakh30/vpWoprbTMuVawfTQlJz8UasPE
32
- XgPn7jQA/mX4iqABzRDTg+lqbb2BOU3saWBK3vK7fh+a/cJ8OMmLrsMqMj4cUx7J
33
- ZIVROhlwO0MAl6Cpa1rwq9FNz2tiq1cXGAd/oGa/K2PvEZop7upaz+ZvhnlC4Fne
34
- TYnQ3G01gSZ88tRRFI24m/UgpKE8uQ9SnkHYcgPVXBbq3kTUqrTSsWjE3V7hN7bB
35
- 7avBPtmJXpQsK1kfdmXP/+tfAIa7KGseabm2+ntraqYNgx3DqyZur8IRdJFi/DPc
36
- 113q/9KjkLj6C+dR0HuLRW1c
28
+ BgkqhkiG9w0BAQsFAAOCAYEAF94p0W/kawz6zAaPBAQYPK80pchIt5YmKgiHH/Ek
29
+ Vn7iww/aiHorCuAAW/2YPls4goVrSIMvHuV16P0qK1j3ylyyGoKnOn3PbpRrjHZu
30
+ 3O9io3fqbVE2wo4kw8FKYEnv/vFFx53cIotYKhiyW5VKACM0AaolFtf2QBnLGuBN
31
+ 6ete9dSMYppBMlf6Ah/EV3PfV6UV/2Pt51fASwU4DBwSsA1aPlvG9KjOq0UQfDHD
32
+ hiK5JelQEUxYRumvheEeAwKnIT8ir+Axt1ld93m7xwtNbDPu21fkGfJ6xFz8Ntme
33
+ Aca1IyhjpPV4IbGYIxNwH0xfeSBgJvp+XBqdcb52k34kdaJa3gsPl+1B4YksolOP
34
+ OD+mqzrShSSZRfL7bhBqXYELKZS5tayICrtujMxstwDGaDLwNVcN/CydQjAD6G+V
35
+ 2z9cm0kGX/0pBfn8cMKC0JgNNNONx3uqiCAhaBEN35C8dqBjua/CK4rMoKEB7XQq
36
+ OAk+mR2SqyWecmZhdnsnm86T
37
37
  -----END CERTIFICATE-----
38
- date: 2019-02-26 00:00:00.000000000 Z
38
+ date: 2020-06-07 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: svgle
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '0.4'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.4.5
49
+ version: 0.4.6
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,47 +56,67 @@ dependencies:
56
56
  version: '0.4'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.4.5
59
+ version: 0.4.6
60
+ - !ruby/object:Gem::Dependency
61
+ name: onedrb
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.1.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.1'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 0.1.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.1'
60
80
  - !ruby/object:Gem::Dependency
61
81
  name: ruby2d
62
82
  requirement: !ruby/object:Gem::Requirement
63
83
  requirements:
64
84
  - - "~>"
65
85
  - !ruby/object:Gem::Version
66
- version: '0.8'
86
+ version: '0.9'
67
87
  - - ">="
68
88
  - !ruby/object:Gem::Version
69
- version: 0.8.1
89
+ version: 0.9.4
70
90
  type: :runtime
71
91
  prerelease: false
72
92
  version_requirements: !ruby/object:Gem::Requirement
73
93
  requirements:
74
94
  - - "~>"
75
95
  - !ruby/object:Gem::Version
76
- version: '0.8'
96
+ version: '0.9'
77
97
  - - ">="
78
98
  - !ruby/object:Gem::Version
79
- version: 0.8.1
99
+ version: 0.9.4
80
100
  - !ruby/object:Gem::Dependency
81
101
  name: dom_render
82
102
  requirement: !ruby/object:Gem::Requirement
83
103
  requirements:
84
- - - "~>"
85
- - !ruby/object:Gem::Version
86
- version: '0.3'
87
104
  - - ">="
88
105
  - !ruby/object:Gem::Version
89
- version: 0.3.2
106
+ version: 0.4.0
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.4'
90
110
  type: :runtime
91
111
  prerelease: false
92
112
  version_requirements: !ruby/object:Gem::Requirement
93
113
  requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.3'
97
114
  - - ">="
98
115
  - !ruby/object:Gem::Version
99
- version: 0.3.2
116
+ version: 0.4.0
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '0.4'
100
120
  description:
101
121
  email: james@jamesrobertson.eu
102
122
  executables: []
@@ -123,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
143
  - !ruby/object:Gem::Version
124
144
  version: '0'
125
145
  requirements: []
126
- rubygems_version: 3.0.1
146
+ rubygems_version: 3.0.3
127
147
  signing_key:
128
148
  specification_version: 4
129
149
  summary: Experimental gem to render SVG within a Ruby2D application.
metadata.gz.sig CHANGED
Binary file