atome 0.5.6.1.4 → 0.5.6.2.0

Sign up to get free protection for your applications and to get access to all the features.
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)