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