atome 0.5.6.1.4 → 0.5.6.2.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +44 -0
  3. data/documentation/deep learning/basic_infos.txt +6 -0
  4. data/exe/atome +0 -2
  5. data/lib/atome/atome.rb +1 -1
  6. data/lib/atome/extensions/atome.rb +33 -23
  7. data/lib/atome/extensions/sha.rb +8 -8
  8. data/lib/atome/genesis/generators/atome.rb +1 -1
  9. data/lib/atome/genesis/generators/communication.rb +14 -20
  10. data/lib/atome/genesis/generators/effect.rb +2 -2
  11. data/lib/atome/genesis/generators/event.rb +25 -25
  12. data/lib/atome/genesis/generators/geometry.rb +3 -3
  13. data/lib/atome/genesis/generators/hierarchy.rb +6 -6
  14. data/lib/atome/genesis/generators/identity.rb +13 -13
  15. data/lib/atome/genesis/generators/material.rb +24 -11
  16. data/lib/atome/genesis/generators/property.rb +8 -24
  17. data/lib/atome/genesis/generators/security.rb +1 -1
  18. data/lib/atome/genesis/generators/spatial.rb +13 -13
  19. data/lib/atome/genesis/generators/time.rb +1 -1
  20. data/lib/atome/genesis/generators/utility.rb +39 -37
  21. data/lib/atome/genesis/genesis.rb +2 -1
  22. data/lib/atome/genesis/sparkle.rb +31 -11
  23. data/lib/atome/helpers/utilities.rb +108 -49
  24. data/lib/atome/kernel/universe.rb +13 -9
  25. data/lib/atome/version.rb +1 -1
  26. data/lib/eVe/eVe.rb +1 -1
  27. data/lib/eVe/eVe_relative.rb +1 -1
  28. data/lib/platform_specific/opal/extensions/sha.rb +25 -14
  29. data/lib/renderers/html/html.rb +6 -7
  30. data/vendor/assets/application/examples/atome_particle_validation.rb +7 -0
  31. data/vendor/assets/application/examples/attach.rb +3 -3
  32. data/vendor/assets/application/examples/border.rb +1 -1
  33. data/vendor/assets/application/examples/categories.rb +5 -0
  34. data/vendor/assets/application/examples/clones&monitoring.rb +105 -0
  35. data/vendor/assets/application/examples/database_handling.rb +23 -0
  36. data/vendor/assets/application/examples/display_bck.rb +1 -1
  37. data/vendor/assets/application/examples/drag.rb +3 -1
  38. data/vendor/assets/application/examples/encrypt.rb +6 -0
  39. data/vendor/assets/application/examples/find.rb +1 -1
  40. data/vendor/assets/application/examples/import.rb +2 -2
  41. data/vendor/assets/application/examples/read.rb +2 -0
  42. data/vendor/assets/application/examples/shadow.rb +2 -1
  43. data/vendor/assets/server/atome_server.rb +106 -16
  44. data/vendor/assets/server/atome_server_wasm.rb +1 -1
  45. data/vendor/assets/src/index.html +21 -21
  46. data/vendor/assets/src/index_server.html +11 -5
  47. data/vendor/assets/src/index_server_wasm.html +11 -4
  48. data/vendor/assets/src/js/atome/atome.js +1 -1
  49. data/vendor/assets/src/js/atome/atome_helpers/communication.js +39 -30
  50. metadata +7 -4
  51. data/vendor/assets/application/examples/a_concat.rb +0 -19
  52. data/vendor/assets/application/examples/clones.rb +0 -177
@@ -10,7 +10,9 @@ const communication = {
10
10
  };
11
11
 
12
12
  this.websocket.onmessage = function (event) {
13
- rubyVMCallback("puts 'object ruby callback : " + event.data + "'")
13
+ rubyVMCallback('message', "('" + event.data + "')")
14
+
15
+ // rubyVMCallback("puts 'object ruby callback : " + event.data + "'")
14
16
  };
15
17
 
16
18
  this.websocket.onclose = function (event) {
@@ -65,13 +67,20 @@ const communication = {
65
67
  connect: function (type, server, user, pass, atomes, particles) {
66
68
  this.websocket = new WebSocket(type+'://'+server);
67
69
  this.websocket.onopen = function (event) {
68
- rubyVMCallback("puts 'Connected to WebSocket'")
69
70
 
70
- Opal.eval('A.init_database');
71
+ // Opal.eval('A.init_database');
72
+ // now new can exec user code : loadApplicationJs in index.html
73
+ // rubyVMCallback("A.init_database");
74
+ loadApplicationJs();
75
+ rubyVMCallback("A.user_login");
76
+ // rubyVMCallback("A.init_database");
71
77
  };
72
78
  this.websocket.onmessage = function (event) {
73
- rubyVMCallback("puts 'object ruby callback : " + event.data + "'")
74
-
79
+ // rubyVMCallback("puts 'object ruby callback : " + event.data + "'")
80
+ // rubyVMCallback('message', "('" + event.data + "')")
81
+ // rubyVMCallback("A.callback({ touch: '" + event.data + "' })");
82
+ rubyVMCallback("A.server_receiver(" + event.data + ")");
83
+ // alert(event.data)
75
84
  };
76
85
 
77
86
  this.websocket.onclose = function (event) {
@@ -94,31 +103,31 @@ const communication = {
94
103
 
95
104
  /////////////////////////// connection ws
96
105
 
97
-
98
- function connect(address) {
99
-
100
- websocket = new WebSocket(address);
101
-
102
- websocket.onopen = function (event) {
103
- rubyVMCallback("puts 'Connected to WebSocket'")
104
-
105
- };
106
-
107
- websocket.onmessage = function (event) {
108
- rubyVMCallback("puts 'object ruby callback : " + event.data + "'")
109
- };
110
-
111
- websocket.onclose = function (event) {
112
- rubyVMCallback("puts 'WebSocket closed'")
113
- };
114
-
115
- websocket.onerror = function (event) {
116
- // to prevent error disturbing the console
117
- event.preventDefault();
118
- console.log('connection lost!')
119
- };
120
-
121
- }
106
+ //
107
+ // function connect(address) {
108
+ //
109
+ // websocket = new WebSocket(address);
110
+ //
111
+ // websocket.onopen = function (event) {
112
+ // rubyVMCallback("puts 'Connected to WebSocket'")
113
+ //
114
+ // };
115
+ //
116
+ // websocket.onmessage = function (event) {
117
+ // // rubyVMCallback("puts 'object ruby callback : " + event.data + "'")
118
+ // };
119
+ //
120
+ // websocket.onclose = function (event) {
121
+ // rubyVMCallback("puts 'WebSocket closed'")
122
+ // };
123
+ //
124
+ // websocket.onerror = function (event) {
125
+ // // to prevent error disturbing the console
126
+ // event.preventDefault();
127
+ // console.log('connection lost!')
128
+ // };
129
+ //
130
+ // }
122
131
 
123
132
 
124
133
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6.1.4
4
+ version: 0.5.6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Eric Godard
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-02 00:00:00.000000000 Z
11
+ date: 2024-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: artoo
@@ -514,11 +514,11 @@ files:
514
514
  - src/utilities/host_mode.rb
515
515
  - vendor/assets/Guardfile
516
516
  - vendor/assets/Rakefile
517
- - vendor/assets/application/examples/a_concat.rb
518
517
  - vendor/assets/application/examples/affect.rb
519
518
  - vendor/assets/application/examples/animation.rb
520
519
  - vendor/assets/application/examples/apply.rb
521
520
  - vendor/assets/application/examples/atome.rb
521
+ - vendor/assets/application/examples/atome_particle_validation.rb
522
522
  - vendor/assets/application/examples/atome_sparkle_use.rb
523
523
  - vendor/assets/application/examples/atomizer.rb
524
524
  - vendor/assets/application/examples/attach.rb
@@ -528,10 +528,11 @@ files:
528
528
  - vendor/assets/application/examples/border.rb
529
529
  - vendor/assets/application/examples/browse.rb
530
530
  - vendor/assets/application/examples/callback.rb
531
+ - vendor/assets/application/examples/categories.rb
531
532
  - vendor/assets/application/examples/category.rb
532
533
  - vendor/assets/application/examples/center.rb
533
534
  - vendor/assets/application/examples/clear.rb
534
- - vendor/assets/application/examples/clones.rb
535
+ - vendor/assets/application/examples/clones&monitoring.rb
535
536
  - vendor/assets/application/examples/code.rb
536
537
  - vendor/assets/application/examples/color.rb
537
538
  - vendor/assets/application/examples/compute.rb
@@ -540,6 +541,7 @@ files:
540
541
  - vendor/assets/application/examples/copy.rb
541
542
  - vendor/assets/application/examples/copybck.rb
542
543
  - vendor/assets/application/examples/css.rb
544
+ - vendor/assets/application/examples/database_handling.rb
543
545
  - vendor/assets/application/examples/debug.rb
544
546
  - vendor/assets/application/examples/delete.rb
545
547
  - vendor/assets/application/examples/dig.rb
@@ -550,6 +552,7 @@ files:
550
552
  - vendor/assets/application/examples/duplicate.rb
551
553
  - vendor/assets/application/examples/edit.rb
552
554
  - vendor/assets/application/examples/encode.rb
555
+ - vendor/assets/application/examples/encrypt.rb
553
556
  - vendor/assets/application/examples/example.rb
554
557
  - vendor/assets/application/examples/file.rb
555
558
  - vendor/assets/application/examples/find.rb
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
-
4
- # Chemin du dossier contenant les fichiers
5
- folder_path = "./*"
6
-
7
- # Chemin du fichier de sortie
8
- output_file_path = "./!all.rb"
9
-
10
- # Création et ouverture du fichier de sortie
11
- File.open(output_file_path, "w") do |output_file|
12
- # Lecture de tous les fichiers du dossier
13
- Dir.glob(folder_path).each do |file_path|
14
- # Lecture et écriture du contenu de chaque fichier
15
- File.read(file_path).each_line do |line|
16
- output_file.write(line)
17
- end
18
- end
19
- end
@@ -1,177 +0,0 @@
1
- # # frozen_string_literal: true
2
- #
3
- # # TODO : clones alteration must be bidirectional, to do so :
4
- # # 1 - we may create an atome type 'clone' then add a ' pre_render_clones option' when rendering clones property
5
- # # 2 - this pre_render_clones option, will catch alterations and throw it the the original atome
6
- # # 3 - we also add a new particle call mirror that holds the particle's list that will reverse intrication
7
- #
8
- # b = box({ color: :red, smooth: 6, id: :the_box })
9
- #
10
- # b.clones([{ left: 300, top: 300, color: :blue, entangled: [:width, :attached, :height] },
11
- # { left: 600, top: 366, color: :green, entangled: [:left, :height] }])
12
- #
13
- # wait 1 do
14
- # b.width(190)
15
- # end
16
- #
17
- # wait 2 do
18
- # b.height(180)
19
- # end
20
- #
21
- # wait 3 do
22
- # b.left(180)
23
- # end
24
- #
25
- # grab(:the_box_clone_0).smooth(33)
26
- # #
27
- # grab(:the_box_clone_1).rotate(33)
28
- #
29
- # wait 5 do
30
- # b.clones.each do |clone_found|
31
- # grab(clone_found[:id]).delete(true)
32
- # end
33
- # end
34
- #
35
-
36
- class Atome
37
- class << self
38
- def monitoring(atomes_to_monitor, particles_to_monitor, &bloc)
39
- atomes_to_monitor.each do |atome_to_monitor|
40
- particles_to_monitor.each do |monitored_particle|
41
- # Stockage de la méthode originale
42
- original_method = atome_to_monitor.method(monitored_particle)
43
-
44
- # Redéfinition de la méthode
45
- atome_to_monitor.define_singleton_method(monitored_particle) do |*args, &proc|
46
-
47
- # Bloc de surveillance avant l'appel de la méthode originale
48
- value_before = atome_to_monitor.instance_variable_get("@#{monitored_particle}")
49
- # bloc.call({ original: value_before, altered: args, particle: monitored_particle }) if bloc.is_a?(Proc)
50
- # value_before=previous_value.dup
51
- if args.empty?
52
- args = nil
53
- else
54
- if monitored_particle == :touch
55
- instance_variable_set("@#{monitored_particle}", { tap: args[0] })
56
- instance_variable_set("@#{monitored_particle}_code", { touch: proc })
57
-
58
- args = { tap: args[0] }
59
- else
60
- instance_variable_set("@#{monitored_particle}", args[0])
61
- end
62
- # instance_variable_set("@#{monitored_particle}",args[0])
63
- args = args[0]
64
- end
65
- instance_exec({ original: value_before, altered: args, particle: monitored_particle }, &bloc) if bloc.is_a?(Proc)
66
- original_method.call(*args)
67
- end
68
- end
69
- end
70
- end
71
- end
72
- end
73
-
74
- c = circle({ id: :the_circle, left: 12, top: 0, color: :orange, drag: { move: true, inertia: true, lock: :start } })
75
- b = box({ top: 123 })
76
-
77
- t = text({ data: :hello, left: 300 })
78
-
79
- t.touch(true) do
80
- alert "#{b.touch} , #{b.touch_code}"
81
- b.touch_code[:touch].call
82
- end
83
- col = color({ id: :col1, red: 1, blue: 1 })
84
- # #######################
85
- atomes_monitored = [c, b]
86
- # particles_monitored=[:left, :width, :touch, :apply]
87
- particles_monitored=[:left, :width, :apply]
88
- # particles_monitored = [:touch]
89
- Atome.monitoring(atomes_monitored, particles_monitored) do |monitor_infos|
90
- puts "1 ==> #{@id} : #{monitor_infos[:particle]},#{monitor_infos[:altered]}"
91
-
92
- atomes_monitored.each do |atome_to_update|
93
- # we exclude the current changing atome to avoid infinite loop
94
- unless atome_to_update == self || (monitor_infos[:original] == monitor_infos[:altered]) || !monitor_infos[:altered]
95
- puts "2 ==> #{atome_to_update.id} : #{monitor_infos[:particle]},#{monitor_infos[:altered]}"
96
- atome_to_update.send(monitor_infos[:particle], monitor_infos[:altered])
97
- end
98
-
99
- end
100
- end
101
- # ####################
102
- b.resize(true)
103
- c.resize(true) do |l|
104
-
105
- puts c.instance_variable_get("@resize_code")
106
- end
107
- ccc = color(:red)
108
- wait 1 do
109
- # b.left(133)
110
- b.touch(true) do
111
- alert "b width is #{b.width}"
112
- end
113
- # alert "touch contain : #{b.instance_variable_get("@touch")}"
114
- # alert "touch code contain :#{b.instance_variable_get("@touch_code")}"
115
-
116
- c.left(133)
117
- wait 1 do
118
- # c.color(:red)
119
- # c.apply([ccc.id])
120
- b.width(155)
121
- end
122
- end
123
-
124
-
125
- # TODO : make multi parents works
126
- # TODO : make it works for event like touch , also attach and attached
127
- # wait 2 do
128
- # col = color({ id: :col1, red: 1, blue: 1 })
129
- # Atome.monitoring([col], [:red, :blue], [:variable1, :variable2])
130
- #
131
- # c.apply([:col1])
132
- # wait 2 do
133
- # col.red(0)
134
- # col.red
135
- # c.apply([:col1])
136
- # end
137
- # end
138
-
139
-
140
-
141
- ############## add class solution
142
- the_b=box({color: :green})
143
-
144
- the_b.resize(true) do
145
- puts :j
146
- end
147
- class HTML
148
-
149
- def id(id)
150
- @element[:classList].add(id.to_s)
151
- attr('id', id)
152
- self
153
- end
154
- def add_class(val)
155
- @element[:classList].add(val.to_s)
156
- # @element.setAttribute('id', val)
157
- end
158
-
159
- # def force_top(id,value)
160
- # element=JS.global[:document].getElementById(id.to_s)
161
- # element[:style][:top] ='33px'
162
- # end
163
- end
164
-
165
- new({ particle: :add_class }) do |params|
166
- html.add_class(params)
167
- end
168
- #
169
- # new({ particle: :force_top }) do |params|
170
- # html.force_top(params)
171
- # end
172
-
173
- b = box({ id: :toto })
174
- bb = box({ id: :toto, left: 333 })
175
- bb.add_class(:toto)
176
- b.add_class(:toto)
177
- # bb.force_top(:toto,3)