atome 0.5.3.8.8 → 0.5.4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +52 -17
  3. data/app_builder_helpers/Rakefile +20 -3
  4. data/exe/atome +33 -1
  5. data/lib/atome/atome.rb +43 -57
  6. data/lib/atome/extensions/atome.rb +82 -52
  7. data/lib/atome/extensions/mathematic.rb +8 -12
  8. data/lib/atome/extensions/matrix.rb +138 -210
  9. data/lib/atome/genesis/generators/atome.rb +8 -134
  10. data/lib/atome/genesis/generators/communication.rb +0 -1
  11. data/lib/atome/genesis/generators/effect.rb +0 -6
  12. data/lib/atome/genesis/generators/event.rb +64 -77
  13. data/lib/atome/genesis/generators/geometry.rb +0 -18
  14. data/lib/atome/genesis/generators/identity.rb +6 -33
  15. data/lib/atome/genesis/generators/material.rb +37 -53
  16. data/lib/atome/genesis/generators/utility.rb +63 -58
  17. data/lib/atome/genesis/genesis.rb +8 -0
  18. data/lib/atome/genesis/sparkle.rb +35 -16
  19. data/lib/atome/helpers/callbacks.rb +47 -1
  20. data/lib/atome/helpers/essentials.rb +1 -1
  21. data/lib/atome/helpers/sanitizer.rb +0 -10
  22. data/lib/atome/helpers/utilities.rb +74 -28
  23. data/lib/atome/kernel/batch.rb +13 -35
  24. data/lib/atome/kernel/universe.rb +2 -0
  25. data/lib/atome/presets/atome.rb +4 -12
  26. data/lib/atome/renderers/browser/atome.rb +12 -7
  27. data/lib/atome/renderers/browser/browser.rb +2 -0
  28. data/lib/atome/renderers/browser/event.rb +18 -0
  29. data/lib/atome/renderers/browser/helpers/browser_helper.rb +24 -2
  30. data/lib/atome/renderers/browser/helpers/drag_helper.rb +13 -0
  31. data/lib/atome/renderers/browser/helpers/drop_helper.rb +13 -0
  32. data/lib/atome/renderers/browser/helpers/event_helper.rb +16 -11
  33. data/lib/atome/renderers/browser/helpers/over_helper.rb +13 -0
  34. data/lib/atome/renderers/browser/helpers/text_helper.rb +5 -1
  35. data/lib/atome/renderers/browser/spatial.rb +3 -2
  36. data/lib/atome/renderers/browser/utility.rb +7 -7
  37. data/lib/atome/version.rb +2 -2
  38. data/lib/atome.rb +1 -0
  39. data/sig/atome.rbs +16 -0
  40. data/sig/batch.rbs +7 -0
  41. data/sig/browser_helper.rbs +14 -0
  42. data/sig/matrix.rbs +5 -0
  43. data/sig/object.rbs +3 -0
  44. data/vendor/assets/aui.rb +5 -0
  45. data/vendor/assets/src/index.html +15 -3
  46. data/vendor/assets/src/js/atome/atome.js +1 -1
  47. data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +1 -1
  48. data/vendor/assets/src/js/atome/atome_helpers/atome_communication.js +40 -0
  49. data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +40 -3
  50. data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +12 -0
  51. data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +166 -0
  52. data/vendor/assets/src/js/atome/atome_helpers/atome_file.js +6 -1
  53. data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +43 -0
  54. data/vendor/assets/src/medias/rubies/demos.rb +63 -0
  55. data/vendor/assets/src/medias/rubies/examples/add.rb +1 -1
  56. data/vendor/assets/src/medias/rubies/examples/animation.rb +1 -1
  57. data/vendor/assets/src/medias/rubies/examples/atome_new.rb +1 -1
  58. data/vendor/assets/src/medias/rubies/examples/attach.rb +10 -10
  59. data/vendor/assets/src/medias/rubies/examples/attached.rb +2 -3
  60. data/vendor/assets/src/medias/rubies/examples/batch.rb +17 -0
  61. data/vendor/assets/src/medias/rubies/examples/blur.rb +2 -2
  62. data/vendor/assets/src/medias/rubies/examples/box.rb +2 -2
  63. data/vendor/assets/src/medias/rubies/examples/code.rb +1 -1
  64. data/vendor/assets/src/medias/rubies/examples/color.rb +3 -3
  65. data/vendor/assets/src/medias/rubies/examples/delete.rb +17 -1
  66. data/vendor/assets/src/medias/rubies/examples/detached.rb +3 -3
  67. data/vendor/assets/src/medias/rubies/examples/drag.rb +52 -1
  68. data/vendor/assets/src/medias/rubies/examples/drop.rb +26 -0
  69. data/vendor/assets/src/medias/rubies/examples/fullscreen.rb +1 -1
  70. data/vendor/assets/src/medias/rubies/examples/markers.rb +1 -1
  71. data/vendor/assets/src/medias/rubies/examples/matrix.rb +102 -0
  72. data/vendor/assets/src/medias/rubies/examples/matrix_changes.rb +483 -0
  73. data/vendor/assets/src/medias/rubies/examples/matrix_simple.rb +32 -0
  74. data/vendor/assets/src/medias/rubies/examples/monitoring.rb +1 -1
  75. data/vendor/assets/src/medias/rubies/examples/mute.rb +1 -1
  76. data/vendor/assets/src/medias/rubies/examples/on.rb +1 -1
  77. data/vendor/assets/src/medias/rubies/examples/over.rb +6 -4
  78. data/vendor/assets/src/medias/rubies/examples/pause.rb +1 -1
  79. data/vendor/assets/src/medias/rubies/examples/physical.rb +19 -0
  80. data/vendor/assets/src/medias/rubies/examples/play.rb +1 -1
  81. data/vendor/assets/src/medias/rubies/examples/repeat.rb +3 -2
  82. data/vendor/assets/src/medias/rubies/examples/shadow.rb +1 -1
  83. data/vendor/assets/src/medias/rubies/examples/sort.rb +3 -4
  84. data/vendor/assets/src/medias/rubies/examples/tags.rb +10 -0
  85. data/vendor/assets/src/medias/rubies/examples/text.rb +4 -4
  86. data/vendor/assets/src/medias/rubies/examples/time.rb +2 -2
  87. data/vendor/assets/src/medias/rubies/examples/vector.rb +31 -0
  88. data/vendor/assets/src/medias/rubies/examples/video.rb +8 -4
  89. data/vendor/assets/src/medias/rubies/{examples → unstable}/_2_solve.rb +1 -1
  90. data/vendor/assets/src/medias/rubies/{examples → unstable}/_audio.rb +1 -1
  91. data/vendor/assets/src/medias/rubies/{examples → unstable}/_dataset.rb +4 -4
  92. data/vendor/assets/src/medias/rubies/{examples → unstable}/_table2.rb +2 -2
  93. data/vendor/assets/src/medias/rubies/{examples → unstable}/_vie.rb +2 -2
  94. data/vendor/assets/src/utilities/mode.rb +0 -0
  95. data/vendor/assets/src-tauri/tauri.conf.json +2 -2
  96. metadata +33 -14
  97. data/vendor/assets/src/medias/rubies/examples/table.rb +0 -479
  98. /data/vendor/assets/src/medias/rubies/{examples → unstable}/!run.rb +0 -0
  99. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_attach.rb +0 -0
  100. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_matrix.rb +0 -0
  101. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_os.rb +0 -0
  102. /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
- new({ sanitizer: :drag }) do |params|
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
- new({particle: :sort }) do |_value, sort_proc|
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 }) do |_value, user_proc|
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
@@ -2,10 +2,10 @@
2
2
 
3
3
  new({ particle: :attach })
4
4
  new({ sanitizer: :attach }) do |parents_ids|
5
- parents_ids = parents_ids.value if parents_ids.instance_of? Atome
5
+ parents_ids = parents_ids if parents_ids.instance_of? Atome
6
6
  parents_ids = [parents_ids] unless parents_ids.instance_of?(Array)
7
7
  parents_ids.each do |parents_id|
8
- parents_id = parents_id.value if parents_id.instance_of? Atome
8
+ parents_id = parents_id if parents_id.instance_of? Atome
9
9
  parents_found = grab(parents_id)
10
10
  # TODO : factorise the code below
11
11
  current_type = atome[:type]
@@ -23,23 +23,19 @@ new({ sanitizer: :attach }) do |parents_ids|
23
23
  parents_found.atome[:attached] = [] unless parents_found.atome[:attached]
24
24
  parents_found.atome[:attached] << atome[:id]
25
25
  end
26
- # atome[:parents]=atome[:parents] | parents_ids
27
- # atome[:parents].concat(parents_ids).uni
28
- # puts "==> #{id} : #{self}"
29
- # puts "====> id : #{id}, #{parents_ids} #{atome[:parents]}, #{atome[:parents].class} : #{atome[:parents].class}"
30
26
  parents_ids
31
27
  end
32
28
 
33
29
  new({ particle: :attached })
34
30
  new({ sanitizer: :attached }) do |children_ids|
35
- children_ids = children_ids.value if children_ids.instance_of? Atome
31
+ children_ids = children_ids if children_ids.instance_of? Atome
36
32
  children_ids = [children_ids] unless children_ids.instance_of?(Array)
37
33
  children_ids.each do |child_id|
38
- child_id = child_id.value if child_id.instance_of? Atome
34
+ child_id = child_id if child_id.instance_of? Atome
39
35
  child_found = grab(child_id)
40
36
  parents_found = @atome[:id]
41
37
  # TODO : factorise the code below
42
- child_found_type = child_found.type.value
38
+ child_found_type = child_found.type
43
39
  @atome[child_found_type] = [] unless @atome[child_found_type]
44
40
 
45
41
  # the condition below is needed when user passed a hash instead of the id of the child cf :
@@ -51,8 +47,6 @@ new({ sanitizer: :attached }) do |children_ids|
51
47
  end
52
48
  child_type_container << child_id
53
49
  # TODO : factorise the code above
54
-
55
- # child_found.family(parents_found)
56
50
  child_found.atome[:attach] = [parents_found]
57
51
  end
58
52
  end
@@ -67,33 +61,12 @@ new({ sanitizer: :detached }) do |values|
67
61
  else
68
62
  detach_atome(values)
69
63
  # we sanitize the values so it always return an array to the renderer
70
- values=[values]
64
+ values = [values]
71
65
  end
72
66
  values
73
67
  end
74
68
 
75
69
  new({ particle: :type })
76
-
77
- # new({ particle: :parents })
78
- # new({ sanitizer: :parents }) do |params|
79
- # params = [params] unless params.instance_of? Array
80
- # sanitized_params = []
81
- # params.each do |parents_id|
82
- # parents_id = parents_id.value if parents_id.instance_of? Atome
83
- # sanitized_params << parents_id
84
- # parents_found = grab(parents_id)
85
- # # TODO : factorise the code below
86
- # current_type = atome[:type]
87
- # parents_found.atome[current_type] = [] unless parents_found.atome[current_type]
88
- # parents_found.atome[current_type] << atome[:id]
89
- # # TODO : factorise the code above
90
- # # TODO : check if we can remove the family
91
- # family(parents_id)
92
- # end
93
- # sanitized_params
94
- # end
95
-
96
- # new({ particle: :family })
97
70
  new({ particle: :id })
98
71
  new({ sanitizer: :id }) do |params|
99
72
  if @atome[:id] != params
@@ -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,45 @@ 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.value]
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.value)
51
+ Universe.classes[value].delete(id)
51
52
  end
52
53
  new ({particle: :opacity})
53
54
 
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
55
+
56
+ # vector shape
57
+ new({particle: :definition})
58
+
59
+ new({ browser: :definition, type: :string }) do |value, _user_proc|
60
+ # alert "value is #{value}"
61
+ target=id
62
+ `
63
+
64
+ var divElement = document.querySelector('#'+#{target});;
65
+
66
+ // select the first svg tag inside the div
67
+ var svgElement = divElement.querySelector('svg');
68
+
69
+ // delete the first svg tag inside the div if it exist
70
+ if (svgElement) {
71
+ divElement.removeChild(svgElement);
72
+ }
73
+
74
+
75
+ let svg_content='<svg style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">'+#{value}+'</svg>'
76
+ let svgContainer = document.getElementById(#{target});
77
+ let parser = new DOMParser();
78
+ let svgDoc = parser.parseFromString(svg_content, "image/svg+xml");
79
+ let importedSVG = svgDoc.getElementsByTagName("svg")[0];
80
+ importedSVG.style.width = "100%";
81
+ importedSVG.style.height = "100%";
82
+ let elements = importedSVG.getElementsByTagName("path");
83
+
84
+ svgContainer.appendChild(importedSVG);
85
+
86
+ `
87
+
88
+ end
@@ -9,16 +9,40 @@ end
9
9
  new({ particle: :broadcast })
10
10
  new({ particle: :data })
11
11
  # new({particle: :additional })
12
- new({ particle: :delete }) do |params|
12
+ new({ particle: :delete, render: false }) do |params, &user_proc|
13
13
  if params == true
14
- # now we detach the atome from it's parent
15
- parents_found = @atome[:attach]
16
- parents_found.each do |parent_found|
17
- grab(parent_found).detached(@atome[:id])
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
+
18
44
  end
19
45
 
20
- # the machine delete the current atome from the universe
21
- Universe.delete(@atome[:id])
22
46
  elsif params == :materials
23
47
  # this will delete any child with a visual type cf : images, shapes, videos, ...
24
48
  materials.each do |atome_id_found|
@@ -26,6 +50,13 @@ new({ particle: :delete }) do |params|
26
50
  end
27
51
  elsif params[:id]
28
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
29
60
  grab(params[:id]).delete(true)
30
61
  elsif params.instance_of? Hash
31
62
  # the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
@@ -34,11 +65,28 @@ new({ particle: :delete }) do |params|
34
65
  atome[param][value] = nil
35
66
  end
36
67
  else
37
- # the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
38
68
  send(params, 0)
39
69
  end
40
70
  end
71
+
41
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
42
90
  new({ particle: :path })
43
91
  new({ particle: :schedule }) do |date, proc|
44
92
  date = date.to_s
@@ -56,54 +104,11 @@ end
56
104
  new({ particle: :cursor })
57
105
  new({ particle: :preset })
58
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}"
112
+
113
+ end
59
114
 
60
- # generator = Genesis.generator
61
- #
62
- #
63
- #
64
- #
65
- # generator.build_particle(:renderers)
66
- # generator.build_particle(:code)
67
- # generator.build_particle(:run) do |params|
68
- # code_found = @atome[:code]
69
- # instance_exec(params, &code_found) if code_found.is_a?(Proc)
70
- # end
71
- # generator.build_particle(:broadcast)
72
- # generator.build_particle(:additional)
73
- # generator.build_particle(:data)
74
- # generator.build_particle(:delete) do |params|
75
- # if params == true
76
- # # the machine delete the current atome
77
- # Universe.delete(@atome[:id])
78
- # elsif params[:id]
79
- # # the machine try to an atome by it's ID and delete it
80
- # grab(params[:id]).delete(true)
81
- # elsif params.instance_of? Hash
82
- # # the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
83
- # # with id my_monitor
84
- # params.each do |param, value|
85
- # atome[param][value] = nil
86
- # end
87
- # else
88
- # # the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
89
- # send(params, 0)
90
- # end
91
- # end
92
- # generator.build_particle(:clear)
93
- # generator.build_particle(:path)
94
- # generator.build_particle(:schedule) do |date, proc|
95
- # date = date.to_s
96
- # delimiters = [',', ' ', ':', '-']
97
- # format_date = date.split(Regexp.union(delimiters))
98
- # Universe.renderer_list.each do |renderer|
99
- # send("#{renderer}_schedule", format_date, &proc)
100
- # end
101
- # end
102
- # generator.build_particle(:read) do |file, proc|
103
- # Universe.renderer_list.each do |renderer|
104
- # send("#{renderer}_reader", file, &proc)
105
- # end
106
- # end
107
- # generator.build_particle(:cursor)
108
- # generator.build_particle(:preset)
109
- # generator.build_particle(:relations, { type: :hash })
@@ -22,6 +22,8 @@ class Atome
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
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='
@@ -32,6 +34,11 @@ class Atome
32
34
  # TODO : atomes should tell the Universe if they're parts of materials category or else
33
35
  # we add the new method to the atome's collection of methods
34
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)
35
42
  unless Essentials.default_params[atome_name]
36
43
  # if it doesn't exist
37
44
  # we create default params for the new created atome, adding the hash to : module essential, @default_params
@@ -60,6 +67,7 @@ class Atome
60
67
  end
61
68
 
62
69
  def build_option(method_name, &method_proc)
70
+ #puts "2 => #{method_name}"
63
71
  Universe.add_optional_method(method_name.to_sym, &method_proc)
64
72
  end
65
73
  end
@@ -18,51 +18,61 @@ end
18
18
  # now let's get the default render engine
19
19
  default_render = Essentials.default_params[:render_engines]
20
20
 
21
+
22
+ def atome_infos
23
+ puts "atome version: #{Atome::VERSION}"
24
+ # puts "application identity: #{Universe.app_identity}"
25
+ puts "application identity: #{Atome::aui}"
26
+ # puts "application mode: #{Atome.mode}"
27
+ puts "host framework: #{$host}"
28
+ puts "script mode: #{Universe.current_machine}"
29
+ puts "user: #{Universe.current_user}"
30
+ puts "server: #{Universe.current_server}"
31
+ end
32
+
21
33
  Universe.current_user = :jeezs
22
- puts "application identity: #{Universe.app_identity}"
23
- puts "atome version: #{Atome::VERSION}"
24
- puts "current host: #{Universe.current_machine}"
25
- puts "current user: #{Universe.current_user}"
26
- puts "current server: #{Universe.current_server}"
34
+
35
+
36
+ atome_infos
27
37
 
28
38
  Atome.new(
29
- { element: { renderers: [], id: :eDen, type: :element} }
39
+ { element: { renderers: [], id: :eDen, type: :element , tag: {system: true}} }
30
40
  )
31
41
 
32
42
  Atome.new(
33
- { element: { renderers: [], id: :user_view, type: :element,
34
- attach: [:eDen] } }
43
+ { element: { renderers: [], id: :user_view, type: :element, tag: {system: true},
44
+ attach: [:eDen] } }
35
45
  )
36
46
 
37
47
  # color creation
38
48
  Atome.new(
39
- { color: { renderers: default_render, id: :view_color, type: :color,
49
+ { color: { renderers: default_render, id: :view_color, type: :color,tag: ({persistent: true}),
40
50
  red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } }
41
51
  )
42
52
 
43
53
  Atome.new(
44
- { color: { renderers: default_render, id: :shape_color, type: :color,
54
+ { color: { renderers: default_render, id: :shape_color, type: :color,tag: ({persistent: true}),
45
55
  red: 0.4, green: 0.4, blue: 0.4, alpha: 1 } }
46
56
  )
47
57
 
48
58
  Atome.new(
49
- { color: { renderers: default_render, id: :box_color, type: :color,
59
+ { color: { renderers: default_render, id: :box_color, type: :color,tag: ({persistent: true}),
50
60
  red: 0.5, green: 0.5, blue: 0.5, alpha: 1 } }
51
61
  )
52
62
 
53
63
  Atome.new(
54
- { color: { renderers: default_render, id: :text_color, type: :color,
64
+ { color: { renderers: default_render, id: :text_color, type: :color,tag: ({persistent: true}),
55
65
  red: 0.3, green: 0.3, blue: 0.3, alpha: 1 } }
56
66
  )
57
67
 
58
68
  Atome.new(
59
- { color: { renderers: default_render, id: :circle_color, type: :color,
69
+ { color: { renderers: default_render, id: :circle_color, type: :color,tag: ({persistent: true}),
60
70
  red: 0.6, green: 0.6, blue: 0.6, alpha: 1 } }
61
71
  )
62
72
 
63
73
  Atome.new(
64
74
 
65
- { color: { renderers: default_render, id: :matrix_color, type: :color,
75
+ { color: { renderers: default_render, id: :matrix_color, type: :color,tag: ({persistent: true}),
66
76
  left: 0, top: 0, red: 0.7, green: 0.7, blue: 0.7, alpha: 1, diffusion: :linear } }
67
77
  )
68
78
 
@@ -70,16 +80,25 @@ Atome.new(
70
80
  # the black_matter is used to store un materialized atomes
71
81
  Atome.new(
72
82
  { shape: { renderers: default_render, id: :black_matter, type: :shape, attach: [:user_view],
73
- left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0, overflow: :hidden
83
+ left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0, overflow: :hidden, tag: {system: true}
74
84
  } })
85
+
75
86
  # view port
76
87
  Atome.new(
77
- { shape: { renderers: default_render, id: :view, type: :shape, attach: [:user_view],
88
+ { shape: { renderers: default_render, id: :view, type: :shape, attach: [:user_view], tag: {system: true},
78
89
  attached: :view_color, left: 0, right: 0, top: 0, bottom: 0, width: :auto, height: :auto, overflow: :auto,
79
90
  }
80
91
  }
81
92
  )
82
93
 
94
+ #unreal port
95
+ Atome.new(
96
+ { shape: { renderers: default_render, id: :intuition, type: :shape, attach: [:user_view], tag: {system: true},
97
+ left: 0, top: 0, width: 0, height: 0, overflow: :visible,
98
+ }
99
+ }
100
+ )
101
+
83
102
  # init basic object for atome environment
84
103
 
85
104
  # Atome.new is used to create a new atome using best performances but params must be formatted and ordered correctly