atome 0.5.6.3.1 → 0.5.6.3.5
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 +51 -23
- data/documentation/deep learning/basic_infos.txt +1 -1
- data/exe/atome +43 -11
- data/lib/atome/genesis/sparkle.rb +29 -24
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +2 -5
- data/lib/atome_relative.rb +2 -6
- data/lib/molecules/examples/site.rb +34 -0
- data/lib/molecules/init.rb +51 -0
- data/lib/molecules/intuition/inputs.rb +111 -0
- data/lib/molecules/intuition/sliders.rb +49 -0
- data/lib/molecules/intuition/toolbox.rb +280 -0
- data/vendor/assets/application/examples/on_the_fly_ruby_code_loading.rb +9 -0
- data/vendor/assets/server/atome_server.rb +2 -1
- data/vendor/assets/server/atome_server_wasm.rb +16 -74
- data/vendor/assets/server/database.rb +1 -1
- data/vendor/assets/src/index.html +4 -1
- data/vendor/assets/src/index_opal.html +5 -1
- data/vendor/assets/src/index_server.html +4 -1
- data/vendor/assets/src/index_server_wasm.html +11 -18
- data/vendor/assets/src/index_wasm.html +11 -14
- data/vendor/assets/src/js/atome/atome.js +78 -1
- data/vendor/assets/src/js/molecules/web.js +4 -0
- metadata +13 -21
- data/atome.gemspec +0 -99
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz: '
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09634d52a8f3829297eb4f432ce16d2a6a7c9203155d01423c949d3d5f6d3627'
|
4
|
+
data.tar.gz: d5f17ab9bf3baee1a4a4a89aa27ac02319f746113b688c723f06e123f091db59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a73cdcee8925ca328a5643b83467bbd9c12a3483b194133fd9c5ddd033a3f82f5209b91a30deebdb3c89ab18a2818433088a638d4aea34fc941b32c2ccf90547
|
7
|
+
data.tar.gz: 9732c3992657d13646a1a09628ff7f915ad0b6f584da4f420a995f2d03228c5fde39c04b9235abd3f76170537877f1e367ae9f02ac45e7dd939361c0e584a1d7
|
data/Rakefile
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
3
|
+
|
2
4
|
require 'fileutils'
|
3
5
|
require 'securerandom'
|
4
6
|
require 'digest/sha2'
|
@@ -8,15 +10,23 @@ require 'rubygems/uninstaller'
|
|
8
10
|
require 'bundler/gem_tasks'
|
9
11
|
load 'exe/atome'
|
10
12
|
|
11
|
-
folder_name = 'lib/eVe'
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
13
|
+
# folder_name = 'lib/eVe'
|
14
|
+
#
|
15
|
+
# # allow or deny eVe gem content to be copied to local eVe or not
|
16
|
+
refresh_eVe=true
|
17
|
+
#
|
18
|
+
# # if refresh_eVe
|
19
|
+
# # # doesn't work
|
20
|
+
# # `bundle update`
|
21
|
+
# # end
|
22
|
+
#
|
23
|
+
# unless Dir.exist?(folder_name)
|
24
|
+
# Dir.mkdir(folder_name)
|
25
|
+
# File.open('lib/eVe/eVe_relative.rb', 'w') do |file|
|
26
|
+
# end
|
27
|
+
# File.open('lib/eVe/eVe.rb', 'w') do |file|
|
28
|
+
# end
|
29
|
+
# end
|
20
30
|
|
21
31
|
|
22
32
|
task :cleanup do
|
@@ -77,8 +87,8 @@ def generate_resolved_file(source_file_path)
|
|
77
87
|
resolve_requires(source_file_path, root_path)
|
78
88
|
end
|
79
89
|
|
80
|
-
def wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
81
|
-
create_application(source, destination, project_name)
|
90
|
+
def wasm_params(source, destination, project_name, wasi_file, host_mode, script_source, refresh_eVe)
|
91
|
+
create_application(source, destination, project_name, refresh_eVe)
|
82
92
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
83
93
|
end
|
84
94
|
|
@@ -104,19 +114,19 @@ task :test_wasm do
|
|
104
114
|
destination = './tmp'
|
105
115
|
script_source = './test/application'
|
106
116
|
|
107
|
-
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
117
|
+
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source,refresh_eVe)
|
108
118
|
system "open", file_path
|
109
119
|
when /linux|bsd/
|
110
120
|
destination = './tmp'
|
111
121
|
script_source = './test/application'
|
112
122
|
wasi_file = 'wasi-vfs-unix pack tmp'
|
113
|
-
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
123
|
+
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source,refresh_eVe)
|
114
124
|
system "xdg-open", file_path
|
115
125
|
when /mswin|mingw|cygwin/
|
116
126
|
destination = '.\\tmp'
|
117
127
|
script_source = '.\\test\\application'
|
118
128
|
wasi_file = 'wasi-vfs.exe pack'
|
119
|
-
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source)
|
129
|
+
wasm_params(source, destination, project_name, wasi_file, host_mode, script_source,refresh_eVe)
|
120
130
|
system "start", file_path
|
121
131
|
else
|
122
132
|
raise "Système d'exploitation non reconnu"
|
@@ -130,7 +140,7 @@ task :test_opal do
|
|
130
140
|
source = '.'
|
131
141
|
destination = './tmp'
|
132
142
|
script_source = './test/application'
|
133
|
-
create_application(source, destination, project_name)
|
143
|
+
create_application(source, destination, project_name, refresh_eVe)
|
134
144
|
# the line below is to add addition script to the application folder (useful for test per example)
|
135
145
|
add_to_application_folder(script_source, destination, project_name)
|
136
146
|
# build opal
|
@@ -166,9 +176,27 @@ task :test_server_wasm do
|
|
166
176
|
script_source = './test/application'
|
167
177
|
wasi_file = 'wasi-vfs-osx_arm'
|
168
178
|
host_mode = 'pure_wasm'
|
169
|
-
create_application(source, destination, project_name)
|
179
|
+
create_application(source, destination, project_name, refresh_eVe)
|
170
180
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
171
181
|
puts 'atome wasm is build and running!'
|
182
|
+
threads = []
|
183
|
+
threads << Thread.new do
|
184
|
+
|
185
|
+
sleep 1
|
186
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
187
|
+
# code to exec for Windows
|
188
|
+
`start http://localhost:9292`
|
189
|
+
# `start #{destination}\\#{project_name}\\src\\index_server.html`
|
190
|
+
|
191
|
+
elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/
|
192
|
+
# code to exec for MacOS
|
193
|
+
`open http://localhost:9292`
|
194
|
+
else
|
195
|
+
# code to exec for Unix/Linux
|
196
|
+
`open http://localhost:9292`
|
197
|
+
end
|
198
|
+
|
199
|
+
end
|
172
200
|
build_for_wasm_server(destination, project_name, 9292, :production)
|
173
201
|
|
174
202
|
end
|
@@ -177,7 +205,7 @@ task :test_server do
|
|
177
205
|
source = '.'
|
178
206
|
destination = './tmp'
|
179
207
|
script_source = './test/application'
|
180
|
-
create_application(source, destination, project_name)
|
208
|
+
create_application(source, destination, project_name, refresh_eVe)
|
181
209
|
# the line below is to add addition script to the application folder (useful for test per example)
|
182
210
|
add_to_application_folder(script_source, destination, project_name)
|
183
211
|
# build opal
|
@@ -220,7 +248,7 @@ task :opal_server_rebuild do
|
|
220
248
|
source = '.'
|
221
249
|
destination = './tmp'
|
222
250
|
script_source = './test/application'
|
223
|
-
create_application(source, destination, project_name)
|
251
|
+
create_application(source, destination, project_name, refresh_eVe)
|
224
252
|
# the line below is to add addition script to the application folder (useful for test per example)
|
225
253
|
add_to_application_folder(script_source, destination, project_name)
|
226
254
|
# build opal
|
@@ -265,7 +293,7 @@ task :test_osx do
|
|
265
293
|
script_source = './test/application'
|
266
294
|
wasi_file = 'wasi-vfs-osx_arm'
|
267
295
|
host_mode = 'tauri'
|
268
|
-
create_application(source, destination, project_name)
|
296
|
+
create_application(source, destination, project_name, refresh_eVe)
|
269
297
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
270
298
|
destination = './tmp'
|
271
299
|
# build and open the app
|
@@ -280,7 +308,7 @@ task :build_osx do
|
|
280
308
|
script_source = './test/application'
|
281
309
|
wasi_file = 'wasi-vfs-osx_arm'
|
282
310
|
host_mode = 'tauri'
|
283
|
-
create_application(source, destination, project_name)
|
311
|
+
create_application(source, destination, project_name, refresh_eVe)
|
284
312
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
285
313
|
destination = './tmp'
|
286
314
|
# build and open the app
|
@@ -306,7 +334,7 @@ task :osx_server do
|
|
306
334
|
source = '.'
|
307
335
|
destination = './tmp'
|
308
336
|
script_source = './test/application'
|
309
|
-
create_application(source, destination, project_name)
|
337
|
+
create_application(source, destination, project_name, refresh_eVe)
|
310
338
|
# the line below is to add addition script to the application folder (useful for test per example)
|
311
339
|
add_to_application_folder(script_source, destination, project_name)
|
312
340
|
# build opal
|
@@ -329,7 +357,7 @@ task :osx_server do
|
|
329
357
|
script_source = './test/application'
|
330
358
|
wasi_file = 'wasi-vfs-osx_arm'
|
331
359
|
host_mode = 'tauri'
|
332
|
-
create_application(source, destination, project_name)
|
360
|
+
create_application(source, destination, project_name, refresh_eVe)
|
333
361
|
wasm_common(source, destination, project_name, wasi_file, host_mode, script_source)
|
334
362
|
destination = './tmp'
|
335
363
|
threads = []
|
@@ -425,7 +453,7 @@ task :full_test do
|
|
425
453
|
source = '.'
|
426
454
|
destination = './tmp'
|
427
455
|
script_source = './test/application'
|
428
|
-
create_application(source, destination, project_name)
|
456
|
+
create_application(source, destination, project_name, refresh_eVe)
|
429
457
|
# the line below is to add addition script to the application folder (useful for test per example)
|
430
458
|
add_to_application_folder(script_source, destination, project_name)
|
431
459
|
# build opal
|
@@ -45,7 +45,7 @@ Bundle update
|
|
45
45
|
|
46
46
|
Ruby wasm time allow local use of ruby wasm :
|
47
47
|
1 - download :
|
48
|
-
https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@2.3.0/dist/browser.script.
|
48
|
+
https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@2.3.0/dist/browser.script.iife2.js
|
49
49
|
2 - change
|
50
50
|
|
51
51
|
|
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, eVe_copy=true)
|
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)
|
@@ -185,10 +185,15 @@ def create_application(source, destination, project_name)
|
|
185
185
|
end
|
186
186
|
build_aui(destination, project_name)
|
187
187
|
# now lets add eVe now
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
188
|
+
# if eVe_copy
|
189
|
+
# # we update eVe first
|
190
|
+
# gem_spec = Gem::Specification.find_by_name('atome_eVe')
|
191
|
+
# gem_path = gem_spec.gem_dir
|
192
|
+
# puts "eve location : #{gem_path}"
|
193
|
+
# FileUtils.cp_r(Dir["#{gem_path}/*"], source+"/lib/eVe/")
|
194
|
+
# end
|
195
|
+
# build eVe kernel
|
196
|
+
# build_eVe_kernel_for_opal(source, destination, project_name)
|
192
197
|
end
|
193
198
|
|
194
199
|
def update_application(source, destination, project_name)
|
@@ -231,6 +236,34 @@ def build_atome_kernel_for_opal(source, destination, project_name)
|
|
231
236
|
end
|
232
237
|
end
|
233
238
|
|
239
|
+
# def build_eVe_kernel_for_opal(source, destination, project_name)
|
240
|
+
#
|
241
|
+
# gem_name = 'atome_eVe'
|
242
|
+
# # begin
|
243
|
+
# Gem::Specification.find_by_name(gem_name)
|
244
|
+
# # puts " gem 'eve' est installée."
|
245
|
+
# gem_spec = Gem::Specification.find_by_name(gem_name)
|
246
|
+
# gem_path = gem_spec.gem_dir
|
247
|
+
# # puts "Le chemin vers la gem '#{gem_name}' est '#{gem_path}'"
|
248
|
+
# # puts '-----'
|
249
|
+
# # puts "==> #{gem_path}/lib/eVe.rb"
|
250
|
+
# # rescue Gem::LoadError
|
251
|
+
# # # Code à exécuter si la gemme 'eve' n'est pas installée
|
252
|
+
# # puts "La gem '#{gem_name}' n'est pas installée."
|
253
|
+
# # end
|
254
|
+
# # now lets build the atome kernel
|
255
|
+
# atome_directory = "#{destination}/#{project_name}/src/js/atome"
|
256
|
+
# kernel_js = "#{atome_directory}/eVe_kernel.js"
|
257
|
+
# FileUtils.mkdir_p(atome_directory)
|
258
|
+
# File.new kernel_js, 'w'
|
259
|
+
# builder = Opal::Builder.new
|
260
|
+
# builder.append_paths("#{source}/lib/")
|
261
|
+
# kernel_content = builder.build("#{gem_path}/lib/eVe.rb").to_s
|
262
|
+
# File.open(kernel_js, 'w') do |f|
|
263
|
+
# f.puts kernel_content
|
264
|
+
# end
|
265
|
+
# end
|
266
|
+
|
234
267
|
def build_opal_extensions(source, destination, project_name)
|
235
268
|
opal_directory = "#{destination}/#{project_name}/src/js/opal"
|
236
269
|
extensions_js = "#{opal_directory}/atome_opal_extensions.js"
|
@@ -432,21 +465,20 @@ STR
|
|
432
465
|
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
433
466
|
f.write(ru_file)
|
434
467
|
end
|
435
|
-
puts 'w-a'
|
468
|
+
# puts 'w-a'
|
436
469
|
|
437
470
|
`cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
438
|
-
puts 'w-b'
|
471
|
+
# puts 'w-b'
|
439
472
|
|
440
473
|
else
|
441
|
-
puts 'e'
|
474
|
+
# puts 'e'
|
442
475
|
# code to exec with Unix/Linux
|
443
476
|
File.open("#{destination}/#{project_name}/server/config.ru", "w") do |f|
|
444
477
|
f.write(ru_file)
|
445
478
|
end
|
446
479
|
`cd #{destination}/#{project_name}/server;puma --port #{port} #{prod}`
|
447
480
|
end
|
448
|
-
puts 'f'
|
449
|
-
|
481
|
+
# puts 'f'
|
450
482
|
end
|
451
483
|
|
452
484
|
# utils
|
@@ -541,7 +573,7 @@ if ARGV.include?('update')
|
|
541
573
|
if Dir.exist?("#{destination}/application") && !Dir.exist?("#{destination}/vendor")
|
542
574
|
# first we delete everything but application
|
543
575
|
|
544
|
-
files_to_treat = %w[server src-tauri src-wasm Guardfile Rakefile src/css src/js/atome src/js/third_parties src/medias
|
576
|
+
files_to_treat = %w[server src-tauri src-wasm Guardfile Rakefile src/css src/js/atome src/js/molecules src/js/third_parties src/medias
|
545
577
|
src/favicon.ico src/index_wasm.html src/index_opal.html src/index_server.html src/index_server_wasm.html]
|
546
578
|
files_to_treat.each do |item|
|
547
579
|
item_path = File.join(destination, item)
|
@@ -116,7 +116,7 @@ def atome_infos
|
|
116
116
|
end
|
117
117
|
|
118
118
|
# help and example below :
|
119
|
-
|
119
|
+
|
120
120
|
A.example(:left) do
|
121
121
|
english = 'here is an example, touch me to get some help, or click the code to exec'
|
122
122
|
french = "voici un example, click moi pour de l'aide, ou clicker le code pour l'executer"
|
@@ -148,35 +148,40 @@ end
|
|
148
148
|
|
149
149
|
def init_database # this method is call from JS (atome/communication)
|
150
150
|
# we init the db file eDen
|
151
|
-
A.message({ action: :init_db, data: { database: :eDen } }) do |
|
152
|
-
puts db_state
|
151
|
+
A.message({ action: :init_db, data: { database: :eDen } }) do |_db_state|
|
153
152
|
end
|
153
|
+
# authentication : email, pass
|
154
|
+
# atome : date, particles
|
155
|
+
# history : aid, particle, value, date
|
154
156
|
|
155
157
|
particles = Universe.particle_list
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
158
|
+
# now we populate the DB
|
159
|
+
A.message({ action: :crate_db_table, data: { table: :authentication } }) do |_db_state|
|
160
|
+
end
|
161
|
+
|
162
|
+
A.message({ action: :create_db_column, data: { table: :user, column: :email, type: :string } }) do |_db_state|
|
163
|
+
end
|
164
|
+
|
165
|
+
A.message({ action: :create_db_column, data: { table: :user, column: :password, type: :string } }) do |_db_state|
|
166
|
+
end
|
167
|
+
|
168
|
+
A.message({ action: :crate_db_table, data: { table: :history } }) do |_db_state|
|
162
169
|
end
|
163
|
-
|
164
|
-
|
170
|
+
A.message({ action: :create_db_column, data: { table: :history, column: :aid, type: :string } }) do |_db_state|
|
171
|
+
end
|
172
|
+
A.message({ action: :create_db_column, data: { table: :history, column: :particle, type: :string } }) do |_db_state|
|
173
|
+
end
|
174
|
+
A.message({ action: :create_db_column, data: { table: :history, column: :value, type: :string } }) do |_db_state|
|
175
|
+
end
|
176
|
+
A.message({ action: :create_db_column, data: { table: :history, column: :date, type: :datetime } }) do |_db_state|
|
177
|
+
end
|
178
|
+
|
179
|
+
A.message({ action: :crate_db_table, data: { table: :atome } }) do |_db_state|
|
180
|
+
end
|
181
|
+
particles.each do |particle, infos|
|
165
182
|
type = infos[:type]
|
166
|
-
table
|
167
|
-
if type && table
|
168
|
-
@i=1
|
169
|
-
A.message({ action: :create_db_column, data: { table: table, column: particle, type: type } }) do |db_state|
|
170
|
-
@i+=1
|
171
|
-
if @i==particles_length
|
172
|
-
user_login
|
173
|
-
end
|
174
|
-
# puts db_state
|
175
|
-
end
|
176
|
-
else
|
177
|
-
puts "*** Warning feed type and category to #{particle}"
|
183
|
+
A.message({ action: :create_db_column, data: { table: :atome, column: particle, type: type } }) do |_db_state|
|
178
184
|
end
|
179
|
-
|
180
185
|
end
|
181
186
|
|
182
187
|
end
|
data/lib/atome/version.rb
CHANGED
data/lib/atome.rb
CHANGED
@@ -35,8 +35,5 @@ require 'renderers/headless/index'
|
|
35
35
|
require 'renderers/server/index'
|
36
36
|
require 'atome/helpers/sanitizer'
|
37
37
|
require 'atome/genesis/sparkle'
|
38
|
-
require '
|
39
|
-
# require 'eVe'
|
40
|
-
# gem_spec = Gem::Specification.find_by_name(gem_name)
|
41
|
-
# gem_path = gem_spec.gem_dir
|
42
|
-
# puts "Le chemin vers la gemme '#{gem_name}' est '#{gem_path}'"
|
38
|
+
require 'molecules/init'
|
39
|
+
# require 'eVe/lib/eVe'
|
data/lib/atome_relative.rb
CHANGED
@@ -34,9 +34,5 @@ require_relative './renderers/headless/index_relative'
|
|
34
34
|
require_relative './renderers/server/index_relative'
|
35
35
|
require_relative './atome/helpers/sanitizer'
|
36
36
|
require_relative './atome/genesis/sparkle'
|
37
|
-
require_relative './
|
38
|
-
|
39
|
-
# require 'eVe'
|
40
|
-
# gem_spec = Gem::Specification.find_by_name(gem_name)
|
41
|
-
# gem_path = gem_spec.gem_dir
|
42
|
-
# puts "Le chemin vers la gemme '#{gem_name}' est '#{gem_path}'"
|
37
|
+
require_relative './molecules/init'
|
38
|
+
# require_relative './eVe/lib/eVe'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
new(application: {name: :compose })
|
3
|
+
|
4
|
+
|
5
|
+
grab(:toto).color(:cyan)
|
6
|
+
|
7
|
+
def layout
|
8
|
+
compose_back=box
|
9
|
+
|
10
|
+
compose_back.color({ alpha: 0 })
|
11
|
+
media_reader=compose_back.box({left: 99, width: 250, height: 250, top: 99})
|
12
|
+
viewer_1=compose_back.box({left: 360, width: 250, height: 250, top: 99})
|
13
|
+
viewer_2=compose_back.box({left: 690, width: 250, height: 250, top: 99})
|
14
|
+
timeline=compose_back.box({left: 99, width: 250, height: 250, top: 399})
|
15
|
+
login=compose_back.text(:log)
|
16
|
+
login.touch(true) do
|
17
|
+
compose_back.delete(true)
|
18
|
+
# grab(:view).clear(true)
|
19
|
+
form
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
def form
|
25
|
+
form1=box
|
26
|
+
form1.text(:login)
|
27
|
+
|
28
|
+
form1.touch(true) do
|
29
|
+
form1.delete(true)
|
30
|
+
layout
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
form
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Molecule
|
4
|
+
def new(params, &bloc)
|
5
|
+
if params[:page]
|
6
|
+
site_found = grab(params[:page][:application])
|
7
|
+
site_found.clear(true)
|
8
|
+
page_id = params[:page][:name]
|
9
|
+
site_found.box({ id: page_id })
|
10
|
+
elsif params[:application]
|
11
|
+
|
12
|
+
footer_header_size=33
|
13
|
+
footer_header_color=color({red: 0, green: 0, blue: 0, id: :footer_header_color})
|
14
|
+
|
15
|
+
if params[:header]
|
16
|
+
top = footer_header_size
|
17
|
+
header=box({ left: 0, right: 0, width: :auto, top: 0, height: top, id: :header })
|
18
|
+
# header.attach(:footer_header_color)
|
19
|
+
else
|
20
|
+
top = 0
|
21
|
+
end
|
22
|
+
if params[:footer]
|
23
|
+
bottom = footer_header_size
|
24
|
+
box({ left: 0, right: 0, width: :auto, top: :auto, bottom: 0, height: bottom, id: :footer })
|
25
|
+
else
|
26
|
+
bottom = 0
|
27
|
+
end
|
28
|
+
box({ left: 0, right: 0, width: :auto, top: top, bottom: bottom, height: :auto, id: params[:application] })
|
29
|
+
elsif params[:module]
|
30
|
+
|
31
|
+
end
|
32
|
+
super if defined?(super)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class Object
|
37
|
+
include Molecule
|
38
|
+
end
|
39
|
+
|
40
|
+
# tests
|
41
|
+
new({application: :compose, header: true, footer: true })
|
42
|
+
#
|
43
|
+
# new(page: {name: :home, application: :compose, attach: :root })
|
44
|
+
#
|
45
|
+
# new(module: {name: :home, application: :compose, attach: :root })
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# def atome_common(atome_preset, params)
|
4
|
+
# basic_params = { renderers: [] }
|
5
|
+
# # TODO : remove Essentials.default_params[atome_preset] || {} as it is
|
6
|
+
# # applied twice because preset is now a particle
|
7
|
+
# preset_params = Essentials.default_params[atome_preset] || {}
|
8
|
+
#
|
9
|
+
# basic_params[:type] = preset_params[:type] || :element
|
10
|
+
# basic_params[:id] = params[:id] || identity_generator(atome_preset)
|
11
|
+
# basic_params[:renderers] = @renderers || preset_params[:renderers]
|
12
|
+
# essential_params = basic_params.merge(preset_params)
|
13
|
+
# reordered_params = essential_params.reject { |key, _| params.has_key?(key) }
|
14
|
+
# params = reordered_params.merge(params)
|
15
|
+
#
|
16
|
+
# # condition to handle color/shadow/paint atomes that shouldn't be attach to view
|
17
|
+
# # TODO : add category for atome( material/physical vs modifier : color, shadow, .. vs shape, image ..)
|
18
|
+
# # then add condition same things fo code in genesis new_atome
|
19
|
+
# if %i[color shadow paint].include?(atome_preset)
|
20
|
+
# unless params[:affect]
|
21
|
+
# params[:affect] = if @id == :view
|
22
|
+
# [:black_matter]
|
23
|
+
# else
|
24
|
+
# [@id]
|
25
|
+
# end
|
26
|
+
# end
|
27
|
+
# else
|
28
|
+
# params[:attach] = params[:attach] || @id || :view
|
29
|
+
# end
|
30
|
+
# params
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# def preset_common(params, &bloc)
|
34
|
+
# # if an atome with current id exist we update the ID in the params
|
35
|
+
# params[:id] = "#{params[:id]}_#{Universe.atomes.length}" if grab(params[:id])
|
36
|
+
# Atome.new(params, &bloc)
|
37
|
+
# end
|
38
|
+
# class EVe < Atome
|
39
|
+
class EVe < Atome
|
40
|
+
def initialize
|
41
|
+
@atomes = {}
|
42
|
+
end
|
43
|
+
|
44
|
+
def atome(atome_to_find)
|
45
|
+
@atomes[atome_to_find]
|
46
|
+
end
|
47
|
+
|
48
|
+
def input_box(params = {}, &bloc)
|
49
|
+
height_wanted = 15
|
50
|
+
width_wanted = 222
|
51
|
+
input_back = Atome.new(
|
52
|
+
{ renderers: [:html], id: :input_back, type: :shape, attach: :view, apply: [:shape_color],
|
53
|
+
left: 120, top: 120,data: '', width: width_wanted, height: height_wanted + height_wanted * 20 / 100, smooth: 6 })
|
54
|
+
|
55
|
+
@atomes[:input_back] = input_back
|
56
|
+
|
57
|
+
Atome.new(
|
58
|
+
{ renderers: [:html], id: :input_text_color, type: :color, tag: ({ system: true, persistent: true }),
|
59
|
+
red: 0.1, green: 0.1, blue: 0.1, alpha: 1 }
|
60
|
+
)
|
61
|
+
|
62
|
+
text_input = Atome.new(
|
63
|
+
{ renderers: [:html], id: :input_text, type: :text, apply: [:input_text_color], component: { size: height_wanted },
|
64
|
+
data: :input, left: height_wanted * 20 / 100, top: 0, edit: true, attach: :input_back, height: height_wanted, position: :absolute })
|
65
|
+
|
66
|
+
text_input.touch(true) do
|
67
|
+
text_input.component({ selected: { color: 'rgba(0,0,0,0.3)', text: :orange } })
|
68
|
+
end
|
69
|
+
|
70
|
+
text_input.keyboard(:down) do |native_event|
|
71
|
+
event = Native(native_event)
|
72
|
+
if event[:keyCode].to_s == '13'
|
73
|
+
# we prevent the input
|
74
|
+
event.preventDefault()
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
text_input.keyboard(:up) do |native_event|
|
80
|
+
input_back.data=text_input.data
|
81
|
+
end
|
82
|
+
@atomes[:input_text] = text_input
|
83
|
+
|
84
|
+
input_back
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
def input(params = {}, &proc)
|
90
|
+
text_color = :white
|
91
|
+
text_size = 12
|
92
|
+
back_color = :gray
|
93
|
+
width = 2000
|
94
|
+
in_b = EVe.new()
|
95
|
+
in_b.input_box
|
96
|
+
end
|
97
|
+
|
98
|
+
i= input
|
99
|
+
|
100
|
+
b=box({top: 0, left: 0, width: 33, height: 33})
|
101
|
+
b.touch(true) do
|
102
|
+
puts "i.data : #{i.data}"
|
103
|
+
end
|
104
|
+
i.left(66)
|
105
|
+
i.color(:white)
|
106
|
+
i.text.left(55)
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
button = box({smooth: 6,left: 55,top: 160, color:{red: 0.3, green: 0.3, blue: 0.3},id: :my_box})
|
4
|
+
button.shadow({
|
5
|
+
id: :s1,
|
6
|
+
left: 3, top: 3, blur: 9,
|
7
|
+
invert: true,
|
8
|
+
red: 0, green: 0, blue: 0, alpha: 0.7
|
9
|
+
})
|
10
|
+
button.touch(true) do
|
11
|
+
button.controller(:hello)
|
12
|
+
end
|
13
|
+
slider=box({ width: 333, height: 25, top: 45, left: 55, smooth: 9, color:{red: 0.3, green: 0.3, blue: 0.3}})
|
14
|
+
slider.shadow({
|
15
|
+
id: :s2,
|
16
|
+
left: 3, top: 3, blur: 9,
|
17
|
+
invert: true,
|
18
|
+
red: 0, green: 0, blue: 0, alpha: 0.7
|
19
|
+
})
|
20
|
+
cursor= slider.circle({width: 30, height: 30, left: 2, top: 1, color:{red: 0.3, green: 0.3, blue: 0.3}})
|
21
|
+
|
22
|
+
cursor.left(0)
|
23
|
+
cursor.top(0)
|
24
|
+
cursor.shadow({
|
25
|
+
id: :s4,
|
26
|
+
left: 1, top: 1, blur: 3,
|
27
|
+
option: :natural,
|
28
|
+
red: 0, green: 0, blue: 0, alpha: 0.6
|
29
|
+
})
|
30
|
+
label=text({data: 0, top: 69, left: 69, component: { size: 12 }, color: :gray})
|
31
|
+
cursor.drag({ restrict: {max:{ left: 309, top: 0}} }) do |event|
|
32
|
+
puts cursor.left
|
33
|
+
value = cursor.left/309*100
|
34
|
+
label.data(value)
|
35
|
+
cursor.controller({ action: :setModuleParameterValue, params: { moduleId: 6456549897,parameterId: 9846546, value: value} })
|
36
|
+
|
37
|
+
end
|
38
|
+
support=box({top: 300, left: 55, width: 300, height: 40, smooth: 9, color:{red: 0.3, green: 0.3, blue: 0.3}, id: :support })
|
39
|
+
support.shadow({
|
40
|
+
id: :s3,
|
41
|
+
left: 3, top: 3, blur: 9,
|
42
|
+
invert: true,
|
43
|
+
red: 0, green: 0, blue: 0, alpha: 0.7
|
44
|
+
})
|
45
|
+
support.import(true) do |content|
|
46
|
+
puts "add code here, content: #{content}"
|
47
|
+
end
|
48
|
+
|
49
|
+
in_box=input_box
|