atome 0.5.6.4.0 → 0.5.6.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/atome/atome.rb +1 -1
- data/lib/atome/extensions/atome.rb +3 -2
- data/lib/atome/genesis/atomes.rb +12 -0
- data/lib/atome/genesis/genesis.rb +5 -1
- data/lib/atome/genesis/particles/hierarchy.rb +0 -1
- data/lib/atome/genesis/particles/material.rb +30 -10
- data/lib/atome/presets/atome.rb +1 -1
- data/lib/atome/version.rb +1 -1
- data/lib/renderers/html/html.rb +113 -49
- data/lib/renderers/html/property.rb +2 -1
- data/vendor/assets/application/examples/aid.rb +7 -0
- data/vendor/assets/application/examples/border.rb +3 -3
- data/vendor/assets/application/examples/delete.rb +16 -4
- data/vendor/assets/application/examples/remove.rb +13 -0
- data/vendor/assets/application/examples/table.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35961446f6b4a9138da14f96d5cba19b9b2ebd01c4ca9423eabb9150f2309ae4
|
4
|
+
data.tar.gz: 3bd19bdfde305d0e3b8c2d75f262edd901041ba1a940317c6a9a35867206cb55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f465c190d30eb202a38af8e00957899b8aa912a0e4ff864e6ab45ae42bf6f44fac8c24a820cbbc2d9661adaf9e2593fbd24092b59bdece0883f29f7d0c5fe259
|
7
|
+
data.tar.gz: fa33709f899aa5e50611ce840fc56b8ffc9f4fc0f34342387e202fd1def7c5c45e9ef8bec2df728feadcfa2b717344683e7dfad22bc6cd116b0ee12e5ff44ce7
|
data/lib/atome/atome.rb
CHANGED
@@ -119,8 +119,9 @@ class Object
|
|
119
119
|
grab(:view).delete(atomes)
|
120
120
|
end
|
121
121
|
|
122
|
-
def identity_generator
|
123
|
-
|
122
|
+
def identity_generator
|
123
|
+
|
124
|
+
"#{Universe.app_identity}_#{Universe.counter}".to_sym
|
124
125
|
end
|
125
126
|
|
126
127
|
def hook(a_id)
|
data/lib/atome/genesis/atomes.rb
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
new({ atome: :color, type: :hash })
|
4
4
|
|
5
|
+
# new({ post: :color }) do |params|
|
6
|
+
# puts "====> #{params}"
|
7
|
+
# params
|
8
|
+
# end
|
9
|
+
# new({ pre: :color}) do |params|
|
10
|
+
# alert "==> pre color params : #{params}"
|
11
|
+
# end
|
12
|
+
|
5
13
|
# new({ atome: :color, type: :hash })do |params|
|
6
14
|
# puts "1 #{params}______"
|
7
15
|
# params
|
@@ -14,7 +22,11 @@ new({ atome: :color, type: :hash })
|
|
14
22
|
# # end
|
15
23
|
# end
|
16
24
|
new({ sanitizer: :color }) do |params|
|
25
|
+
# alert "sanitizer color: #{params}"
|
17
26
|
params = create_color_hash(params) unless params.instance_of? Hash
|
27
|
+
# if params[:id]
|
28
|
+
# alert "id is #{params[:id]}"
|
29
|
+
# end
|
18
30
|
# the condition below is to prevent the creation of multiple unwanted colors with same property and no ID specified
|
19
31
|
unless params[:id]
|
20
32
|
uniq_value = "#{params[:red].to_s.sub('.', '_')}_#{params[:green].to_s.sub('.', '_')}_#{params[:blue].to_s.sub('.', '_')}_#{params[:alpha].to_s.sub('.', '_')}_#{params[:left].to_s.sub('.', '_')}_#{params[:top].to_s.sub('.', '_')}_#{params[:diffusion].to_s.sub('.', '_')}"
|
@@ -177,7 +177,11 @@ class Genesis
|
|
177
177
|
|
178
178
|
if Universe.atomes[params[:id]]
|
179
179
|
# if atome id already exist we grab the previous one
|
180
|
-
|
180
|
+
# this prevent the creation of new atome if the atome already exist
|
181
|
+
previous_atome= grab(params[:id])
|
182
|
+
# now we must re-affect affected atomes
|
183
|
+
previous_atome.affect(params[:affect])
|
184
|
+
previous_atome
|
181
185
|
else
|
182
186
|
Atome.new(params, &user_proc)
|
183
187
|
end
|
@@ -52,7 +52,6 @@ end
|
|
52
52
|
new({ particle: :apply, category: :hierarchy, type: :string, render: false, store: false }) do |parents_ids, &user_proc|
|
53
53
|
# TODO: optimize the 2 lines below:
|
54
54
|
# html.reset_background
|
55
|
-
# alert :ok
|
56
55
|
@apply ||= []
|
57
56
|
parents_ids = [parents_ids] unless parents_ids.instance_of?(Array)
|
58
57
|
parents_ids.each do |parent_id|
|
@@ -12,19 +12,35 @@ end
|
|
12
12
|
new({ particle: :hide, category: :material, type: :boolean })
|
13
13
|
|
14
14
|
new({ particle: :remove, category: :property, type: :hash }) do |params|
|
15
|
+
if params.instance_of? Hash
|
16
|
+
if params[:row]
|
17
|
+
data.delete_at(params[:row])
|
15
18
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
elsif params[:column]
|
20
|
+
column = params[:column]
|
21
|
+
data.map do |hash|
|
22
|
+
hash.delete(hash.keys[column]) if hash.keys[column]
|
23
|
+
hash
|
24
|
+
end
|
25
|
+
# elsif params[:all]
|
26
|
+
# apply.each do |applied_atome|
|
27
|
+
# if grab(applied_atome).type.to_sym == params[:all].to_sym
|
28
|
+
# puts "!go"
|
29
|
+
# end
|
30
|
+
# end
|
31
|
+
# puts "so_good #{params}"
|
32
|
+
# puts "***> #{apply}"
|
24
33
|
end
|
34
|
+
params
|
35
|
+
else
|
36
|
+
|
37
|
+
params
|
25
38
|
end
|
26
|
-
|
39
|
+
|
40
|
+
|
27
41
|
end
|
42
|
+
# new({ particle: :remove, category: :property, type: :hash })
|
43
|
+
|
28
44
|
|
29
45
|
new({ post: :remove }) do |params|
|
30
46
|
# TODO : we have to rethink the removal of atome and particles (with exception like category) and maybe 'use particle type' to handle removal
|
@@ -38,13 +54,17 @@ new({ post: :remove }) do |params|
|
|
38
54
|
paint.each do |atome_id_found|
|
39
55
|
@apply.delete(atome_id_found)
|
40
56
|
end
|
57
|
+
when :shadow
|
58
|
+
shadow.each do |atome_id_found|
|
59
|
+
@apply.delete(atome_id_found)
|
60
|
+
end
|
41
61
|
else
|
42
62
|
params.each do |particle, value|
|
43
63
|
case particle
|
44
64
|
when :category
|
45
65
|
@category.delete(value) if particle == :category
|
46
66
|
else
|
47
|
-
puts 'write code'
|
67
|
+
puts 'write code to remove atome applied'
|
48
68
|
end
|
49
69
|
end
|
50
70
|
|
data/lib/atome/presets/atome.rb
CHANGED
@@ -16,7 +16,7 @@ class Atome
|
|
16
16
|
|
17
17
|
basic_params[:type] = preset_params[:type] || :element
|
18
18
|
# basic_params[:aid] = identity_generator(:a)
|
19
|
-
basic_params[:id] = params[:id]|| identity_generator
|
19
|
+
basic_params[:id] = params[:id]|| identity_generator
|
20
20
|
basic_params[:renderers] = @renderers || preset_params[:renderers]
|
21
21
|
essential_params = basic_params.merge(preset_params)
|
22
22
|
#
|
data/lib/atome/version.rb
CHANGED
data/lib/renderers/html/html.rb
CHANGED
@@ -210,8 +210,8 @@ class HTML
|
|
210
210
|
end
|
211
211
|
|
212
212
|
def connect(params, &bloc)
|
213
|
-
type= params[:type]
|
214
|
-
server= params[:address]
|
213
|
+
type = params[:type]
|
214
|
+
server = params[:address]
|
215
215
|
# user=params[:user]
|
216
216
|
# pass=params[:pass]
|
217
217
|
# atomes=params[:atomes]
|
@@ -1401,72 +1401,136 @@ class HTML
|
|
1401
1401
|
|
1402
1402
|
end
|
1403
1403
|
|
1404
|
-
def
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1412
|
-
|
1404
|
+
def remove(params)
|
1405
|
+
# puts "remove => #{params}"
|
1406
|
+
# TODO: FIXME: "html : must create a case here #{params} (#{@original_atome.id})"
|
1407
|
+
case params
|
1408
|
+
when Hash
|
1409
|
+
params.each do |k, v|
|
1410
|
+
case k
|
1411
|
+
when :row
|
1412
|
+
row_index = params[:row]
|
1413
|
+
table_element = JS.global[:document].querySelector("##{@id} table")
|
1414
|
+
|
1415
|
+
if table_element.nil?
|
1416
|
+
puts 'Table not found'
|
1417
|
+
return
|
1418
|
+
end
|
1413
1419
|
|
1414
|
-
|
1420
|
+
rows = table_element.querySelectorAll('tbody tr').to_a
|
1415
1421
|
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1422
|
+
if row_index >= rows.length
|
1423
|
+
puts "row not found : #{row_index}"
|
1424
|
+
return
|
1425
|
+
end
|
1426
|
+
row_to_remove = rows[row_index]
|
1421
1427
|
|
1422
|
-
|
1428
|
+
row_to_remove[:parentNode].removeChild(row_to_remove)
|
1423
1429
|
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
+
rows.each_with_index do |row, i|
|
1431
|
+
next if i <= row_index
|
1432
|
+
end
|
1433
|
+
when :column
|
1434
|
+
column_index = params[:column]
|
1435
|
+
table_element = JS.global[:document].querySelector("##{@id} table")
|
1430
1436
|
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1437
|
+
if table_element.nil?
|
1438
|
+
puts 'Table not found'
|
1439
|
+
return
|
1440
|
+
end
|
1435
1441
|
|
1436
|
-
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
+
rows = table_element.querySelectorAll('tbody tr').to_a
|
1443
|
+
rows.each do |row|
|
1444
|
+
cells = row.querySelectorAll('td').to_a
|
1445
|
+
if column_index < cells.length
|
1446
|
+
cell_to_remove = cells[column_index]
|
1447
|
+
cell_to_remove[:parentNode].removeChild(cell_to_remove)
|
1448
|
+
end
|
1449
|
+
end
|
1450
|
+
when :all
|
1451
|
+
case v
|
1452
|
+
when :paint
|
1453
|
+
style(:background, 'black')
|
1454
|
+
# style('box-shadow', 'none')
|
1455
|
+
# style('text-shadow', 'none')
|
1456
|
+
when :color
|
1457
|
+
when :shadow
|
1458
|
+
style('box-shadow', 'none')
|
1459
|
+
style('text-shadow', 'none')
|
1460
|
+
end
|
1442
1461
|
end
|
1443
1462
|
end
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
#TODO: FIXME: "html : must create a case here #{params} (#{@original_atome.id})"
|
1454
|
-
|
1455
|
-
# puts @original_atome.color[0]
|
1456
|
-
|
1457
|
-
reset_background
|
1463
|
+
else
|
1464
|
+
@original_atome.apply.delete(params)
|
1465
|
+
style(:background, 'black')
|
1466
|
+
style('box-shadow', 'none')
|
1467
|
+
style('text-shadow', 'none')
|
1468
|
+
@original_atome.apply(@original_atome.apply)
|
1469
|
+
end
|
1470
|
+
# alert "remove : #{params} , type: #{@original_atome.type}"
|
1471
|
+
# reset_background
|
1458
1472
|
# style(:background, '')
|
1459
1473
|
# style(:background, 'black')
|
1460
1474
|
# @original_atome.color(:red)
|
1461
1475
|
# @original_atome.apply(@original_atome.color[0])
|
1462
1476
|
end
|
1477
|
+
|
1478
|
+
def table_remove(params)
|
1479
|
+
if params[:row]
|
1480
|
+
# row_index = params[:row]
|
1481
|
+
# table_element = JS.global[:document].querySelector("##{@id} table")
|
1482
|
+
#
|
1483
|
+
# if table_element.nil?
|
1484
|
+
# puts 'Table not found'
|
1485
|
+
# return
|
1486
|
+
# end
|
1487
|
+
#
|
1488
|
+
# rows = table_element.querySelectorAll('tbody tr').to_a
|
1489
|
+
#
|
1490
|
+
# if row_index >= rows.length
|
1491
|
+
# puts "row not found : #{row_index}"
|
1492
|
+
# return
|
1493
|
+
# end
|
1494
|
+
# row_to_remove = rows[row_index]
|
1495
|
+
#
|
1496
|
+
# row_to_remove[:parentNode].removeChild(row_to_remove)
|
1497
|
+
#
|
1498
|
+
# rows.each_with_index do |row, i|
|
1499
|
+
# next if i <= row_index
|
1500
|
+
# end
|
1501
|
+
elsif params[:column]
|
1502
|
+
# column_index = params[:column]
|
1503
|
+
# table_element = JS.global[:document].querySelector("##{@id} table")
|
1504
|
+
#
|
1505
|
+
# if table_element.nil?
|
1506
|
+
# puts 'Table not found'
|
1507
|
+
# return
|
1508
|
+
# end
|
1509
|
+
#
|
1510
|
+
# rows = table_element.querySelectorAll('tbody tr').to_a
|
1511
|
+
# rows.each do |row|
|
1512
|
+
# cells = row.querySelectorAll('td').to_a
|
1513
|
+
# if column_index < cells.length
|
1514
|
+
# cell_to_remove = cells[column_index]
|
1515
|
+
# cell_to_remove[:parentNode].removeChild(cell_to_remove)
|
1516
|
+
# end
|
1517
|
+
# end
|
1518
|
+
|
1519
|
+
end
|
1520
|
+
end
|
1521
|
+
|
1522
|
+
# def reset_background
|
1523
|
+
# style(:background, 'black')
|
1524
|
+
# style('box-shadow', 'none')
|
1525
|
+
# style('text-shadow', 'none')
|
1526
|
+
# end
|
1527
|
+
|
1463
1528
|
# atomisation!
|
1464
1529
|
def atomized(html_object)
|
1465
1530
|
html_object = html_object[0] if html_object.instance_of? Array
|
1466
1531
|
@element = html_object
|
1467
1532
|
end
|
1468
1533
|
|
1469
|
-
|
1470
1534
|
# def center(options, attach)
|
1471
1535
|
# parent = grab(attach)
|
1472
1536
|
#
|
@@ -59,7 +59,8 @@ new({ method: :insert, renderer: :html, type: :hash }) do |params|
|
|
59
59
|
end
|
60
60
|
|
61
61
|
new({ method: :remove, renderer: :html, type: :hash }) do |params|
|
62
|
-
|
62
|
+
# alert "===> #{params}"
|
63
|
+
# html.table_remove(params)
|
63
64
|
html.remove(params)
|
64
65
|
end
|
65
66
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
|
4
|
-
col=color({red: 1,
|
4
|
+
col=color({red: 1, green: 0.2, id: :the_col})
|
5
5
|
c=circle
|
6
6
|
b=box({left: 333})
|
7
7
|
c2=circle({top: 190, width: 99, height: 99})
|
@@ -10,7 +10,7 @@ c2.border({ thickness: 5, color: :blue, pattern: :dotted })
|
|
10
10
|
c.border({ thickness: 5, color: col, pattern: :dotted })
|
11
11
|
b.border({ thickness: 5, color: col, pattern: :dotted })
|
12
12
|
|
13
|
-
wait
|
13
|
+
wait 1 do
|
14
14
|
c2.border({ thickness: 5, color: :green, pattern: :dotted })
|
15
15
|
c.border({ thickness: 5, color: :green, pattern: :dotted })
|
16
16
|
b.border({ thickness: 5, color: :green, pattern: :dotted })
|
@@ -19,7 +19,7 @@ end
|
|
19
19
|
b.touch(true) do
|
20
20
|
|
21
21
|
b.border({ thickness: 5, color: { red: 1, green: 0 }, pattern: :dotted })
|
22
|
-
|
22
|
+
puts " no new atome added!, number of atomes: #{Universe.atomes.length}"
|
23
23
|
end
|
24
24
|
# wait 6 do
|
25
25
|
# iamge(:red_planet)
|
@@ -2,15 +2,23 @@
|
|
2
2
|
|
3
3
|
b = box()
|
4
4
|
b.text('click me')
|
5
|
-
|
5
|
+
orange=''
|
6
6
|
b.touch(true) do
|
7
|
-
c = grab(:view).circle({id: :circling, left: 222, color: :orange, blur:
|
8
|
-
c.box({id: :boxing,color: :
|
9
|
-
|
7
|
+
c = grab(:view).circle({id: :circling, left: 222, color: :orange, blur: 1.9 })
|
8
|
+
orange=c.box({id: :boxing,color: {id: :orange_col, red: 1, blue: 0.2 }, width: 33, height: 33, left: 123})
|
9
|
+
orange.shadow({
|
10
|
+
id: :s1,
|
11
|
+
# affect: [:the_circle],
|
12
|
+
left: 9, top: 3, blur: 9,
|
13
|
+
invert: false,
|
14
|
+
red: 0, green: 0, blue: 0, alpha: 1
|
15
|
+
})
|
16
|
+
c.box({id: :boxy,color: {id: :red_col, red: 1 }, width: 33, height: 33, left: 333})
|
10
17
|
c.text('tap here')
|
11
18
|
wait 0.5 do
|
12
19
|
c.delete(:left)
|
13
20
|
wait 0.5 do
|
21
|
+
# orange.color(:pink)
|
14
22
|
c.delete(:blur)
|
15
23
|
end
|
16
24
|
end
|
@@ -18,8 +26,12 @@ b.touch(true) do
|
|
18
26
|
c.touch(true) do
|
19
27
|
c.delete({ recursive: true })
|
20
28
|
end
|
29
|
+
# alert orange.apply
|
21
30
|
end
|
22
31
|
|
32
|
+
|
33
|
+
|
34
|
+
|
23
35
|
############
|
24
36
|
# b = box({left: 333, id: :the_box_1})
|
25
37
|
# b.color({id: :the_orange_col, red: 1, blue: 0.5})
|
@@ -14,22 +14,34 @@ b.shadow({
|
|
14
14
|
invert: false,
|
15
15
|
red: 0, green: 0, blue: 0, alpha: 1
|
16
16
|
})
|
17
|
+
|
18
|
+
|
17
19
|
wait 1 do
|
18
20
|
b.remove(:other_col)
|
19
21
|
wait 1 do
|
20
22
|
b.remove(:new_col)
|
21
23
|
wait 1 do
|
22
24
|
b.remove(:box_color)
|
25
|
+
|
23
26
|
wait 1 do
|
24
27
|
b.apply(:last_col)
|
25
28
|
wait 1 do
|
26
29
|
b.apply(:last_col2)
|
30
|
+
b.remove(:s1)
|
27
31
|
end
|
28
32
|
end
|
29
33
|
end
|
30
34
|
end
|
31
35
|
end
|
32
36
|
b.touch(true) do
|
37
|
+
b.shadow({
|
38
|
+
id: :s1,
|
39
|
+
# affect: [:the_circle],
|
40
|
+
left: 9, top: 3, blur: 9,
|
41
|
+
invert: false,
|
42
|
+
red: 0, green: 0, blue: 0, alpha: 1
|
43
|
+
})
|
44
|
+
|
33
45
|
puts "before => #{b.apply}"
|
34
46
|
b.remove({all: :color})
|
35
47
|
puts "after => #{b.apply}"
|
@@ -40,6 +52,7 @@ b.touch(true) do
|
|
40
52
|
b.remove(:the_gradient)
|
41
53
|
wait 1 do
|
42
54
|
b.remove(all: :shadow)
|
55
|
+
b.color(:cyan)
|
43
56
|
end
|
44
57
|
end
|
45
58
|
end
|
@@ -7,7 +7,7 @@ c.touch(true) do
|
|
7
7
|
alert :okk
|
8
8
|
end
|
9
9
|
m = matrix({ renderers: [:html], attach: :view, id: :my_test_box, type: :matrix, apply: [:shape_color],
|
10
|
-
left: 333, top: 0, width:
|
10
|
+
left: 333, top: 0, width: 900, smooth: 15, height: 900, overflow: :scroll, option: { header: true },
|
11
11
|
component: {
|
12
12
|
border: { thickness: 5, color: color(:blue), pattern: :dotted },
|
13
13
|
overflow: :auto,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atome
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.6.4.
|
4
|
+
version: 0.5.6.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean-Eric Godard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: artoo
|
@@ -514,6 +514,7 @@ files:
|
|
514
514
|
- vendor/assets/Guardfile
|
515
515
|
- vendor/assets/Rakefile
|
516
516
|
- vendor/assets/application/examples/affect.rb
|
517
|
+
- vendor/assets/application/examples/aid.rb
|
517
518
|
- vendor/assets/application/examples/animation.rb
|
518
519
|
- vendor/assets/application/examples/apply.rb
|
519
520
|
- vendor/assets/application/examples/atome.rb
|