rubysketch 0.3.13 → 0.3.17

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.
@@ -4,57 +4,83 @@ module RubySketch
4
4
  class Window < Reflex::Window
5
5
 
6
6
  attr_accessor :setup, :update, :draw, :before_draw, :after_draw, :resize,
7
+ :key_down, :key_up,
7
8
  :pointer_down, :pointer_up, :pointer_move, :pointer_drag,
8
- :key, :motion
9
+ :motion
9
10
 
10
11
  attr_accessor :auto_resize
11
12
 
12
- attr_reader :canvas, :canvas_painter
13
+ attr_reader :canvas_image, :canvas_painter
13
14
 
14
- def initialize (width = 500, height = 500, *args, &block)
15
- @events = []
16
- @auto_resize = true
17
- @error = nil
15
+ def initialize(width = 500, height = 500, *args, **kwargs, &block)
16
+ RubySketch.instance_variable_set :@window, self
17
+
18
+ @canvas_image =
19
+ @canvas_painter = nil
20
+ @events = []
21
+ @auto_resize = true
22
+ @error = nil
18
23
 
19
24
  painter.miter_limit = 10
20
25
  resize_canvas 1, 1
21
26
 
22
- super *args, size: [width, height], &block
27
+ @canvas_view = add Reflex::View.new {|v|
28
+ v.on(:update) {|e| on_canvas_update e}
29
+ v.on(:draw) {|e| on_canvas_draw e}
30
+ v.on(:pointer) {|e| on_canvas_pointer e}
31
+ v.on(:resize) {|e| on_canvas_resize e}
32
+ }
33
+
34
+ super(*args, size: [width, height], **kwargs, &block)
23
35
  end
24
36
 
25
- def start (&block)
37
+ def start(&block)
26
38
  draw_canvas do
27
39
  block.call if block
28
40
  on_setup
29
41
  end
30
42
  end
31
43
 
32
- def event ()
44
+ def event()
33
45
  @events.last
34
46
  end
35
47
 
36
- def on_setup ()
48
+ def on_setup()
37
49
  call_block @setup, nil
38
50
  end
39
51
 
40
- def on_update (e)
41
- call_block @update, e
42
- redraw
52
+ def on_resize(e)
53
+ on_canvas_resize e
43
54
  end
44
55
 
45
- def on_draw (e)
46
- draw_canvas {call_block @draw, e} if @draw
56
+ def on_draw(e)
57
+ update_canvas_view
58
+ end
47
59
 
48
- x, y, w, h = coord_converter
49
- e.painter.image @canvas, x, y, @canvas.width * w, @canvas.height * h
60
+ def on_key(e)
61
+ block = case e.type
62
+ when :down then @key_down
63
+ when :up then @key_up
64
+ end
65
+ draw_canvas {call_block block, e} if block
50
66
  end
51
67
 
52
- def on_key (e)
53
- draw_canvas {call_block @key, e} if @key
68
+ def on_motion(e)
69
+ draw_canvas {call_block @motion, e} if @motion
54
70
  end
55
71
 
56
- def on_pointer (e)
57
- block = case e.type
72
+ def on_canvas_update(e)
73
+ call_block @update, e
74
+ @canvas_view.redraw
75
+ end
76
+
77
+ def on_canvas_draw(e)
78
+ draw_canvas {call_block @draw, e} if @draw
79
+ e.painter.image @canvas_image
80
+ end
81
+
82
+ def on_canvas_pointer(e)
83
+ block = case e.action
58
84
  when :down then @pointer_down
59
85
  when :up then @pointer_up
60
86
  when :move then e.drag? ? @pointer_drag : @pointer_move
@@ -62,41 +88,32 @@ module RubySketch
62
88
  draw_canvas {call_block block, e} if block
63
89
  end
64
90
 
65
- def on_motion (e)
66
- draw_canvas {call_block @motion, e} if @motion
67
- end
68
-
69
- def on_resize (e)
91
+ def on_canvas_resize(e)
70
92
  resize_canvas e.width, e.height if @auto_resize
71
93
  draw_canvas {call_block @resize, e} if @resize
72
94
  end
73
95
 
74
- def to_canvas_coord (x, y)
75
- xx, yy, ww, hh = coord_converter
76
- return (x - xx) / ww, (y - yy) / hh
77
- end
78
-
79
96
  private
80
97
 
81
- def resize_canvas (width, height, pixel_density = nil)
98
+ def resize_canvas(width, height, pixel_density = nil)
82
99
  return nil if width * height == 0
83
100
 
84
- unless width == @canvas&.width &&
85
- height == @canvas&.height &&
101
+ unless width == @canvas_image&.width &&
102
+ height == @canvas_image&.height &&
86
103
  pixel_density == @canvas_painter&.pixel_density
87
104
 
88
- old_canvas = @canvas
105
+ old_image = @canvas_image
89
106
  old_painter = @canvas_painter
90
- cs = old_canvas&.color_space || Rays::RGBA
107
+ cs = old_image&.color_space || Rays::RGBA
91
108
  pd = pixel_density ||
92
109
  old_painter&.pixel_density ||
93
110
  painter .pixel_density
94
111
 
95
- @canvas = Rays::Image.new width, height, cs, pd
96
- @canvas_painter = @canvas.painter
112
+ @canvas_image = Rays::Image.new width, height, cs, pd
113
+ @canvas_painter = @canvas_image.painter
97
114
 
98
- if old_canvas
99
- @canvas_painter.paint {image old_canvas}
115
+ if old_image
116
+ @canvas_painter.paint {image old_image}
100
117
  copy_painter_attributes old_painter, @canvas_painter
101
118
  end
102
119
 
@@ -106,11 +123,7 @@ module RubySketch
106
123
  @canvas_painter
107
124
  end
108
125
 
109
- def resize_window (width, height)
110
- size width, height
111
- end
112
-
113
- def copy_painter_attributes (from, to)
126
+ def copy_painter_attributes(from, to)
114
127
  to.fill = from.fill
115
128
  to.stroke = from.stroke
116
129
  to.stroke_width = from.stroke_width
@@ -120,39 +133,49 @@ module RubySketch
120
133
  to.font = from.font
121
134
  end
122
135
 
123
- def coord_converter ()
124
- ww, wh = width.to_f, height.to_f
125
- cw, ch = @canvas.width.to_f, @canvas.height.to_f
126
- return [0, 0, 1, 1] if ww == 0 || wh == 0 || cw == 0 || ch == 0
136
+ def resize_window(width, height)
137
+ size width, height
138
+ end
139
+
140
+ def update_canvas_view()
141
+ scrollx, scrolly, zoom = get_scroll_and_zoom
142
+ @canvas_view.scroll_to scrollx, scrolly
143
+ @canvas_view.zoom zoom
144
+ end
145
+
146
+ def get_scroll_and_zoom()
147
+ ww, wh = width.to_f, height.to_f
148
+ cw, ch = @canvas_image.width.to_f, @canvas_image.height.to_f
149
+ return [0, 0, 1] if ww == 0 || wh == 0 || cw == 0 || ch == 0
127
150
 
128
151
  wratio, cratio = ww / wh, cw / ch
129
152
  if wratio >= cratio
130
153
  scaled_w = wh * cratio
131
- return (ww - scaled_w) / 2, 0, scaled_w / cw, wh / ch
154
+ return (ww - scaled_w) / 2, 0, scaled_w / cw
132
155
  else
133
156
  scaled_h = ww / cratio
134
- return 0, (wh - scaled_h) / 2, ww / cw, scaled_h / ch
157
+ return 0, (wh - scaled_h) / 2, ww / cw
135
158
  end
136
159
  end
137
160
 
138
- def draw_canvas (&block)
161
+ def draw_canvas(&block)
139
162
  begin_draw
140
163
  block.call
141
164
  ensure
142
165
  end_draw
143
166
  end
144
167
 
145
- def begin_draw ()
168
+ def begin_draw()
146
169
  @canvas_painter.__send__ :begin_paint
147
170
  @before_draw&.call
148
171
  end
149
172
 
150
- def end_draw ()
173
+ def end_draw()
151
174
  @after_draw&.call
152
175
  @canvas_painter.__send__ :end_paint
153
176
  end
154
177
 
155
- def call_block (block, event, *args)
178
+ def call_block(block, event, *args)
156
179
  @events.push event
157
180
  block.call event, *args if block && !@error
158
181
  rescue Exception => e
@@ -18,6 +18,6 @@ begin
18
18
  window.__send__ :begin_draw
19
19
  at_exit do
20
20
  window.__send__ :end_draw
21
- Reflex.start {window.show} unless $!
21
+ RubySketch::App.new {window.show}.start unless $!
22
22
  end
23
23
  end
data/lib/rubysketch.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'set'
1
2
  require 'digest/sha1'
2
3
  require 'pathname'
3
4
  require 'tmpdir'
@@ -5,6 +6,7 @@ require 'open-uri'
5
6
 
6
7
  require 'reflex'
7
8
  require 'rubysketch/module'
9
+ require 'rubysketch/app'
8
10
  require 'rubysketch/window'
9
11
  require 'rubysketch/processing'
10
12
  require 'rubysketch/glsl'
data/rubysketch.gemspec CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.homepage = "https://github.com/xord/rubysketch"
27
27
 
28
28
  s.platform = Gem::Platform::RUBY
29
- s.required_ruby_version = '~> 2'
29
+ s.required_ruby_version = '>= 2.6.0'
30
30
 
31
31
  s.add_runtime_dependency 'reflexion', '~> 0.1'
32
32
 
data/test/helper.rb CHANGED
@@ -12,7 +12,7 @@ require 'rubysketch'
12
12
  include Xot::Test
13
13
 
14
14
 
15
- def assert_equal_vector (v1, v2, delta = 0.000001)
15
+ def assert_equal_vector(v1, v2, delta = 0.000001)
16
16
  assert_in_delta v1.x, v2.x, delta
17
17
  assert_in_delta v1.y, v2.y, delta
18
18
  assert_in_delta v1.z, v2.z, delta
@@ -6,15 +6,11 @@ require_relative '../helper'
6
6
 
7
7
  class TestProcessingUtility < Test::Unit::TestCase
8
8
 
9
- class Context
10
- include RubySketch::Processing::Context
9
+ def context()
10
+ RubySketch::Processing::Context.new RubySketch::Window.new
11
11
  end
12
12
 
13
- def context
14
- Context.new
15
- end
16
-
17
- def test_random ()
13
+ def test_random()
18
14
  c = context
19
15
 
20
16
  assert_equal Float, c.random(1).class
@@ -6,23 +6,20 @@ require_relative '../helper'
6
6
 
7
7
  class TestProcessingVector < Test::Unit::TestCase
8
8
 
9
- P = RubySketch::Processing
10
-
11
- V = P::Vector
12
-
13
- M = Math
14
-
9
+ P = RubySketch::Processing
10
+ V = P::Vector
11
+ M = Math
15
12
  PI = M::PI
16
13
 
17
- def vec (*args)
18
- V.new *args
14
+ def vec(*args, **kwargs)
15
+ V.new(*args, **kwargs)
19
16
  end
20
17
 
21
- def point (*args)
22
- Rays::Point.new *args
18
+ def point(*args, **kwargs)
19
+ Rays::Point.new(*args, **kwargs)
23
20
  end
24
21
 
25
- def test_initialize ()
22
+ def test_initialize()
26
23
  assert_equal_vector vec(0, 0, 0), vec()
27
24
  assert_equal_vector vec(1, 0, 0), vec(1)
28
25
  assert_equal_vector vec(1, 2, 0), vec(1, 2)
@@ -37,7 +34,7 @@ class TestProcessingVector < Test::Unit::TestCase
37
34
  assert_equal_vector vec(1, 2, 3), vec(point 1, 2, 3)
38
35
  end
39
36
 
40
- def test_set ()
37
+ def test_set()
41
38
  v0 = vec 9, 9, 9
42
39
 
43
40
  v = v0.dup; v.set; assert_equal_vector vec(0, 0, 0), v
@@ -54,7 +51,7 @@ class TestProcessingVector < Test::Unit::TestCase
54
51
  v = v0.dup; v.set point(1, 2, 3); assert_equal_vector vec(1, 2, 3), v
55
52
  end
56
53
 
57
- def test_dup ()
54
+ def test_dup()
58
55
  v1 = vec 1, 2, 3
59
56
  assert_equal_vector vec(1, 2, 3), v1
60
57
 
@@ -67,7 +64,7 @@ class TestProcessingVector < Test::Unit::TestCase
67
64
  assert_equal_vector vec(1, 2, 3), v2
68
65
  end
69
66
 
70
- def test_copy ()
67
+ def test_copy()
71
68
  v1 = vec 1, 2, 3
72
69
  assert_equal_vector vec(1, 2, 3), v1
73
70
 
@@ -80,7 +77,7 @@ class TestProcessingVector < Test::Unit::TestCase
80
77
  assert_equal_vector vec(1, 2, 3), v2
81
78
  end
82
79
 
83
- def test_xyz ()
80
+ def test_xyz()
84
81
  v = vec 1, 2, 3
85
82
  assert_equal_vector vec(1, 2, 3), v
86
83
  assert_equal [1, 2, 3], [v.x, v.y, v.z]
@@ -95,11 +92,11 @@ class TestProcessingVector < Test::Unit::TestCase
95
92
  assert_equal_vector vec(7, 8, 9), v
96
93
  end
97
94
 
98
- def test_array ()
95
+ def test_array()
99
96
  assert_equal [1, 2, 3], vec(1, 2, 3).array
100
97
  end
101
98
 
102
- def test_add ()
99
+ def test_add()
103
100
  v = vec 1, 2, 3
104
101
  v.add 4, 5, 6
105
102
  assert_equal_vector vec(5, 7, 9), v
@@ -118,7 +115,7 @@ class TestProcessingVector < Test::Unit::TestCase
118
115
  assert_equal_vector vec(5, 7, 9), vec(1, 2, 3).add(point(4, 5, 6))
119
116
  end
120
117
 
121
- def test_sub ()
118
+ def test_sub()
122
119
  v = vec 9, 8, 7
123
120
  v.sub 1, 2, 3
124
121
  assert_equal_vector vec(8, 6, 4), v
@@ -137,19 +134,19 @@ class TestProcessingVector < Test::Unit::TestCase
137
134
  assert_equal_vector vec(8, 6, 4), vec(9, 8, 7).sub(point(1, 2, 3))
138
135
  end
139
136
 
140
- def test_mult ()
137
+ def test_mult()
141
138
  v = vec 1, 2, 3
142
139
  v.mult 2
143
140
  assert_equal_vector vec(2, 4, 6), v
144
141
  end
145
142
 
146
- def test_div ()
143
+ def test_div()
147
144
  v = vec 2, 4, 6
148
145
  v.div 2
149
146
  assert_equal_vector vec(1, 2, 3), v
150
147
  end
151
148
 
152
- def test_op_add ()
149
+ def test_op_add()
153
150
  v1 = vec 1, 2, 3
154
151
  v2 = vec 4, 5, 6
155
152
  assert_equal_vector vec(5, 7, 9), v1 + v2
@@ -167,7 +164,7 @@ class TestProcessingVector < Test::Unit::TestCase
167
164
  assert_equal_vector vec(5, 7, 9), vec(1, 2, 3) + point(4, 5, 6)
168
165
  end
169
166
 
170
- def test_op_sub ()
167
+ def test_op_sub()
171
168
  v1 = vec 9, 8, 7
172
169
  v2 = vec 1, 2, 3
173
170
  assert_equal_vector vec(8, 6, 4), v1 - v2
@@ -185,19 +182,19 @@ class TestProcessingVector < Test::Unit::TestCase
185
182
  assert_equal_vector vec(8, 6, 4), vec(9, 8, 7) - point(1, 2, 3)
186
183
  end
187
184
 
188
- def test_op_mult ()
185
+ def test_op_mult()
189
186
  v = vec 1, 2, 3
190
187
  assert_equal_vector vec(2, 4, 6), v * 2
191
188
  assert_equal_vector vec(1, 2, 3), v
192
189
  end
193
190
 
194
- def test_op_div ()
191
+ def test_op_div()
195
192
  v = vec 2, 4, 6
196
193
  assert_equal_vector vec(1, 2, 3), v / 2
197
194
  assert_equal_vector vec(2, 4, 6), v
198
195
  end
199
196
 
200
- def test_fun_add ()
197
+ def test_fun_add()
201
198
  v1 = vec 1, 2, 3
202
199
  v2 = vec 4, 5, 6
203
200
  result = vec
@@ -207,7 +204,7 @@ class TestProcessingVector < Test::Unit::TestCase
207
204
  assert_equal_vector vec(5, 7, 9), result
208
205
  end
209
206
 
210
- def test_fun_sub ()
207
+ def test_fun_sub()
211
208
  v1 = vec 9, 8, 7
212
209
  v2 = vec 1, 2, 3
213
210
  result = vec
@@ -217,7 +214,7 @@ class TestProcessingVector < Test::Unit::TestCase
217
214
  assert_equal_vector vec(8, 6, 4), result
218
215
  end
219
216
 
220
- def test_fun_mult ()
217
+ def test_fun_mult()
221
218
  v1 = vec 1, 2, 3
222
219
  result = vec
223
220
  assert_equal_vector vec(2, 4, 6), V.mult(v1, 2, result)
@@ -225,7 +222,7 @@ class TestProcessingVector < Test::Unit::TestCase
225
222
  assert_equal_vector vec(2, 4, 6), result
226
223
  end
227
224
 
228
- def test_fun_div ()
225
+ def test_fun_div()
229
226
  v1 = vec 2, 4, 6
230
227
  result = vec
231
228
  assert_equal_vector vec(1, 2, 3), V.div(v1, 2, result)
@@ -233,17 +230,17 @@ class TestProcessingVector < Test::Unit::TestCase
233
230
  assert_equal_vector vec(1, 2, 3), result
234
231
  end
235
232
 
236
- def test_mag ()
233
+ def test_mag()
237
234
  assert_in_delta M.sqrt(5), vec(1, 2) .mag, 0.000001
238
235
  assert_in_delta M.sqrt(14), vec(1, 2, 3).mag, 0.000001
239
236
  end
240
237
 
241
- def test_magSq ()
238
+ def test_magSq()
242
239
  assert_equal 5, vec(1, 2) .magSq
243
240
  assert_equal 14, vec(1, 2, 3).magSq
244
241
  end
245
242
 
246
- def test_setMag ()
243
+ def test_setMag()
247
244
  v = vec 3, 4, 0
248
245
  assert_equal_vector vec(6, 8, 0), v.setMag(10)
249
246
  assert_equal_vector vec(6, 8, 0), v
@@ -255,7 +252,7 @@ class TestProcessingVector < Test::Unit::TestCase
255
252
  assert_equal_vector vec(6, 8, 0), result
256
253
  end
257
254
 
258
- def test_normalize ()
255
+ def test_normalize()
259
256
  v = vec 1, 2, 3
260
257
  normal = v / v.mag
261
258
  assert_equal_vector normal, v.normalize
@@ -268,7 +265,7 @@ class TestProcessingVector < Test::Unit::TestCase
268
265
  assert_equal_vector normal, result
269
266
  end
270
267
 
271
- def test_limit ()
268
+ def test_limit()
272
269
  v = vec 1, 2, 3
273
270
  assert_in_delta 1, v.limit(1).mag, 0.000001
274
271
  assert_in_delta 1, v .mag, 0.000001
@@ -279,7 +276,7 @@ class TestProcessingVector < Test::Unit::TestCase
279
276
  assert_in_delta vec(1, 2, 3).mag, vec(1, 2, 3).limit(4).mag, 0.000001
280
277
  end
281
278
 
282
- def test_dist ()
279
+ def test_dist()
283
280
  v1 = vec 1, 2, 3
284
281
  v2 = vec 4, 5, 6
285
282
 
@@ -292,7 +289,7 @@ class TestProcessingVector < Test::Unit::TestCase
292
289
  assert_equal_vector vec(4, 5, 6), v2
293
290
  end
294
291
 
295
- def test_dot ()
292
+ def test_dot()
296
293
  v1 = vec 1, 2, 3
297
294
  v2 = vec 4, 5, 6
298
295
 
@@ -308,7 +305,7 @@ class TestProcessingVector < Test::Unit::TestCase
308
305
  assert_equal_vector vec(4, 5, 6), v2
309
306
  end
310
307
 
311
- def test_cross ()
308
+ def test_cross()
312
309
  v1 = vec 1, 0, 0
313
310
  v2 = vec 0, 1, 0
314
311
 
@@ -328,9 +325,9 @@ class TestProcessingVector < Test::Unit::TestCase
328
325
  assert_equal_vector vec(0, 0, 1), result
329
326
  end
330
327
 
331
- def test_rotate ()
328
+ def test_rotate()
332
329
  angle = PI * 2 * 0.1
333
- context = Object.new.tap {|o| def o.toAngle__ (a); a * 2 * P::RAD2DEG__; end}
330
+ context = Object.new.tap {|o| def o.toAngle__(a); a * 2 * P::RAD2DEG__; end}
334
331
 
335
332
  v = vec 1, 0, 0
336
333
  assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), v.rotate(angle)
@@ -340,7 +337,7 @@ class TestProcessingVector < Test::Unit::TestCase
340
337
  assert_equal_vector vec(M.cos(angle * 2), M.sin(angle * 2), 0), v.rotate(angle)
341
338
  end
342
339
 
343
- def test_fromAngle ()
340
+ def test_fromAngle()
344
341
  angle = PI * 2 * 0.1
345
342
  result = vec
346
343
  assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), V.fromAngle(angle)
@@ -348,25 +345,25 @@ class TestProcessingVector < Test::Unit::TestCase
348
345
  assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), result
349
346
  end
350
347
 
351
- def test_heading ()
348
+ def test_heading()
352
349
  angle = PI * 1 * 0.1
353
- assert_in_delta angle, V.fromAngle( angle).heading, 0.000001
354
- assert_in_delta -angle, V.fromAngle(-angle).heading, 0.000001
350
+ assert_in_delta( angle, V.fromAngle( angle).heading, 0.000001)
351
+ assert_in_delta(-angle, V.fromAngle(-angle).heading, 0.000001)
355
352
  end
356
353
 
357
- def test_angleBetween ()
354
+ def test_angleBetween()
358
355
  v1 = V.fromAngle PI * 0.25
359
356
  v2 = V.fromAngle PI * 0.75
360
357
  assert_in_delta PI / 2, V.angleBetween(v1, v2), 0.000001
361
358
  end
362
359
 
363
- def test_lerp ()
360
+ def test_lerp()
364
361
  assert_equal_vector vec(0.5, 0.5, 0.5), vec(0, 0, 0).lerp(vec(1, 1, 1), 0.5)
365
362
  assert_equal_vector vec(0.5, 0.5, 0.5), vec(0, 0, 0).lerp( 1, 1, 1, 0.5)
366
363
  assert_equal_vector vec(0.5, 0.5, 0.5), V.lerp(vec(0, 0, 0), vec(1, 1, 1), 0.5)
367
364
  end
368
365
 
369
- def test_random2D ()
366
+ def test_random2D()
370
367
  v1 = V.random2D
371
368
  v2 = V.random2D
372
369
  assert v1.x != 0
@@ -380,7 +377,7 @@ class TestProcessingVector < Test::Unit::TestCase
380
377
  assert_in_delta 1, v2.mag, 0.000001
381
378
  end
382
379
 
383
- def test_random3D ()
380
+ def test_random3D()
384
381
  v1 = V.random3D
385
382
  v2 = V.random3D
386
383
  assert v1.x != 0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubysketch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.13
4
+ version: 0.3.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-11 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: reflexion
@@ -50,6 +50,7 @@ files:
50
50
  - examples/shapes.rb
51
51
  - lib/rubysketch-processing.rb
52
52
  - lib/rubysketch.rb
53
+ - lib/rubysketch/app.rb
53
54
  - lib/rubysketch/glsl.rb
54
55
  - lib/rubysketch/module.rb
55
56
  - lib/rubysketch/processing.rb
@@ -67,16 +68,16 @@ require_paths:
67
68
  - lib
68
69
  required_ruby_version: !ruby/object:Gem::Requirement
69
70
  requirements:
70
- - - "~>"
71
+ - - ">="
71
72
  - !ruby/object:Gem::Version
72
- version: '2'
73
+ version: 2.6.0
73
74
  required_rubygems_version: !ruby/object:Gem::Requirement
74
75
  requirements:
75
76
  - - ">="
76
77
  - !ruby/object:Gem::Version
77
78
  version: '0'
78
79
  requirements: []
79
- rubygems_version: 3.0.3
80
+ rubygems_version: 3.1.6
80
81
  signing_key:
81
82
  specification_version: 4
82
83
  summary: Processing like Creative Coding Framework.