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.
- 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)
|