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.
- checksums.yaml +4 -4
- data/Rakefile +44 -0
- data/documentation/deep learning/basic_infos.txt +6 -0
- data/exe/atome +0 -2
- data/lib/atome/atome.rb +1 -1
- data/lib/atome/extensions/atome.rb +33 -23
- data/lib/atome/extensions/sha.rb +8 -8
- data/lib/atome/genesis/generators/atome.rb +1 -1
- data/lib/atome/genesis/generators/communication.rb +14 -20
- data/lib/atome/genesis/generators/effect.rb +2 -2
- data/lib/atome/genesis/generators/event.rb +25 -25
- data/lib/atome/genesis/generators/geometry.rb +3 -3
- data/lib/atome/genesis/generators/hierarchy.rb +6 -6
- data/lib/atome/genesis/generators/identity.rb +13 -13
- data/lib/atome/genesis/generators/material.rb +24 -11
- data/lib/atome/genesis/generators/property.rb +8 -24
- data/lib/atome/genesis/generators/security.rb +1 -1
- data/lib/atome/genesis/generators/spatial.rb +13 -13
- data/lib/atome/genesis/generators/time.rb +1 -1
- data/lib/atome/genesis/generators/utility.rb +39 -37
- data/lib/atome/genesis/genesis.rb +2 -1
- data/lib/atome/genesis/sparkle.rb +31 -11
- data/lib/atome/helpers/utilities.rb +108 -49
- data/lib/atome/kernel/universe.rb +13 -9
- data/lib/atome/version.rb +1 -1
- data/lib/eVe/eVe.rb +1 -1
- data/lib/eVe/eVe_relative.rb +1 -1
- data/lib/platform_specific/opal/extensions/sha.rb +25 -14
- data/lib/renderers/html/html.rb +6 -7
- data/vendor/assets/application/examples/atome_particle_validation.rb +7 -0
- data/vendor/assets/application/examples/attach.rb +3 -3
- data/vendor/assets/application/examples/border.rb +1 -1
- data/vendor/assets/application/examples/categories.rb +5 -0
- data/vendor/assets/application/examples/clones&monitoring.rb +105 -0
- data/vendor/assets/application/examples/database_handling.rb +23 -0
- data/vendor/assets/application/examples/display_bck.rb +1 -1
- data/vendor/assets/application/examples/drag.rb +3 -1
- data/vendor/assets/application/examples/encrypt.rb +6 -0
- data/vendor/assets/application/examples/find.rb +1 -1
- data/vendor/assets/application/examples/import.rb +2 -2
- data/vendor/assets/application/examples/read.rb +2 -0
- data/vendor/assets/application/examples/shadow.rb +2 -1
- data/vendor/assets/server/atome_server.rb +106 -16
- data/vendor/assets/server/atome_server_wasm.rb +1 -1
- data/vendor/assets/src/index.html +21 -21
- data/vendor/assets/src/index_server.html +11 -5
- data/vendor/assets/src/index_server_wasm.html +11 -4
- data/vendor/assets/src/js/atome/atome.js +1 -1
- data/vendor/assets/src/js/atome/atome_helpers/communication.js +39 -30
- metadata +7 -4
- data/vendor/assets/application/examples/a_concat.rb +0 -19
- 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(
|
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
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
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.
|
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-
|
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)
|