atome 0.5.6.6.5 → 0.5.6.6.7
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 +21 -22
- data/exe/atome +57 -50
- data/lib/atome/atome.rb +4 -1
- data/lib/atome/genesis/particles/atome.rb +1 -1
- data/lib/atome/genesis/sparkle.rb +1 -1
- data/lib/atome/version.rb +1 -1
- data/vendor/assets/application/examples/login.rb +82 -8
- data/vendor/assets/application/examples/tools.rb +311 -42
- data/vendor/assets/server/eDen.rb +26 -12
- data/vendor/assets/src/js/atome/atome_helpers/communication.js +3 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87ddaa0a11d052fcc0831dd5b4c864fbfdfbd415cf091996cdc3570a53a4ba12
|
4
|
+
data.tar.gz: 844fb1b1f1ec14eb29e7c427981538a569ba3ca54728834b02300322484285c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd4f1bfbd2293042fdc9a9d80017aa959b1dac775ede3a01a442f02a79b913af7f7bdc0978e99d129629daf298170e761435ad33c8cafa6330c438aa2bd88e92
|
7
|
+
data.tar.gz: 672c33212a50f6bef201fab3cf3e2d5ac5b318777dccfaa54da5ce9c5e73ec46c0824cff258044fa9d2eb5647f5107c34a6ffacdc617d8323fdb63debb4520f3
|
data/Rakefile
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
3
|
require 'fileutils'
|
5
4
|
require 'securerandom'
|
6
5
|
require 'digest/sha2'
|
@@ -13,7 +12,7 @@ load 'exe/atome'
|
|
13
12
|
# folder_name = 'lib/eVe'
|
14
13
|
#
|
15
14
|
# # allow or deny eVe gem content to be copied to local eVe or not
|
16
|
-
refresh_eVe=true
|
15
|
+
# refresh_eVe=true
|
17
16
|
#
|
18
17
|
# # if refresh_eVe
|
19
18
|
# # # doesn't work
|
@@ -87,8 +86,8 @@ def generate_resolved_file(source_file_path)
|
|
87
86
|
resolve_requires(source_file_path, root_path)
|
88
87
|
end
|
89
88
|
|
90
|
-
def wasm_params(source, destination, project_name, wasi_file, host_mode, script_source
|
91
|
-
create_application(source, destination, project_name
|
89
|
+
def wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
90
|
+
create_application(source, destination, project_name)
|
92
91
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
93
92
|
end
|
94
93
|
|
@@ -114,19 +113,19 @@ task :test_wasm do
|
|
114
113
|
destination = './tmp'
|
115
114
|
script_source = './test/application'
|
116
115
|
|
117
|
-
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source
|
116
|
+
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
118
117
|
system "open", file_path
|
119
118
|
when /linux|bsd/
|
120
119
|
destination = './tmp'
|
121
120
|
script_source = './test/application'
|
122
121
|
wasi_file = 'wasi-vfs-unix pack tmp'
|
123
|
-
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source
|
122
|
+
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
124
123
|
system "xdg-open", file_path
|
125
124
|
when /mswin|mingw|cygwin/
|
126
125
|
destination = '.\\tmp'
|
127
126
|
script_source = '.\\test\\application'
|
128
127
|
wasi_file = 'wasi-vfs.exe pack'
|
129
|
-
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source
|
128
|
+
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
130
129
|
system "start", file_path
|
131
130
|
else
|
132
131
|
raise "Système d'exploitation non reconnu"
|
@@ -140,7 +139,7 @@ task :test_opal do
|
|
140
139
|
source = '.'
|
141
140
|
destination = './tmp'
|
142
141
|
script_source = './test/application'
|
143
|
-
create_application(source, destination, project_name
|
142
|
+
create_application(source, destination, project_name)
|
144
143
|
# the line below is to add addition script to the application folder (useful for test per example)
|
145
144
|
add_to_application_folder(script_source, destination, project_name)
|
146
145
|
# build opal
|
@@ -158,7 +157,8 @@ task :test_opal do
|
|
158
157
|
# open the app
|
159
158
|
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
160
159
|
# code to exec for Windows
|
161
|
-
`start
|
160
|
+
# `start \\tmp\\#{project_name}\\src\\index_opal.html`
|
161
|
+
`start "" "#{destination}\\#{project_name}\\src\\index_opal.html"`
|
162
162
|
elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/
|
163
163
|
# code to exec for MacOS
|
164
164
|
`open #{destination}/#{project_name}/src/index_opal.html`
|
@@ -169,6 +169,7 @@ task :test_opal do
|
|
169
169
|
|
170
170
|
puts 'atome opal is build and running!'
|
171
171
|
end
|
172
|
+
|
172
173
|
task :test_server_wasm do
|
173
174
|
project_name = :test
|
174
175
|
source = '.'
|
@@ -176,7 +177,7 @@ task :test_server_wasm do
|
|
176
177
|
script_source = './test/application'
|
177
178
|
wasi_file = 'wasi-vfs-osx_arm'
|
178
179
|
host_mode = 'pure_wasm'
|
179
|
-
create_application(source, destination, project_name
|
180
|
+
create_application(source, destination, project_name)
|
180
181
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
181
182
|
puts 'atome wasm is build and running!'
|
182
183
|
threads = []
|
@@ -200,12 +201,14 @@ task :test_server_wasm do
|
|
200
201
|
build_for_wasm_server(destination, project_name, 9292, :production)
|
201
202
|
|
202
203
|
end
|
204
|
+
|
205
|
+
|
203
206
|
task :test_server do
|
204
207
|
project_name = :test
|
205
208
|
source = '.'
|
206
209
|
destination = './tmp'
|
207
210
|
script_source = './test/application'
|
208
|
-
create_application(source, destination, project_name
|
211
|
+
create_application(source, destination, project_name)
|
209
212
|
# the line below is to add addition script to the application folder (useful for test per example)
|
210
213
|
add_to_application_folder(script_source, destination, project_name)
|
211
214
|
# build opal
|
@@ -230,7 +233,6 @@ task :test_server do
|
|
230
233
|
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
231
234
|
# code to exec for Windows
|
232
235
|
`start http://localhost:9292?date=#{timestamp}`
|
233
|
-
# `start #{destination}\\#{project_name}\\src\\index_server.html`
|
234
236
|
|
235
237
|
elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/
|
236
238
|
# code to exec for MacOS
|
@@ -241,16 +243,15 @@ task :test_server do
|
|
241
243
|
end
|
242
244
|
|
243
245
|
end
|
244
|
-
build_for_opal_server(destination, project_name, 9292, :production)
|
246
|
+
build_for_opal_server(destination, project_name, 9292, :production, true)
|
245
247
|
end
|
246
248
|
|
247
|
-
|
248
249
|
task :opal_server_rebuild do
|
249
250
|
project_name = :test
|
250
251
|
source = '.'
|
251
252
|
destination = './tmp'
|
252
253
|
script_source = './test/application'
|
253
|
-
create_application(source, destination, project_name
|
254
|
+
create_application(source, destination, project_name)
|
254
255
|
# the line below is to add addition script to the application folder (useful for test per example)
|
255
256
|
add_to_application_folder(script_source, destination, project_name)
|
256
257
|
# build opal
|
@@ -296,7 +297,7 @@ task :test_osx do
|
|
296
297
|
script_source = './test/application'
|
297
298
|
wasi_file = 'wasi-vfs-osx_arm'
|
298
299
|
host_mode = 'tauri'
|
299
|
-
create_application(source, destination, project_name
|
300
|
+
create_application(source, destination, project_name)
|
300
301
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
301
302
|
destination = './tmp'
|
302
303
|
# build and open the app
|
@@ -311,7 +312,7 @@ task :build_osx do
|
|
311
312
|
script_source = './test/application'
|
312
313
|
wasi_file = 'wasi-vfs-osx_arm'
|
313
314
|
host_mode = 'tauri'
|
314
|
-
create_application(source, destination, project_name
|
315
|
+
create_application(source, destination, project_name)
|
315
316
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
316
317
|
destination = './tmp'
|
317
318
|
# build and open the app
|
@@ -337,7 +338,7 @@ task :osx_server do
|
|
337
338
|
source = '.'
|
338
339
|
destination = './tmp'
|
339
340
|
script_source = './test/application'
|
340
|
-
create_application(source, destination, project_name
|
341
|
+
create_application(source, destination, project_name)
|
341
342
|
# the line below is to add addition script to the application folder (useful for test per example)
|
342
343
|
add_to_application_folder(script_source, destination, project_name)
|
343
344
|
# build opal
|
@@ -360,7 +361,7 @@ task :osx_server do
|
|
360
361
|
script_source = './test/application'
|
361
362
|
wasi_file = 'wasi-vfs-osx_arm'
|
362
363
|
host_mode = 'tauri'
|
363
|
-
create_application(source, destination, project_name
|
364
|
+
create_application(source, destination, project_name)
|
364
365
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
365
366
|
destination = './tmp'
|
366
367
|
threads = []
|
@@ -401,7 +402,6 @@ task :build_gem do
|
|
401
402
|
puts 'atome gem built and installed'
|
402
403
|
end
|
403
404
|
|
404
|
-
|
405
405
|
task :push_gem do
|
406
406
|
|
407
407
|
# building gem
|
@@ -434,7 +434,6 @@ task :push_gem do
|
|
434
434
|
puts "#{latest_file} pushed"
|
435
435
|
end
|
436
436
|
|
437
|
-
|
438
437
|
task :full_test do
|
439
438
|
|
440
439
|
# building the gem
|
@@ -460,7 +459,7 @@ task :full_test do
|
|
460
459
|
source = '.'
|
461
460
|
destination = './tmp'
|
462
461
|
script_source = './test/application'
|
463
|
-
create_application(source, destination, project_name
|
462
|
+
create_application(source, destination, project_name)
|
464
463
|
# the line below is to add addition script to the application folder (useful for test per example)
|
465
464
|
add_to_application_folder(script_source, destination, project_name)
|
466
465
|
# build opal
|
data/exe/atome
CHANGED
@@ -169,7 +169,7 @@ def build_opal_library(atome_source, destination, project_name, production = nil
|
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
172
|
-
def create_application(source, destination, project_name
|
172
|
+
def create_application(source, destination, project_name)
|
173
173
|
project_path = "#{destination}/#{project_name}"
|
174
174
|
FileUtils.mkdir_p(destination) unless Dir.exist?(destination)
|
175
175
|
FileUtils.mkdir_p(project_path) unless Dir.exist?(project_path)
|
@@ -392,7 +392,36 @@ def build_for_osx(destination, mode = :dev)
|
|
392
392
|
|
393
393
|
end
|
394
394
|
|
395
|
-
def
|
395
|
+
def init_server(destination, project_name, port, prod, ru_file)
|
396
|
+
|
397
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
398
|
+
# code to exec with Windows
|
399
|
+
File.open("#{destination}\\#{project_name}\\server\\config.ru", "w") do |f|
|
400
|
+
f.write(ru_file)
|
401
|
+
end
|
402
|
+
# `cd /d #{destination}\\#{project_name}\\server && puma --port #{port} #{prod}`
|
403
|
+
# system("start cmd /c cd /d #{destination}\\#{project_name}\\server && puma --port #{port} #{prod}")
|
404
|
+
system("cd /d \"#{destination}\\#{project_name}\\server\" && puma --port #{port} #{prod}")
|
405
|
+
|
406
|
+
elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/
|
407
|
+
# code to exec with MacOS
|
408
|
+
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
409
|
+
f.write(ru_file)
|
410
|
+
end
|
411
|
+
# `cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
412
|
+
system("cd #{destination}/#{project_name}/server && puma --port #{port} #{prod}")
|
413
|
+
|
414
|
+
else
|
415
|
+
# code to exec with Unix/Linux
|
416
|
+
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
417
|
+
f.write(ru_file)
|
418
|
+
end
|
419
|
+
# `cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
420
|
+
system("cd #{destination}/#{project_name}/server && puma --port #{port} #{prod}")
|
421
|
+
end
|
422
|
+
end
|
423
|
+
|
424
|
+
def build_for_opal_server(destination, project_name, port, production, run_server = true)
|
396
425
|
if production
|
397
426
|
prod = '--env production'
|
398
427
|
ru_file = <<STR
|
@@ -410,31 +439,13 @@ run Unreloader
|
|
410
439
|
require './atome_server.rb'
|
411
440
|
STR
|
412
441
|
end
|
413
|
-
|
414
|
-
|
415
|
-
# code to exec with Windows
|
416
|
-
File.open("#{destination}\\#{project_name}\\server\\config.ru", "w") do |f|
|
417
|
-
f.write(ru_file)
|
418
|
-
end
|
419
|
-
`cd /d #{destination}\\#{project_name}\\server && puma --port #{port} #{prod}`
|
420
|
-
elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/
|
421
|
-
# code to exec with MacOS
|
422
|
-
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
423
|
-
f.write(ru_file)
|
424
|
-
end
|
425
|
-
`cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
426
|
-
else
|
427
|
-
# code to exec with Unix/Linux
|
428
|
-
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
429
|
-
f.write(ru_file)
|
430
|
-
end
|
431
|
-
`cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
442
|
+
if run_server ==true
|
443
|
+
init_server(destination, project_name, port, prod, ru_file)
|
432
444
|
end
|
433
445
|
|
434
446
|
end
|
435
447
|
|
436
|
-
|
437
|
-
def build_for_wasm_server(destination, project_name, port, production)
|
448
|
+
def build_for_wasm_server(destination, project_name, port, production, run_server = true)
|
438
449
|
if production
|
439
450
|
prod = '--env production'
|
440
451
|
ru_file = <<STR
|
@@ -452,33 +463,29 @@ run Unreloader
|
|
452
463
|
require './atome_server.rb'
|
453
464
|
STR
|
454
465
|
end
|
466
|
+
if run_server ==true
|
467
|
+
init_server(destination, project_name, port, prod, ru_file)
|
468
|
+
end
|
469
|
+
# if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
470
|
+
# # code to exec with Windows
|
471
|
+
# File.open("#{destination}\\#{project_name}\\server\\config.ru", "w") do |f|
|
472
|
+
# f.write(ru_file)
|
473
|
+
# end
|
474
|
+
# `cd /d #{destination}\\#{project_name}\\server && puma --port #{port} #{prod}`
|
475
|
+
# elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/
|
476
|
+
# # code to exec with MacOS
|
477
|
+
# File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
478
|
+
# f.write(ru_file)
|
479
|
+
# end
|
480
|
+
# `cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
481
|
+
# else
|
482
|
+
# # code to exec with Unix/Linux
|
483
|
+
# File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
484
|
+
# f.write(ru_file)
|
485
|
+
# end
|
486
|
+
# `cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
487
|
+
# end
|
455
488
|
|
456
|
-
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
457
|
-
|
458
|
-
# code to exec with Windows
|
459
|
-
File.open("#{destination}\\#{project_name}\\server\\config.ru", "w") do |f|
|
460
|
-
f.write(ru_file)
|
461
|
-
end
|
462
|
-
`cd /d #{destination}\\#{project_name}\\server && puma --port #{port} #{prod}`
|
463
|
-
elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/
|
464
|
-
# code to exec with MacOS
|
465
|
-
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
466
|
-
f.write(ru_file)
|
467
|
-
end
|
468
|
-
# puts 'w-a'
|
469
|
-
|
470
|
-
`cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
471
|
-
# puts 'w-b'
|
472
|
-
|
473
|
-
else
|
474
|
-
# puts 'e'
|
475
|
-
# code to exec with Unix/Linux
|
476
|
-
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
477
|
-
f.write(ru_file)
|
478
|
-
end
|
479
|
-
`cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
480
|
-
end
|
481
|
-
# puts 'f'
|
482
489
|
end
|
483
490
|
|
484
491
|
# utils
|
@@ -826,7 +833,7 @@ else
|
|
826
833
|
if ARGV.include?('server_refresh')
|
827
834
|
puts 're building Server'
|
828
835
|
build_opal_application(nil, destination, project_name)
|
829
|
-
timestamp=Time.now.strftime("%Y%m%d%H%M%S")
|
836
|
+
timestamp = Time.now.strftime("%Y%m%d%H%M%S")
|
830
837
|
|
831
838
|
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
832
839
|
# code to exec with Windows
|
data/lib/atome/atome.rb
CHANGED
@@ -47,8 +47,11 @@ class Atome
|
|
47
47
|
|
48
48
|
@id = new_atome[:id] || @aid
|
49
49
|
Universe.atomes.each do |_aid,atome_f|
|
50
|
+
# we affect the already existing atome to target
|
50
51
|
if atome_f.id == @id
|
51
|
-
|
52
|
+
new_atome[:affect].each do |affected|
|
53
|
+
grab(affected).apply(@id)
|
54
|
+
end
|
52
55
|
return false
|
53
56
|
end
|
54
57
|
end
|
data/lib/atome/version.rb
CHANGED
@@ -1,10 +1,84 @@
|
|
1
|
-
# frozen_string_literal: true
|
1
|
+
# # frozen_string_literal: true
|
2
2
|
|
3
|
-
puts "current user: #{Universe.current_user}"
|
4
|
-
human({ id: :jeezs, login: true })
|
3
|
+
# puts "current user: #{Universe.current_user}"
|
4
|
+
# human({ id: :jeezs, login: true })
|
5
|
+
#
|
6
|
+
# puts "current user: #{Universe.current_user}"
|
7
|
+
# wait 2 do
|
8
|
+
# human({ id: :toto, login: true })
|
9
|
+
# puts "current user: #{Universe.current_user}"
|
10
|
+
# end
|
5
11
|
|
6
|
-
puts
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
12
|
+
puts 'ok1'
|
13
|
+
|
14
|
+
# Vérification que les champs email et password ne sont pas envoyés vides :
|
15
|
+
# if (email_text.data.nil? || email_text.data.strip.empty?) && (password_text.data.nil? || password_text.data.strip.empty?)
|
16
|
+
# puts "Veuillez renseigner votre adresse email et votre mot de passe."
|
17
|
+
# elsif email_text.data.nil? || email_text.data.strip.empty?
|
18
|
+
# puts "Veuillez renseigner votre adresse email."
|
19
|
+
# elsif password_text.data.nil? || password_text.data.strip.empty?
|
20
|
+
# puts "Veuillez renseigner votre mot de passe."
|
21
|
+
# else
|
22
|
+
|
23
|
+
mail = 'tretre'
|
24
|
+
pass = 'poipoi'
|
25
|
+
pass = Black_matter.encode(pass)
|
26
|
+
|
27
|
+
|
28
|
+
# A.message({ action: :authentication, data: { table: :user, particles: {email: mail, password: pass} } }) do |response|
|
29
|
+
# puts "authentication : #{response}"
|
30
|
+
# end
|
31
|
+
|
32
|
+
mail_message = false
|
33
|
+
mail_response = nil
|
34
|
+
password_message = false
|
35
|
+
password_response = nil
|
36
|
+
wait 3 do
|
37
|
+
A.message({ action: :authentication, data: { table: :user, particles: {email: mail} } }) do |response|
|
38
|
+
puts "Full authentication response: #{response.inspect}"
|
39
|
+
if response.key?('mail_authorized')
|
40
|
+
# Logique si 'authorized' est présent dans la réponse
|
41
|
+
puts "response mail authorized: #{response['mail_authorized']}"
|
42
|
+
# Si le mail et le password sont ok, on log le user et on stocke l'info en local storage
|
43
|
+
mail_message = JS.global[:localStorage].setItem('logged', response['mail_authorized'])
|
44
|
+
mail_response = response['mail_authorized']
|
45
|
+
puts "mail_response : #{mail_response}"
|
46
|
+
# On efface le formulaire si le serveur renvoie que l'user est loggé
|
47
|
+
# view.delete(true)
|
48
|
+
JS.global[:localStorage].setItem('user_id', response['user_id'])
|
49
|
+
else
|
50
|
+
# Gestion du cas où 'authorized' est absent
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
A.message({ action: :authorization, data: { table: :user, particles: {password: pass} } }) do |response|
|
56
|
+
puts "authorization : #{response}"
|
57
|
+
if response.key?('password_authorized')
|
58
|
+
authorized = response['password_authorized'] || false # Utilisez false comme valeur par défaut si 'authorized' est absent
|
59
|
+
puts "response password : #{response['password_authorized']}"
|
60
|
+
# Si le mail et le password sont ok, on log le user et on stocke l'info en local storage
|
61
|
+
password_message = JS.global[:localStorage].setItem('logged', response['password_authorized'])
|
62
|
+
password_response = response['password_authorized']
|
63
|
+
puts "password_response : #{password_response}"
|
64
|
+
# On efface le formulaire si le serveur renvoie que l'user est loggé
|
65
|
+
# view.delete(true)
|
66
|
+
JS.global[:localStorage].setItem('user_id', response['user_id'])
|
67
|
+
else
|
68
|
+
# Gestion du cas où 'authorized' est absent
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
# # # On efface le formulaire si le serveur renvoie que l'user est loggé
|
75
|
+
# if (mail_response == "true" || password_response == "true")
|
76
|
+
# view.delete(true)
|
77
|
+
# puts 'deleted!'
|
78
|
+
# # JS.global[:localStorage].setItem('user_id',response['user_id'])
|
79
|
+
# # puts "response user_id : #{response['user_id']}"
|
80
|
+
# end
|
81
|
+
|
82
|
+
# end
|
83
|
+
|
84
|
+
puts 'ok2'
|
@@ -1,49 +1,318 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
color({ id: :creation_layer_col, alpha: 1 })
|
4
|
-
|
5
|
-
b = box({ top: :auto, bottom: 0, id: :box_tool })
|
6
|
-
|
7
|
-
b.touch(:down) do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
3
|
+
# color({ id: :creation_layer_col, alpha: 1 })
|
4
|
+
#
|
5
|
+
# b = box({ top: :auto, bottom: 0, id: :box_tool })
|
6
|
+
#
|
7
|
+
# b.touch(:down) do
|
8
|
+
# creation_layer = box({ top: 0, left: 0, id: :creation_layer, width: '100%', height: '100%', apply: :creation_layer_col })
|
9
|
+
# creation_layer.touch(:down) do |event|
|
10
|
+
# left_found = event[:pageX].to_i
|
11
|
+
# top_found = event[:pageY].to_i
|
12
|
+
# box({ left: left_found, top: top_found ,id: "tutu_#{Universe.atomes.length}", color: :red})
|
13
|
+
# creation_layer.delete(true)
|
14
|
+
# creation_layer.touch({ remove: :down })
|
15
|
+
# puts Universe.atomes.length
|
16
|
+
# puts "=> #{Universe.user_atomes}"
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
######################
|
23
|
+
|
24
|
+
# frozen_string_literal: true
|
25
|
+
class Atome
|
26
|
+
|
27
|
+
def build_tool(&bloc)
|
28
|
+
# alert params[:tool]
|
29
|
+
a = Atome.instance_exec(&bloc)
|
30
|
+
puts "===> a is : #{a[:action]}"
|
31
|
+
# check below
|
32
|
+
# wait 2 do
|
33
|
+
# send a[:action]
|
34
|
+
# end
|
35
|
+
grab(:toolbox).box({color: :white, width: Intuition.style[:tool][:width], height: Intuition.style[:tool][:width]})
|
17
36
|
end
|
18
37
|
end
|
19
38
|
|
20
|
-
|
21
|
-
|
22
|
-
#
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
#
|
39
|
+
class Object
|
40
|
+
def new(params, &bloc)
|
41
|
+
# Genesis = Genesis.Genesis
|
42
|
+
if params.key?(:atome)
|
43
|
+
Universe.add_atomes_specificities params[:atome]
|
44
|
+
Genesis.build_atome(params[:atome], &bloc)
|
45
|
+
elsif params.key?(:particle)
|
46
|
+
Atome.instance_variable_set("@main_#{params[:particle]}", bloc)
|
47
|
+
# render indicate if the particle needs to be rendered
|
48
|
+
# store tell the system if it need to store the particle value
|
49
|
+
# type help the system what type of type the particle will receive and store
|
50
|
+
Genesis.build_particle(params[:particle], { render: params[:render], return: params[:return],
|
51
|
+
store: params[:store], type: params[:type] }, &bloc)
|
52
|
+
elsif params.key?(:sanitizer)
|
53
|
+
Genesis.build_sanitizer(params[:sanitizer], &bloc)
|
54
|
+
elsif params.key?(:pre)
|
55
|
+
Atome.instance_variable_set("@pre_#{params[:pre]}", bloc)
|
56
|
+
elsif params.key?(:post)
|
57
|
+
Atome.instance_variable_set("@post_#{params[:post]}", bloc)
|
58
|
+
elsif params.key?(:after)
|
59
|
+
Atome.instance_variable_set("@after_#{params[:after]}", bloc)
|
60
|
+
elsif params.key?(:read)
|
61
|
+
Atome.instance_variable_set("@read_#{params[:read]}", bloc)
|
62
|
+
elsif params[:renderer]
|
63
|
+
renderer_found = params[:renderer]
|
64
|
+
if params[:specific]
|
65
|
+
Universe.set_atomes_specificities(params)
|
66
|
+
params[:specific] = "#{params[:specific]}_"
|
67
|
+
end
|
68
|
+
render_method = "#{renderer_found}_#{params[:specific]}#{params[:method]}"
|
69
|
+
Genesis.build_render(render_method, &bloc)
|
70
|
+
elsif params.key?(:callback)
|
71
|
+
particle_targetted = params[:callback]
|
72
|
+
Atome.define_method "#{particle_targetted}_callback" do
|
73
|
+
bloc.call
|
74
|
+
end
|
75
|
+
elsif params.key?(:tool)
|
76
|
+
A.build_tool(&bloc)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
28
80
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
81
|
+
|
82
|
+
def record_tool
|
83
|
+
grab(Universe.current_user).selection
|
84
|
+
alert "must get selection to treat it "
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
module Intuition
|
89
|
+
class << self
|
90
|
+
def style
|
91
|
+
size=39
|
92
|
+
style={}
|
93
|
+
style[:toolbox]={width: size}
|
94
|
+
style[:toolbox]={height: size}
|
95
|
+
style[:tool]={width: size}
|
96
|
+
style[:tool]={height: size}
|
97
|
+
|
98
|
+
style
|
99
|
+
end
|
100
|
+
def intuition_int8
|
101
|
+
# tool taxonomy and list
|
102
|
+
{
|
103
|
+
capture: { int8: { french: :enregistrement, english: :record, german: :datensatz } },
|
104
|
+
communication: { french: :communication, english: :communication, german: :communication },
|
105
|
+
tool: { french: :outils, english: :tools, german: :werkzeuge },
|
106
|
+
view: { french: :vue, english: :view, german: :aussicht },
|
107
|
+
time: { french: :horloge, english: :clock, german: :Uhr },
|
108
|
+
find: { french: :trouve, english: :find, german: :finden },
|
109
|
+
home: { french: :accueil, english: :home, german: :zuhause },
|
110
|
+
code: { french: :code, english: :code, german: :code },
|
111
|
+
impulse: { french: :impulse, english: :impulse, german: :impulse },
|
112
|
+
}
|
113
|
+
end
|
114
|
+
def intuition_taxonomy
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
def impulse
|
119
|
+
# tool start point
|
120
|
+
[:capture, :communication, :tool, :view, :time, :find, :home]
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
|
125
|
+
# def capture
|
126
|
+
# categories=ATOME.methods_categories
|
127
|
+
# [categories[:inputs]]
|
128
|
+
# end
|
129
|
+
#
|
130
|
+
# def communication
|
131
|
+
# categories=ATOME.methods_categories
|
132
|
+
# [categories[:communications]]
|
133
|
+
# end
|
134
|
+
#
|
135
|
+
# def toolz
|
136
|
+
# categories=ATOME.methods_categories
|
137
|
+
# [categories[:spatials],categories[:helpers],categories[:materials],
|
138
|
+
# categories[:geometries],categories[:effects],
|
139
|
+
# categories[:medias],categories[:hierarchies],categories[:utilities],categories[:events]]
|
140
|
+
# end
|
141
|
+
#
|
142
|
+
# def tool_style(size = 33)
|
143
|
+
# # styling
|
144
|
+
# shadows = [{ x: size / 15, y: size / 15, thickness: 0, blur: size / 3, color: { red: 0, green: 0, blue: 0, alpha: 0.3 } }, { x: -size / 15, y: -size / 15, thickness: 0, blur: size / 6, color: { red: 1, green: 1, blue: 1, alpha: 0.3 } }]
|
145
|
+
# style = { type: :tool, content: { points: 4 }, color: { red: 0.9, green: 0.9, blue: 0.9, alpha: 0.15 }, parent: :intuition, shadow: shadows, blur: { value: 6, invert: true } }
|
146
|
+
# return style
|
147
|
+
# end
|
148
|
+
#
|
149
|
+
# def open_tool(tool_id, widthness=3, orientation=:x, speed=0.6)
|
150
|
+
# if orientation == :x
|
151
|
+
# orientation = :width
|
152
|
+
# value = grab(tool_id).width
|
153
|
+
# else
|
154
|
+
# orientation = :height
|
155
|
+
# value = grab(tool_id).height
|
156
|
+
# end
|
157
|
+
# animate({
|
158
|
+
# start: { orientation => value },
|
159
|
+
# end: { orientation => value * widthness },
|
160
|
+
# duration: speed * 1000,
|
161
|
+
# loop: 0,
|
162
|
+
# curve: :easing,
|
163
|
+
# target: tool_id
|
164
|
+
# })
|
165
|
+
# notification "find why this id #{self.atome_id}, add annimation callback to set overflow when anim complete"
|
166
|
+
# grab(tool_id).overflow(:visible)
|
167
|
+
# end
|
168
|
+
#
|
169
|
+
# def close_tool(tool_id, widthness, orientation, speed)
|
170
|
+
# if orientation == :x
|
171
|
+
# orientation = :width
|
172
|
+
# value = grab(tool_id).width
|
173
|
+
# else
|
174
|
+
# orientation = :height
|
175
|
+
# value = grab(tool_id).height
|
176
|
+
# end
|
177
|
+
# animate({
|
178
|
+
# start: { orientation => value * widthness },
|
179
|
+
# end: { orientation => value },
|
180
|
+
# duration: speed * 1000,
|
181
|
+
# loop: 0,
|
182
|
+
# curve: :easing,
|
183
|
+
# target: tool_id
|
184
|
+
# })
|
185
|
+
# # grab(tool_id).overflow(:hidden)
|
186
|
+
# end
|
187
|
+
#
|
188
|
+
# def create_tool(tool_name, size = 33, x_pos = 0, y_pos = 33, offsset=0)
|
189
|
+
# tool_created = tool(self.tool_style(size).merge({ parent: :main_menu, atome_id: "tool_" + tool_name, id: "tool_" + tool_name,
|
190
|
+
# width: size, height: size, smooth: size / 9, overflow: :hidden, x: x_pos, y: y_pos, z: 1, content: [] }))
|
191
|
+
# icon=tool_created.shape({ path: tool_name, width: size - size / 2, height: size - size / 2, center: true })
|
192
|
+
# # name = intuition_list[tool_name][language]
|
193
|
+
# particle({ atome_id: :tools_property_container, color: { red: 0.6, green: 0.6, blue: 0.6 } })
|
194
|
+
# # we get the plugin code only if the plugin hasn't been interpreted before (unless condition below)
|
195
|
+
# unless grab(:intuition).content.include? tool_name
|
196
|
+
# ATOME.reader("./medias/e_rubies/tools/#{tool_name}.rb") do |data|
|
197
|
+
# # todo add a security parser here
|
198
|
+
# # we set the variable tool that can be used to facilitate plugin creation
|
199
|
+
# data="tool=grab(:#{tool_created.atome_id})\n"+data
|
200
|
+
# compile(data)
|
201
|
+
# # we add the tool to the intuition content so it won't be loaded twice
|
202
|
+
# grab(:intuition).content |= [tool_name]
|
203
|
+
# end
|
204
|
+
# end
|
205
|
+
# # end
|
206
|
+
# tool_created.active({ exec: false })
|
207
|
+
# tool_created.inactive({ exec: false })
|
208
|
+
# icon.touch(stop: true) do
|
209
|
+
# if tool_created.active[:exec] == true
|
210
|
+
# tool_created.color(:transparent)
|
211
|
+
# tool_created.active(exec: false, proc: tool_created.active[:proc] )
|
212
|
+
# tool_created.inactive(exec: true, proc: tool_created.inactive[:proc] )
|
213
|
+
# else
|
214
|
+
# tool_created.color({alpha: 0.3})
|
215
|
+
# tool_created.active({ exec: true, proc: tool_created.active[:proc] })
|
216
|
+
# end
|
217
|
+
# end
|
218
|
+
# end
|
219
|
+
#
|
220
|
+
# # we get menu entry point
|
221
|
+
# def open_intuition(position = {})
|
222
|
+
# position = { x: 0, yy: 0, size: 33, orientation: :vertical, offset: 0 }.merge(position)
|
223
|
+
# # we get content language from view's language
|
224
|
+
# if grab(:main_menu)
|
225
|
+
# grab(:main_menu).delete
|
226
|
+
# else
|
227
|
+
# grab(:view).language
|
228
|
+
# self.language(grab(:view).language)
|
229
|
+
# orientation = position.delete(:orientation)
|
230
|
+
# size = position.delete(:size)
|
231
|
+
# offset = position.delete(:offset)
|
232
|
+
# # positioning and scaling
|
233
|
+
# if orientation == :vertical
|
234
|
+
# requested_width = size
|
235
|
+
# requested_height = (size+offset)* impulse.length
|
236
|
+
# else
|
237
|
+
# requested_width = (size+offset) * impulse.length
|
238
|
+
# requested_height = size
|
239
|
+
# end
|
240
|
+
# tool({ atome_id: :main_menu, parent: :intuition, color: { alpha: 0 } }.merge(position).merge(width: requested_width, height: requested_height))
|
241
|
+
# impulse.each_with_index do |item, index|
|
242
|
+
# if orientation == :vertical
|
243
|
+
# create_tool(item, size, 0, index * (size+offset))
|
244
|
+
# else
|
245
|
+
# create_tool(item, size, index * (size+offset), 0)
|
246
|
+
# end
|
247
|
+
# end
|
248
|
+
# end
|
249
|
+
# end
|
250
|
+
end
|
251
|
+
# atome class extension for eVe
|
252
|
+
|
253
|
+
class Atome
|
254
|
+
include Intuition
|
255
|
+
# def atome(requested_property)
|
256
|
+
# # add component list iin the content we maybe ahave to create a tool object because box can't handle this type of content
|
257
|
+
# new_atome=self.tool({ atome_id: "#{self.atome_id}_#{requested_property}_atome_#{self.content.length}", x: 66})
|
258
|
+
# new_atome.touch({ stop: true, option: :down}) do
|
259
|
+
# color(:red)
|
260
|
+
# new_atome.height = new_atome.height*3
|
261
|
+
# end
|
262
|
+
# new_atome.touch({ stop: true, option: :up}) do
|
263
|
+
# color(:red)
|
264
|
+
# new_atome.height = new_atome.height/3
|
265
|
+
# end
|
266
|
+
# notification "now we have to add an object or a new property (style) to store complete tool style including size and
|
267
|
+
# orientation so we can position the new atome correctly"
|
268
|
+
# # alert self.content.class
|
269
|
+
# # alert self.content.length
|
270
|
+
# # alert tool_style
|
271
|
+
# end
|
272
|
+
end
|
273
|
+
|
274
|
+
# # we initialise the toolbox here :
|
275
|
+
#
|
276
|
+
# # the launch bar
|
277
|
+
# launch_bar = box({ x: 0, y: 0, width: 33, height: "100%", parent: :intuition, z: 0, color: { alpha: 0 } })
|
278
|
+
# launch_bar.touch({ option: :long }) do |evt|
|
279
|
+
# size = 33
|
280
|
+
# yy_touch_position = grab(:view).convert(:height) - evt.page_y
|
281
|
+
# if yy_touch_position < size
|
282
|
+
# #if the long touch is within the wanted area( in this at bottom of the screen) we open the menu
|
283
|
+
# # launch_bar.open_intuition({ x: size, yy: 6,offset: 6, orientation: :horizontal, size: size })
|
284
|
+
# launch_bar.open_intuition({ x: 6, yy: size,offset: 6, orientation: :vertical, size: size })
|
48
285
|
# end
|
49
|
-
# end
|
286
|
+
# end
|
287
|
+
#
|
288
|
+
# # # # # # # # # # # # # # # tests below # # # # # # # # # # # # #
|
289
|
+
#
|
290
|
+
# list = molecule_analysis(@molecules_list)
|
291
|
+
# notif list[:tools]
|
292
|
+
# notif "======"
|
293
|
+
# notif list[:molecules]
|
294
|
+
# notif "======"
|
295
|
+
# notif list[:atomes]
|
296
|
+
# notif "======"
|
297
|
+
# notif list[:molecules][:shadow]
|
298
|
+
# let's build the toolbox
|
299
|
+
grab(:intuition).box({id: :toolbox, top: :auto, bottom: 0, left: 0, width: Intuition.style[:toolbox][:width], height: 255})
|
300
|
+
|
301
|
+
# tool builder
|
302
|
+
|
303
|
+
new({ tool: :capture }) do |params|
|
304
|
+
tool = { id: :rec_01,
|
305
|
+
name: :record, icon: :record, action: {open: [:sub_menu]}, code: :record_tool, position: { root: 1 }, # position can be multiple
|
306
|
+
option: { opt1: :method_2 }, int8: { french: :enregistrement, english: :record, german: :datensatz } }
|
307
|
+
tool
|
308
|
+
end
|
309
|
+
# Intuition::toolbox_style
|
310
|
+
# Intuition.toolbox_style
|
311
|
+
# puts A.impulse
|
312
|
+
# def fill_toolzone(tools_ids)
|
313
|
+
#
|
314
|
+
# end
|
315
|
+
#
|
316
|
+
# fill_toolzone(%i[files edition select group link copy undo settings])
|
317
|
+
|
318
|
+
|
@@ -28,25 +28,32 @@ class EDen
|
|
28
28
|
# database connexion :
|
29
29
|
db = db_access
|
30
30
|
# retrieving data from the 'identity' table
|
31
|
-
identity_items = db[:
|
31
|
+
identity_items = db[:user]
|
32
32
|
# retrieving sent data
|
33
|
-
user_email = data["email"]
|
33
|
+
user_email = data["particles"]["email"]
|
34
34
|
# data cleansing of superfluous characters
|
35
35
|
sanitized_email = sanitize_email(user_email)
|
36
36
|
# database search
|
37
37
|
mail_exists = identity_items.where(email: sanitized_email).first
|
38
|
-
|
38
|
+
# mail_exists = identity_items.where(email: user_email).first
|
39
|
+
puts 'ok'
|
39
40
|
if !mail_exists
|
40
|
-
|
41
|
+
@@pass = nil
|
42
|
+
puts "authentication @@pass : #{@@pass}"
|
43
|
+
return { return: 'Email non trouvé, erreur', message_id: message_id }
|
41
44
|
else
|
42
45
|
@@mail = user_email
|
46
|
+
puts "authentication @@mail du else : #{@@mail}"
|
47
|
+
puts "authentication @@pass du else : #{@@pass}"
|
43
48
|
if @@mail && @@pass
|
49
|
+
puts "authentication @@mail du else v2 : #{@@mail}"
|
50
|
+
puts "authentication @@pass du else v2 : #{@@pass}"
|
44
51
|
@@mail = nil
|
45
52
|
@@pass = nil
|
46
|
-
return { return: 'logged',
|
53
|
+
return { return: 'logged', mail_authorized: true, user_id: mail_exists[:user_id], message_id: message_id }
|
47
54
|
# Send the user account template
|
48
55
|
else
|
49
|
-
return { return: 'Email trouvé, cherche mdp',
|
56
|
+
return { return: 'Email trouvé, cherche mdp', mail_authorized: false, message_id: message_id }
|
50
57
|
end
|
51
58
|
end
|
52
59
|
end
|
@@ -55,25 +62,32 @@ class EDen
|
|
55
62
|
# database connexion :
|
56
63
|
db = db_access
|
57
64
|
# retrieving data from the 'security' table
|
58
|
-
security_items = db[:
|
65
|
+
security_items = db[:user]
|
59
66
|
# retrieving sent data
|
60
|
-
user_password = data["password"]
|
67
|
+
user_password = data["particles"]["password"]
|
61
68
|
# database search
|
62
69
|
user_exists = security_items.where(password: user_password).first
|
70
|
+
puts "user_exists : #{user_exists}"
|
63
71
|
|
64
72
|
if !user_exists
|
65
|
-
|
66
|
-
|
73
|
+
@@mail = nil
|
74
|
+
puts "authorization @@mail du else : #{@@mail}"
|
75
|
+
return { return: 'Password non trouvé, erreur', message_id: message_id }
|
67
76
|
else
|
68
77
|
@@pass = user_password
|
78
|
+
puts "authorization @@pass : #{@@pass}"
|
79
|
+
puts "authorization @@mail du else : #{@@mail}"
|
69
80
|
if @@mail && @@pass
|
81
|
+
puts "authorization @@pass v2 : #{@@pass}"
|
82
|
+
puts "authorization @@mail du else v2 : #{@@mail}"
|
70
83
|
# reset variables containing mail and password
|
71
84
|
@@mail = nil
|
72
85
|
@@pass = nil
|
73
|
-
return { return: '
|
86
|
+
# return { return: 'Password trouvé, cherche mdp', password_authorized: false, message_id: message_id }
|
87
|
+
return { return: 'logged', password_authorized: true, user_id: user_exists[:user_id], message_id: message_id }
|
74
88
|
# Send the user account template
|
75
89
|
else
|
76
|
-
return { return: 'Password trouvé, cherche mdp',
|
90
|
+
return { return: 'Password trouvé, cherche mdp', password_authorized: false, message_id: message_id }
|
77
91
|
end
|
78
92
|
end
|
79
93
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
const communication = {
|
2
|
-
websocket: null
|
2
|
+
websocket: null,// websocket init for server
|
3
3
|
initialize: function () {
|
4
4
|
this.websocket = new WebSocket('ws://localhost:9292')
|
5
5
|
// this.websocket = new WebSocket(address);
|
@@ -22,7 +22,7 @@ const communication = {
|
|
22
22
|
event.preventDefault();
|
23
23
|
console.log('connection lost!')
|
24
24
|
};
|
25
|
-
}
|
25
|
+
},// Controller for native core
|
26
26
|
controller_sender: function (msg) {
|
27
27
|
let json_msg = JSON.parse(msg);
|
28
28
|
|
@@ -62,6 +62,7 @@ const communication = {
|
|
62
62
|
}
|
63
63
|
},
|
64
64
|
connect: function (type, server, user, pass, atomes, particles) {
|
65
|
+
// websocket for server
|
65
66
|
this.websocket = new WebSocket(type + '://' + server);
|
66
67
|
this.websocket.onopen = function (event) {
|
67
68
|
|
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.6.
|
4
|
+
version: 0.5.6.6.7
|
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-03-
|
11
|
+
date: 2024-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: artoo
|