atome 0.5.3.8.1 → 0.5.4.0.9
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 +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
|