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
         |