processing 1.3.4 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be260a130fb64b816625b7f41dfd52061edf0c721656053f81a55ec98ae06165
4
- data.tar.gz: cf6ac73caa328c3fca79311de65cb00625f53619514d422ea328a6e09ed04db0
3
+ metadata.gz: fa64127f24d18aa12a47207a90d248ef826b9bfc13e4ad26db9234dc3c53c9bd
4
+ data.tar.gz: 2304f4c5aa57e846fdc74ad7871864368a9f461d32e4ee51db6c946ca23f6a95
5
5
  SHA512:
6
- metadata.gz: 36d198f01f7ef3dd047fac09a4b0066fd464e79861e6db075828edf5f9910e1aae3d59e7096bd9a8161591a598ccd59eabc84c38fe696e0cfdcc5189e6186281
7
- data.tar.gz: f00dd01b87b3f10f592de7202a0112f7aa7e4d253084613ba17bc214a423e8d328df0a01532ed18735b8b675377641e47490472632d955e5129d5e10315905f2
6
+ metadata.gz: 98ef96fb9029a6e4075e496edbb2e64352f5cc25f2b8c8c50e466b93a70a52fa29618881b394e5d7ec5f94a8d639061d7f3e4ced8ee8a7653d5cf0adb5ca70fb
7
+ data.tar.gz: c85f64570deb0378bac44dcf81a190d5ec4467636ed78794d5e3c057d37e219e3e81e7ffe57261b0b5c5cd9bda368518d660dcd3e4509e427418eddf26ae655e
@@ -26,8 +26,17 @@ jobs:
26
26
  - name: setup dependencies
27
27
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
28
28
 
29
+ - name: packages
30
+ run: bundle exec rake packages
31
+
32
+ - name: setup zig
33
+ if: github.event.repository.name == 'reflex-terminal'
34
+ uses: mlugg/setup-zig@v2
35
+ with:
36
+ version: 0.16.0
37
+
29
38
  - name: test
30
- run: bundle exec rake packages test
39
+ run: bundle exec rake test
31
40
 
32
41
  - name: create gem
33
42
  id: gem
@@ -27,6 +27,15 @@ jobs:
27
27
  - name: packages
28
28
  run: bundle exec rake verbose packages
29
29
 
30
+ - name: setup zig
31
+ if: github.event.repository.name == 'reflex-terminal'
32
+ uses: mlugg/setup-zig@v2
33
+ with:
34
+ version: 0.16.0
35
+
36
+ - name: vendor
37
+ run: bundle exec rake vendor
38
+
30
39
  - name: lib
31
40
  run: bundle exec rake verbose lib
32
41
 
data/ChangeLog.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # processing ChangeLog
2
2
 
3
3
 
4
+ ## [v1.4.0] - 2026-08-04
5
+
6
+ - Add mouseOver/mouseOut blocks to the sketch
7
+
8
+
4
9
  ## [v1.3.4] - 2026-06-23
5
10
 
6
11
  - Update dependencies
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.4
1
+ 1.4.0
@@ -25,19 +25,6 @@ module Processing
25
25
  #
26
26
  LANDSCAPE = :landscape
27
27
 
28
- # @private
29
- @@current__ = nil
30
-
31
- # @private
32
- def self.current__()
33
- @@current__ || Processing.context
34
- end
35
-
36
- # @private
37
- def self.setCurrent__(context)
38
- @@current__ = context
39
- end
40
-
41
28
  # @private
42
29
  def initialize(window)
43
30
  @window__ = window
@@ -159,6 +146,15 @@ module Processing
159
146
  @touchMovedBlock__&.call
160
147
  end
161
148
 
149
+ @window__.pointer_enter = proc do |e|
150
+ updatePointerStates.call e
151
+ @mouseOverBlock__&.call
152
+ end
153
+
154
+ @window__.pointer_leave = proc do |e|
155
+ @mouseOutBlock__&.call
156
+ end
157
+
162
158
  @window__.wheel = proc do |e|
163
159
  @mouseWheelBlock__&.call WheelEvent.new(e)
164
160
  end
@@ -189,6 +185,8 @@ module Processing
189
185
  @mouseDraggedBlock__ ||
190
186
  @mouseClickedBlock__ ||
191
187
  @doubleClickedBlock__ ||
188
+ @mouseOverBlock__ ||
189
+ @mouseOutBlock__ ||
192
190
  @mouseWheelBlock__ ||
193
191
  @touchStartedBlock__ ||
194
192
  @touchEndedBlock__ ||
@@ -330,6 +328,28 @@ module Processing
330
328
  nil
331
329
  end
332
330
 
331
+ # Defines mouseOver block, called when the mouse comes over the window.
332
+ #
333
+ # @return [nil] nil
334
+ #
335
+ # @see https://p5js.org/reference/p5.Element/mouseOver/
336
+ #
337
+ def mouseOver(&block)
338
+ @mouseOverBlock__ = block if block
339
+ nil
340
+ end
341
+
342
+ # Defines mouseOut block, called when the mouse goes out of the window.
343
+ #
344
+ # @return [nil] nil
345
+ #
346
+ # @see https://p5js.org/reference/p5.Element/mouseOut/
347
+ #
348
+ def mouseOut(&block)
349
+ @mouseOutBlock__ = block if block
350
+ nil
351
+ end
352
+
333
353
  # Defines mouseWheel block.
334
354
  #
335
355
  # @return [nil] nil
@@ -7,7 +7,7 @@ module Processing
7
7
  module_function
8
8
 
9
9
  def name(downcase = false)
10
- super().split('::')[-2].then {|s|
10
+ super().split('::')[..-2].join.then {|s|
11
11
  downcase ? s.gsub(/([a-z])([A-Z])/) {"#{$1}-#{$2}"}.downcase : s
12
12
  }
13
13
  end
@@ -10,7 +10,7 @@ module Processing
10
10
  # @private
11
11
  def initialize(polygon = nil, children = nil, context: nil)
12
12
  @polygon, @children = polygon, children
13
- @context = context || Context.current__
13
+ @context = context || Processing.context
14
14
  @visible = true
15
15
  @fill = @stroke = @strokeWeight = @strokeCap = @strokeJoin = @matrix = nil
16
16
  @type = @points = @curvePoints = @colors = @texcoords = @close = nil
@@ -35,7 +35,7 @@ module Processing
35
35
  when Array then Rays::Point.new x[0] || 0, x[1] || 0, x[2] || 0
36
36
  else Rays::Point.new x || 0, y || 0, z || 0
37
37
  end
38
- @context = context || Context.current__
38
+ @context = context || Processing.context
39
39
  end
40
40
 
41
41
  # Initializer for dup or clone
@@ -31,7 +31,8 @@ module Processing
31
31
  end
32
32
 
33
33
  attr_accessor :setup, :update, :draw, :move, :resize, :motion,
34
- :key_down, :key_up, :pointer_down, :pointer_up, :pointer_move, :wheel,
34
+ :key_down, :key_up,
35
+ :pointer_down, :pointer_up, :pointer_move, :pointer_enter, :pointer_leave, :wheel,
35
36
  :note_on, :note_off, :control_change,
36
37
  :before_draw, :after_draw, :update_window, :update_canvas
37
38
 
@@ -116,6 +117,8 @@ module Processing
116
117
  when :down then @pointer_down
117
118
  when :up, :cancel then @pointer_up
118
119
  when :move then @pointer_move
120
+ when :enter then @pointer_enter
121
+ when :leave then @pointer_leave
119
122
  end
120
123
  draw_canvas {call_block block, e} if block
121
124
  end
data/processing.gemspec CHANGED
@@ -26,10 +26,10 @@ Gem::Specification.new do |s|
26
26
  s.required_ruby_version = '>= 3.0.0'
27
27
 
28
28
  s.add_dependency 'rexml'
29
- s.add_dependency 'xot', '~> 0.3.15'
30
- s.add_dependency 'rucy', '~> 0.3.15'
31
- s.add_dependency 'rays', '~> 0.3.16'
32
- s.add_dependency 'reflexion', '~> 0.5.3'
29
+ s.add_dependency 'xot', '~> 0.4.0'
30
+ s.add_dependency 'rucy', '~> 0.4.0'
31
+ s.add_dependency 'rays', '~> 0.4.0'
32
+ s.add_dependency 'reflexion', '~> 0.6.0'
33
33
 
34
34
  s.files = `git ls-files`.split $/
35
35
  s.test_files = s.files.grep %r{^(test|spec|features)/}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: processing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-23 00:00:00.000000000 Z
11
+ date: 2026-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rexml
@@ -30,56 +30,56 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.15
33
+ version: 0.4.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.15
40
+ version: 0.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rucy
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.3.15
47
+ version: 0.4.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.3.15
54
+ version: 0.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rays
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.3.16
61
+ version: 0.4.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.3.16
68
+ version: 0.4.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: reflexion
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.5.3
75
+ version: 0.6.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.5.3
82
+ version: 0.6.0
83
83
  description: Creative Coding Framework has API compatible to Processing or p5.js.
84
84
  email: xordog@gmail.com
85
85
  executables: []