atome 0.5.3.8.1 → 0.5.4.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +52 -17
- data/app_builder_helpers/Rakefile +20 -3
- data/exe/atome +33 -1
- data/lib/atome/atome.rb +64 -75
- data/lib/atome/extensions/atome.rb +82 -52
- data/lib/atome/extensions/mathematic.rb +8 -12
- data/lib/atome/extensions/matrix.rb +141 -202
- data/lib/atome/genesis/generators/atome.rb +13 -96
- data/lib/atome/genesis/generators/communication.rb +0 -1
- data/lib/atome/genesis/generators/effect.rb +0 -6
- data/lib/atome/genesis/generators/event.rb +64 -77
- data/lib/atome/genesis/generators/geometry.rb +0 -18
- data/lib/atome/genesis/generators/identity.rb +56 -52
- data/lib/atome/genesis/generators/material.rb +3 -54
- data/lib/atome/genesis/generators/spatial.rb +8 -8
- data/lib/atome/genesis/generators/utility.rb +82 -68
- data/lib/atome/genesis/genesis.rb +15 -4
- data/lib/atome/genesis/sparkle.rb +38 -19
- data/lib/atome/helpers/callbacks.rb +47 -1
- data/lib/atome/helpers/essentials.rb +21 -18
- data/lib/atome/helpers/sanitizer.rb +0 -10
- data/lib/atome/helpers/utilities.rb +143 -45
- data/lib/atome/kernel/batch.rb +13 -36
- data/lib/atome/kernel/universe.rb +3 -1
- data/lib/atome/presets/atome.rb +14 -23
- data/lib/atome/renderers/browser/atome.rb +2 -1
- data/lib/atome/renderers/browser/browser.rb +2 -0
- data/lib/atome/renderers/browser/event.rb +18 -0
- data/lib/atome/renderers/browser/helpers/browser_helper.rb +17 -0
- data/lib/atome/renderers/browser/helpers/drag_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/drop_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/event_helper.rb +16 -11
- data/lib/atome/renderers/browser/helpers/over_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/text_helper.rb +14 -2
- data/lib/atome/renderers/browser/identity.rb +23 -5
- data/lib/atome/renderers/browser/spatial.rb +3 -2
- data/lib/atome/renderers/browser/utility.rb +7 -6
- data/lib/atome/renderers/renderer.rb +1 -0
- data/lib/atome/version.rb +2 -2
- data/lib/atome.rb +1 -0
- data/sig/atome.rbs +36 -0
- data/sig/batch.rbs +7 -0
- data/sig/browser_helper.rbs +14 -0
- data/sig/essentials.rbs +11 -0
- data/sig/matrix.rbs +5 -0
- data/sig/object.rbs +3 -0
- data/vendor/assets/aui.rb +5 -0
- data/vendor/assets/src/index.html +15 -3
- data/vendor/assets/src/js/atome/atome.js +1 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +1 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_communication.js +40 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +40 -3
- data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +12 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +166 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_file.js +6 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +43 -0
- data/vendor/assets/src/medias/images/icons/email.svg +12 -12
- data/vendor/assets/src/medias/rubies/demos.rb +63 -0
- data/vendor/assets/src/medias/rubies/examples/add.rb +3 -4
- data/vendor/assets/src/medias/rubies/examples/animation.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/atome_new.rb +18 -6
- data/vendor/assets/src/medias/rubies/examples/attach.rb +15 -0
- data/vendor/assets/src/medias/rubies/examples/attached.rb +5 -6
- data/vendor/assets/src/medias/rubies/examples/batch.rb +17 -0
- data/vendor/assets/src/medias/rubies/examples/blur.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/box.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/code.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/color.rb +20 -4
- data/vendor/assets/src/medias/rubies/examples/delete.rb +18 -2
- data/vendor/assets/src/medias/rubies/examples/detached.rb +3 -3
- data/vendor/assets/src/medias/rubies/examples/drag.rb +53 -2
- data/vendor/assets/src/medias/rubies/examples/drop.rb +26 -0
- data/vendor/assets/src/medias/rubies/examples/fullscreen.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/image.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/link.rb +7 -5
- data/vendor/assets/src/medias/rubies/examples/markers.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/materials.rb +15 -0
- data/vendor/assets/src/medias/rubies/examples/matrix.rb +85 -41
- data/vendor/assets/src/medias/rubies/examples/matrix_changes.rb +483 -0
- data/vendor/assets/src/medias/rubies/examples/matrix_simple.rb +32 -0
- data/vendor/assets/src/medias/rubies/examples/monitoring.rb +44 -18
- data/vendor/assets/src/medias/rubies/examples/mute.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/on.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/over.rb +6 -4
- data/vendor/assets/src/medias/rubies/examples/pause.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/physical.rb +19 -0
- data/vendor/assets/src/medias/rubies/examples/play.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/read.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/repeat.rb +3 -2
- data/vendor/assets/src/medias/rubies/examples/shadow.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/sort.rb +3 -4
- data/vendor/assets/src/medias/rubies/examples/tags.rb +10 -0
- data/vendor/assets/src/medias/rubies/examples/text.rb +4 -4
- data/vendor/assets/src/medias/rubies/examples/time.rb +3 -3
- data/vendor/assets/src/medias/rubies/examples/video.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/web.rb +2 -2
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_2_solve.rb +1 -1
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_audio.rb +1 -1
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_dataset.rb +4 -4
- data/vendor/assets/src/medias/rubies/unstable/_matrix.rb +58 -0
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_table2.rb +2 -2
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_vie.rb +2 -2
- data/vendor/assets/src/utilities/mode.rb +0 -0
- data/vendor/assets/src-tauri/tauri.conf.json +2 -2
- metadata +34 -14
- data/vendor/assets/src/medias/rubies/examples/parents.rb +0 -15
- data/vendor/assets/src/medias/rubies/examples/table.rb +0 -479
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/!run.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_attach.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_os.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_test.rb +0 -0
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
new({particle: :touch , type: :hash, store: false })
|
3
|
+
new({ particle: :touch, type: :hash, store: false })
|
6
4
|
new({ post: :touch }) do |params, user_bloc|
|
7
5
|
@touch = {} if @touch == nil
|
8
6
|
@touch[params] = user_bloc
|
@@ -10,91 +8,80 @@ new({ post: :touch }) do |params, user_bloc|
|
|
10
8
|
store_value(:touch)
|
11
9
|
end
|
12
10
|
|
13
|
-
new({particle: :play }) do
|
11
|
+
new({ particle: :play }) do
|
14
12
|
@atome[:pause] = :false
|
15
13
|
end
|
16
|
-
new({particle: :time })
|
17
|
-
new({particle: :pause }) do
|
14
|
+
new({ particle: :time })
|
15
|
+
new({ particle: :pause }) do
|
18
16
|
@atome[:play] = :false
|
19
17
|
end
|
20
|
-
new({particle: :on })
|
21
|
-
new({particle: :fullscreen })
|
22
|
-
new({particle: :mute })
|
23
|
-
new({particle: :drag })
|
24
|
-
|
18
|
+
new({ particle: :on })
|
19
|
+
new({ particle: :fullscreen })
|
20
|
+
new({ particle: :mute })
|
21
|
+
new({ particle: :drag, store: false })
|
22
|
+
|
23
|
+
new({ sanitizer: :drag }) do |params, proc|
|
25
24
|
params = { move: true } if params == true
|
25
|
+
params = { end: proc } if params == :end
|
26
|
+
params = { start: proc } if params == :start
|
27
|
+
params
|
28
|
+
end
|
29
|
+
|
30
|
+
new({ post: :drag }) do |params|
|
31
|
+
# puts "params is : > #{params}"
|
32
|
+
@drag = {} if @drag == nil
|
33
|
+
# @drag[params] = user_bloc
|
34
|
+
params.each do |k, v|
|
35
|
+
@drag[k] = v
|
36
|
+
end
|
37
|
+
# @drag=params
|
38
|
+
# as store for touch is set to false we have to manually save the instance variable
|
39
|
+
store_value(:drag)
|
40
|
+
end
|
41
|
+
|
42
|
+
# @touch[params] = user_bloc
|
43
|
+
|
44
|
+
new ({ particle: :drop })
|
45
|
+
|
46
|
+
new ({ sanitizer: :drop }) do |params|
|
47
|
+
params = { action: true } if params == true
|
26
48
|
params
|
27
49
|
end
|
28
|
-
|
50
|
+
|
51
|
+
new ({ particle: :over })
|
52
|
+
|
53
|
+
new ({ sanitizer: :over }) do |params, user_proc|
|
54
|
+
|
55
|
+
params = :enter if params == true
|
56
|
+
case params
|
57
|
+
when :enter
|
58
|
+
@enter_action_proc = user_proc
|
59
|
+
when :leave
|
60
|
+
@leave_action_proc = user_proc
|
61
|
+
end
|
62
|
+
params
|
63
|
+
end
|
64
|
+
|
65
|
+
new({ particle: :sort }) do |_value, sort_proc|
|
29
66
|
@sort_proc = sort_proc
|
30
67
|
end
|
31
|
-
new({particle: :targets })
|
32
|
-
new({particle: :start })
|
33
|
-
new({pre: :start }) do |_value, user_proc|
|
68
|
+
new({ particle: :targets })
|
69
|
+
new({ particle: :start })
|
70
|
+
new({ pre: :start }) do |_value, user_proc|
|
34
71
|
@animation_start_proc = user_proc
|
35
72
|
end
|
36
|
-
new({particle: :stop })
|
37
|
-
new({pre: :stop })
|
73
|
+
new({ particle: :stop })
|
74
|
+
new({ pre: :stop }) do |_value, user_proc|
|
38
75
|
@animation_stop_proc = user_proc
|
39
76
|
end
|
40
|
-
new({particle: :begin })
|
41
|
-
new({particle: :end })
|
42
|
-
new({particle: :duration })
|
43
|
-
new({particle: :mass })
|
44
|
-
new({particle: :damping })
|
45
|
-
new({particle: :stiffness })
|
46
|
-
new({particle: :velocity })
|
47
|
-
new({particle: :repeat })
|
48
|
-
new({particle: :ease })
|
49
|
-
new({particle: :unbind })
|
50
|
-
new({particle: :over })
|
51
|
-
|
77
|
+
new({ particle: :begin })
|
78
|
+
new({ particle: :end })
|
79
|
+
new({ particle: :duration })
|
80
|
+
new({ particle: :mass })
|
81
|
+
new({ particle: :damping })
|
82
|
+
new({ particle: :stiffness })
|
83
|
+
new({ particle: :velocity })
|
84
|
+
new({ particle: :repeat })
|
85
|
+
new({ particle: :ease })
|
86
|
+
new({ particle: :unbind })
|
52
87
|
|
53
|
-
# generator = Genesis.generator
|
54
|
-
#
|
55
|
-
# # touch
|
56
|
-
# generator.build_particle(:touch)
|
57
|
-
# # video
|
58
|
-
# generator.build_particle(:play) do
|
59
|
-
# @atome[:pause] = :false
|
60
|
-
# end
|
61
|
-
# generator.build_particle(:time)
|
62
|
-
# generator.build_particle(:pause) do
|
63
|
-
# @atome[:play] = :false
|
64
|
-
# end
|
65
|
-
# generator.build_particle(:on)
|
66
|
-
# generator.build_particle(:fullscreen)
|
67
|
-
# generator.build_particle(:mute)
|
68
|
-
# # TODO : add the at event to ny particle : (width, left, ...) maybe use monitor particle
|
69
|
-
# # generator.build_particle(:at)
|
70
|
-
# # drag
|
71
|
-
# generator.build_particle(:drag)
|
72
|
-
# generator.build_sanitizer(:drag) do |params|
|
73
|
-
# params = { move: true } if params == true
|
74
|
-
# params
|
75
|
-
# end
|
76
|
-
# # sort
|
77
|
-
# generator.build_particle(:sort) do |_value, sort_proc|
|
78
|
-
# @sort_proc = sort_proc
|
79
|
-
# end
|
80
|
-
# # animation
|
81
|
-
# generator.build_particle(:targets)
|
82
|
-
# generator.build_particle(:start)
|
83
|
-
# generator.build_option(:pre_render_start) do |_value, user_proc|
|
84
|
-
# @animation_start_proc = user_proc
|
85
|
-
# end
|
86
|
-
# generator.build_particle(:stop)
|
87
|
-
# generator.build_option(:pre_render_stop) do |_value, user_proc|
|
88
|
-
# @animation_stop_proc = user_proc
|
89
|
-
# end
|
90
|
-
# generator.build_particle(:begin)
|
91
|
-
# generator.build_particle(:end)
|
92
|
-
# generator.build_particle(:duration)
|
93
|
-
# generator.build_particle(:mass)
|
94
|
-
# generator.build_particle(:damping)
|
95
|
-
# generator.build_particle(:stiffness)
|
96
|
-
# generator.build_particle(:velocity)
|
97
|
-
# generator.build_particle(:repeat)
|
98
|
-
# generator.build_particle(:ease)
|
99
|
-
# generator.build_particle(:unbind)
|
100
|
-
# generator.build_particle(:over)
|
@@ -14,21 +14,3 @@ new({particle: :size }) do |params|
|
|
14
14
|
height(params)
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
18
|
-
|
19
|
-
# generator = Genesis.generator
|
20
|
-
#
|
21
|
-
# generator.build_particle(:width)
|
22
|
-
# generator.build_particle(:height)
|
23
|
-
# generator.build_particle(:size) do |params|
|
24
|
-
# atome_width = atome[:width]
|
25
|
-
# atome_height = atome[:height]
|
26
|
-
# aspect_ratio = atome_width / atome_height
|
27
|
-
# if atome_width > atome_height
|
28
|
-
# width(params)
|
29
|
-
# height(params / aspect_ratio)
|
30
|
-
# else
|
31
|
-
# width(params * aspect_ratio)
|
32
|
-
# height(params)
|
33
|
-
# end
|
34
|
-
# end
|
@@ -1,56 +1,72 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
new({ particle: :
|
4
|
-
new({ sanitizer: :
|
5
|
-
|
6
|
-
|
3
|
+
new({ particle: :attach })
|
4
|
+
new({ sanitizer: :attach }) do |parents_ids|
|
5
|
+
parents_ids = parents_ids if parents_ids.instance_of? Atome
|
6
|
+
parents_ids = [parents_ids] unless parents_ids.instance_of?(Array)
|
7
|
+
parents_ids.each do |parents_id|
|
8
|
+
parents_id = parents_id if parents_id.instance_of? Atome
|
9
|
+
parents_found = grab(parents_id)
|
10
|
+
# TODO : factorise the code below
|
11
|
+
current_type = atome[:type]
|
12
|
+
parents_found.atome[current_type] = [] unless parents_found.atome[current_type]
|
13
|
+
|
14
|
+
# the condition below is needed when user passed a hash instead of the id of the child cf :
|
15
|
+
parent_type_container = if parents_found.atome[current_type].instance_of? Array
|
16
|
+
parents_found.atome[current_type]
|
17
|
+
else
|
18
|
+
[parents_found.atome[current_type][:id]]
|
19
|
+
end
|
20
|
+
# here we add the child into it's parents type container
|
21
|
+
parent_type_container << atome[:id]
|
22
|
+
# TODO : factorise the code above
|
23
|
+
parents_found.atome[:attached] = [] unless parents_found.atome[:attached]
|
24
|
+
parents_found.atome[:attached] << atome[:id]
|
25
|
+
end
|
26
|
+
parents_ids
|
7
27
|
end
|
8
|
-
|
28
|
+
|
29
|
+
new({ particle: :attached })
|
30
|
+
new({ sanitizer: :attached }) do |children_ids|
|
31
|
+
children_ids = children_ids if children_ids.instance_of? Atome
|
32
|
+
children_ids = [children_ids] unless children_ids.instance_of?(Array)
|
9
33
|
children_ids.each do |child_id|
|
10
|
-
child_id = child_id
|
34
|
+
child_id = child_id if child_id.instance_of? Atome
|
11
35
|
child_found = grab(child_id)
|
12
36
|
parents_found = @atome[:id]
|
13
|
-
|
37
|
+
# TODO : factorise the code below
|
38
|
+
child_found_type = child_found.type
|
39
|
+
@atome[child_found_type] = [] unless @atome[child_found_type]
|
40
|
+
|
41
|
+
# the condition below is needed when user passed a hash instead of the id of the child cf :
|
42
|
+
# circle(color: {red: 0, green: 1}) instead of color({id: :the_col}); circle(color: [:the_col])
|
43
|
+
child_type_container = if @atome[child_found_type].instance_of? Array
|
44
|
+
@atome[child_found_type]
|
45
|
+
else
|
46
|
+
[@atome[child_found_type][:id]]
|
47
|
+
end
|
48
|
+
child_type_container << child_id
|
49
|
+
# TODO : factorise the code above
|
14
50
|
child_found.atome[:attach] = [parents_found]
|
15
51
|
end
|
16
52
|
end
|
17
|
-
new({ particle: :type })
|
18
|
-
new({ particle: :children })
|
19
53
|
|
20
|
-
new
|
21
|
-
# TODO factorise the line below and 'sanitized_params' for all particle type of Array
|
22
|
-
params = [params] unless params.instance_of? Array
|
23
|
-
sanitized_params = []
|
24
|
-
params.each do |child_id|
|
25
|
-
child_id = child_id.value if child_id.instance_of? Atome
|
26
|
-
sanitized_params << child_id
|
27
|
-
child_found = grab(child_id)
|
28
|
-
parents_found = @atome[:id]
|
29
|
-
# FIXME : broadcast may malfunction because of the commented line below,
|
30
|
-
# FIXME suite : if uncomment object hierarchy is broken (cf Vie Project)
|
31
|
-
# FIXME : parent child problem may be caused by th eline below
|
32
|
-
child_found.family(parents_found)
|
33
|
-
child_found.atome[:parents] = [parents_found]
|
34
|
-
end
|
35
|
-
sanitized_params
|
36
|
-
end
|
54
|
+
new({ particle: :detached, store: false })
|
37
55
|
|
38
|
-
new({
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
parents_found.atome[:children] << atome[:id]
|
56
|
+
new({ sanitizer: :detached }) do |values|
|
57
|
+
if values.instance_of? Array
|
58
|
+
values.each do |value|
|
59
|
+
detach_atome(value)
|
60
|
+
end
|
61
|
+
else
|
62
|
+
detach_atome(values)
|
63
|
+
# we sanitize the values so it always return an array to the renderer
|
64
|
+
values = [values]
|
48
65
|
end
|
49
|
-
|
66
|
+
values
|
50
67
|
end
|
51
68
|
|
52
|
-
new({ particle: :
|
53
|
-
new({ particle: :link })
|
69
|
+
new({ particle: :type })
|
54
70
|
new({ particle: :id })
|
55
71
|
new({ sanitizer: :id }) do |params|
|
56
72
|
if @atome[:id] != params
|
@@ -62,19 +78,7 @@ new({ sanitizer: :id }) do |params|
|
|
62
78
|
end
|
63
79
|
new({ particle: :name })
|
64
80
|
new({ particle: :active })
|
65
|
-
|
66
|
-
new({ pre: :attach }) do |parents_ids|
|
67
|
-
parents_ids.each do |parents_id|
|
68
|
-
parents_id = parents_id.value if parents_id.instance_of? Atome
|
69
|
-
parents_found = grab(parents_id)
|
70
|
-
family(parents_id)
|
71
|
-
parents_found.atome[:attached] = [] unless parents_found.atome[:attached]
|
72
|
-
parents_found.atome[:attached] << atome[:id]
|
73
|
-
end
|
74
|
-
end
|
75
|
-
new({ particle: :detached }) do |value|
|
76
|
-
attached.value.delete(value)
|
77
|
-
end
|
81
|
+
|
78
82
|
new({ particle: :intricate, type: :array })
|
79
83
|
new({ particle: :clones }) do |clones_found|
|
80
84
|
clones_found.each_with_index do |clone_found, index|
|
@@ -30,6 +30,7 @@ new({ pre: :style }) do |styles_send, _user_proc|
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
new({ particle: :hide })
|
33
|
+
|
33
34
|
new({ particle: :remove }) do |particle_to_remove|
|
34
35
|
case particle_to_remove
|
35
36
|
when :color
|
@@ -43,62 +44,10 @@ new({ particle: :remove }) do |particle_to_remove|
|
|
43
44
|
end
|
44
45
|
new({ particle: :classes }) do |value|
|
45
46
|
Universe.classes[value] ||= []
|
46
|
-
Universe.classes[value] |= [id
|
47
|
+
Universe.classes[value] |= [id]
|
47
48
|
end
|
48
49
|
new({ particle: :remove_classes }) do |value|
|
49
50
|
# Universe.classes.delete(value)
|
50
|
-
Universe.classes[value].delete(id
|
51
|
+
Universe.classes[value].delete(id)
|
51
52
|
end
|
52
53
|
new ({particle: :opacity})
|
53
|
-
|
54
|
-
# generator = Genesis.generator
|
55
|
-
#
|
56
|
-
# generator.build_particle(:red) do
|
57
|
-
# # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
|
58
|
-
# self
|
59
|
-
# end
|
60
|
-
# generator.build_particle(:green) do
|
61
|
-
# # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
|
62
|
-
# self
|
63
|
-
# end
|
64
|
-
# generator.build_particle(:blue) do
|
65
|
-
# # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
|
66
|
-
# self
|
67
|
-
# end
|
68
|
-
# generator.build_particle(:alpha) do
|
69
|
-
# # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
|
70
|
-
# self
|
71
|
-
# end
|
72
|
-
# generator.build_particle(:diffusion) do
|
73
|
-
# # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
|
74
|
-
# self
|
75
|
-
# end
|
76
|
-
# generator.build_particle(:visual)
|
77
|
-
# generator.build_particle(:overflow)
|
78
|
-
# generator.build_particle(:edit)
|
79
|
-
# generator.build_particle(:style)
|
80
|
-
# generator.build_option(:pre_render_style) do |styles_send, _user_proc|
|
81
|
-
# styles_send.each do |particle_send, value|
|
82
|
-
# send(particle_send, value)
|
83
|
-
# end
|
84
|
-
# end
|
85
|
-
# generator.build_particle(:hide)
|
86
|
-
# generator.build_particle(:remove) do |particle_to_remove|
|
87
|
-
# case particle_to_remove
|
88
|
-
# when :color
|
89
|
-
# send(particle_to_remove, :black)
|
90
|
-
# when :shadow
|
91
|
-
# # TODO : code to write
|
92
|
-
# puts 'code to write'
|
93
|
-
# else
|
94
|
-
# particle_to_remove_decision(particle_to_remove)
|
95
|
-
# end
|
96
|
-
# end
|
97
|
-
# generator.build_particle(:classes) do |value|
|
98
|
-
# Universe.classes[value] ||= []
|
99
|
-
# Universe.classes[value] |= [id.value]
|
100
|
-
# end
|
101
|
-
# generator.build_particle(:remove_classes) do |value|
|
102
|
-
# # Universe.classes.delete(value)
|
103
|
-
# Universe.classes[value].delete(id.value)
|
104
|
-
# end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
new({ particle: :left }) do |_params, user_proc|
|
3
|
+
new({ particle: :left, type: :integer }) do |_params, user_proc|
|
4
4
|
instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
5
5
|
end
|
6
|
-
new({ particle: :right })
|
7
|
-
new({ particle: :top })
|
8
|
-
new({ particle: :bottom })
|
9
|
-
new({ particle: :rotate })
|
10
|
-
new({ particle: :direction })
|
11
|
-
new({ particle: :center })
|
12
|
-
new ({particle: :depth})
|
6
|
+
new({ particle: :right, type: :integer })
|
7
|
+
new({ particle: :top, type: :integer })
|
8
|
+
new({ particle: :bottom, type: :integer })
|
9
|
+
new({ particle: :rotate, type: :integer })
|
10
|
+
new({ particle: :direction, type: :string })
|
11
|
+
new({ particle: :center, type: :string})
|
12
|
+
new ({particle: :depth, type: :integer})
|
13
13
|
|
@@ -1,21 +1,62 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
new({particle: :
|
5
|
-
new({particle: :
|
6
|
-
new({particle: :run }) do |params|
|
3
|
+
new({ particle: :renderers })
|
4
|
+
new({ particle: :code })
|
5
|
+
new({ particle: :run }) do |params|
|
7
6
|
code_found = @atome[:code]
|
8
7
|
instance_exec(params, &code_found) if code_found.is_a?(Proc)
|
9
8
|
end
|
10
|
-
new({particle: :broadcast })
|
11
|
-
new({particle: :data })
|
12
|
-
new({particle: :additional })
|
13
|
-
new({particle: :delete }) do |params|
|
9
|
+
new({ particle: :broadcast })
|
10
|
+
new({ particle: :data })
|
11
|
+
# new({particle: :additional })
|
12
|
+
new({ particle: :delete, render: false }) do |params, &user_proc|
|
14
13
|
if params == true
|
15
|
-
# the
|
16
|
-
|
14
|
+
# We use the tag persistent to exclude color of system object and other default colors
|
15
|
+
unless tag && tag[:persistent]
|
16
|
+
# now we detach the atome from it's parent
|
17
|
+
# now we init rendering
|
18
|
+
rendering(:delete, params, &user_proc)
|
19
|
+
# the machine delete the current atome from the universe
|
20
|
+
id_found = @atome[:id]
|
21
|
+
Universe.delete(id_found)
|
22
|
+
parents_found = @atome[:attach]
|
23
|
+
parents_found.each do |parent_id_found|
|
24
|
+
parent_found = grab(parent_id_found)
|
25
|
+
next unless parent_found
|
26
|
+
|
27
|
+
previous_parent_type_child = parent_found.atome[type]
|
28
|
+
previous_parent_attached_child = parent_found.atome[:attached]
|
29
|
+
# FIXME : find why we can't use delete on the array nut must use an iterator
|
30
|
+
new_type_container = []
|
31
|
+
previous_parent_type_child.each do |atome_found|
|
32
|
+
new_type_container << atome_found unless atome_found == id_found
|
33
|
+
end
|
34
|
+
parent_found.atome[type] = new_type_container
|
35
|
+
# FIXME : find why we can't use delete on the array nut must use an iterator
|
36
|
+
new_attached_container = []
|
37
|
+
previous_parent_attached_child.each do |atome_found|
|
38
|
+
new_attached_container << atome_found unless atome_found == id_found
|
39
|
+
end
|
40
|
+
parent_found.atome[:attached] = new_attached_container
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
elsif params == :materials
|
47
|
+
# this will delete any child with a visual type cf : images, shapes, videos, ...
|
48
|
+
materials.each do |atome_id_found|
|
49
|
+
grab(atome_id_found).delete(true)
|
50
|
+
end
|
17
51
|
elsif params[:id]
|
18
52
|
# the machine try to an atome by it's ID and delete it
|
53
|
+
# We check for recursive, if found we delete attached atomes too
|
54
|
+
if params[:recursive] == true
|
55
|
+
materials_found = grab(params[:id]).materials
|
56
|
+
materials_found.each do |atome_id_found|
|
57
|
+
grab(atome_id_found).delete(true)
|
58
|
+
end
|
59
|
+
end
|
19
60
|
grab(params[:id]).delete(true)
|
20
61
|
elsif params.instance_of? Hash
|
21
62
|
# the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
|
@@ -24,13 +65,30 @@ new({particle: :delete }) do |params|
|
|
24
65
|
atome[param][value] = nil
|
25
66
|
end
|
26
67
|
else
|
27
|
-
# the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
|
28
68
|
send(params, 0)
|
29
69
|
end
|
30
70
|
end
|
31
|
-
|
32
|
-
new({particle: :
|
33
|
-
new({
|
71
|
+
|
72
|
+
new({ particle: :clear })
|
73
|
+
new({ post: :clear }) do
|
74
|
+
|
75
|
+
attached_found = []
|
76
|
+
@atome[:attached].each do |attached_id_found|
|
77
|
+
attached_found << attached_id_found
|
78
|
+
end
|
79
|
+
attached_found.each do |child_id_found|
|
80
|
+
# puts "===>> should be deleted : #{child_id_found}"
|
81
|
+
child_found = grab(child_id_found)
|
82
|
+
|
83
|
+
child_found.delete(true) if child_found
|
84
|
+
|
85
|
+
# Universe.delete(child_id_found)
|
86
|
+
end
|
87
|
+
# attached([])
|
88
|
+
# puts "params are => #{id}"
|
89
|
+
end
|
90
|
+
new({ particle: :path })
|
91
|
+
new({ particle: :schedule }) do |date, proc|
|
34
92
|
date = date.to_s
|
35
93
|
delimiters = [',', ' ', ':', '-']
|
36
94
|
format_date = date.split(Regexp.union(delimiters))
|
@@ -38,63 +96,19 @@ new({particle: :schedule }) do |date, proc|
|
|
38
96
|
send("#{renderer}_schedule", format_date, &proc)
|
39
97
|
end
|
40
98
|
end
|
41
|
-
new({particle: :read }) do |file, proc|
|
99
|
+
new({ particle: :read }) do |file, proc|
|
42
100
|
Universe.renderer_list.each do |renderer|
|
43
101
|
send("#{renderer}_reader", file, &proc)
|
44
102
|
end
|
45
103
|
end
|
46
|
-
new({particle: :cursor })
|
47
|
-
new({particle: :preset })
|
48
|
-
new({particle: :relations,type: :hash
|
104
|
+
new({ particle: :cursor })
|
105
|
+
new({ particle: :preset })
|
106
|
+
new({ particle: :relations, type: :hash })
|
107
|
+
new({ particle: :tag, render: false, type: :hash })
|
108
|
+
new({ particle: :batch, render: false })
|
109
|
+
new({ sanitizer: :batch }) do |params|
|
110
|
+
Batch.new(params)
|
111
|
+
# puts "index msg : we must treat the batch : #{params}"
|
49
112
|
|
113
|
+
end
|
50
114
|
|
51
|
-
# generator = Genesis.generator
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
# generator.build_particle(:renderers)
|
57
|
-
# generator.build_particle(:code)
|
58
|
-
# generator.build_particle(:run) do |params|
|
59
|
-
# code_found = @atome[:code]
|
60
|
-
# instance_exec(params, &code_found) if code_found.is_a?(Proc)
|
61
|
-
# end
|
62
|
-
# generator.build_particle(:broadcast)
|
63
|
-
# generator.build_particle(:additional)
|
64
|
-
# generator.build_particle(:data)
|
65
|
-
# generator.build_particle(:delete) do |params|
|
66
|
-
# if params == true
|
67
|
-
# # the machine delete the current atome
|
68
|
-
# Universe.delete(@atome[:id])
|
69
|
-
# elsif params[:id]
|
70
|
-
# # the machine try to an atome by it's ID and delete it
|
71
|
-
# grab(params[:id]).delete(true)
|
72
|
-
# elsif params.instance_of? Hash
|
73
|
-
# # the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
|
74
|
-
# # with id my_monitor
|
75
|
-
# params.each do |param, value|
|
76
|
-
# atome[param][value] = nil
|
77
|
-
# end
|
78
|
-
# else
|
79
|
-
# # the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
|
80
|
-
# send(params, 0)
|
81
|
-
# end
|
82
|
-
# end
|
83
|
-
# generator.build_particle(:clear)
|
84
|
-
# generator.build_particle(:path)
|
85
|
-
# generator.build_particle(:schedule) do |date, proc|
|
86
|
-
# date = date.to_s
|
87
|
-
# delimiters = [',', ' ', ':', '-']
|
88
|
-
# format_date = date.split(Regexp.union(delimiters))
|
89
|
-
# Universe.renderer_list.each do |renderer|
|
90
|
-
# send("#{renderer}_schedule", format_date, &proc)
|
91
|
-
# end
|
92
|
-
# end
|
93
|
-
# generator.build_particle(:read) do |file, proc|
|
94
|
-
# Universe.renderer_list.each do |renderer|
|
95
|
-
# send("#{renderer}_reader", file, &proc)
|
96
|
-
# end
|
97
|
-
# end
|
98
|
-
# generator.build_particle(:cursor)
|
99
|
-
# generator.build_particle(:preset)
|
100
|
-
# generator.build_particle(:relations, { type: :hash })
|
@@ -21,7 +21,9 @@ class Atome
|
|
21
21
|
|
22
22
|
# we add the new method to the particle's collection of methods
|
23
23
|
Universe.add_to_particle_list(particle_name, type)
|
24
|
-
# the line below create an empty particle method for each renderer, eg: browser_left,
|
24
|
+
# the line below create an empty particle method for each renderer, eg: browser_left, headless_width, ...
|
25
|
+
# the line below create the corresponding particle method for Batch class
|
26
|
+
particle_method_for_batch(particle_name)
|
25
27
|
auto_render_generator(particle_name) if render
|
26
28
|
new_particle(particle_name, store, render, &particle_proc)
|
27
29
|
# the line below create all alternatives methods such as create 'method='
|
@@ -29,17 +31,25 @@ class Atome
|
|
29
31
|
end
|
30
32
|
|
31
33
|
def build_atome(atome_name, &atome_proc)
|
34
|
+
# TODO : atomes should tell the Universe if they're parts of materials category or else
|
32
35
|
# we add the new method to the atome's collection of methods
|
33
36
|
Universe.add_to_atome_list(atome_name)
|
37
|
+
# the method below generate Atome method creation at Object level,
|
38
|
+
# so a syntax like : 'text(:hello)' is possible instead of the mandatory : grab(:view).text(:hello)
|
39
|
+
atome_method_for_object(atome_name)
|
40
|
+
# the line below create the corresponding atome method for Batch class
|
41
|
+
atome_method_for_batch(atome_name)
|
34
42
|
unless Essentials.default_params[atome_name]
|
35
43
|
# if it doesn't exist
|
36
|
-
# we create default params for the new created atome, adding the hash to : module essential
|
37
|
-
Essentials.new_default_params(atome_name => { type: atome_name,
|
44
|
+
# we create default params for the new created atome, adding the hash to : module essential, @default_params
|
45
|
+
Essentials.new_default_params(atome_name => { type: atome_name, attach: [:view] })
|
38
46
|
end
|
39
47
|
|
40
|
-
# the line below create an empty atome method for each renderer, eg:
|
48
|
+
# the line below create an empty atome method for each renderer, eg: browser_shape, headless_color, ...
|
41
49
|
auto_render_generator(atome_name)
|
50
|
+
# create_atome(atome_name)
|
42
51
|
new_atome(atome_name, &atome_proc)
|
52
|
+
|
43
53
|
end
|
44
54
|
|
45
55
|
def auto_render_generator(element)
|
@@ -57,6 +67,7 @@ class Atome
|
|
57
67
|
end
|
58
68
|
|
59
69
|
def build_option(method_name, &method_proc)
|
70
|
+
#puts "2 => #{method_name}"
|
60
71
|
Universe.add_optional_method(method_name.to_sym, &method_proc)
|
61
72
|
end
|
62
73
|
end
|