atome 0.5.3.4 → 0.5.3.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +8 -3
  3. data/app_builder_helpers/Rakefile +8 -2
  4. data/exe/atome +6 -19
  5. data/lib/atome/atome.rb +29 -19
  6. data/lib/atome/extensions/atome.rb +23 -1
  7. data/lib/atome/extensions/matrix.rb +10 -5
  8. data/lib/atome/genesis/generators/atome.rb +149 -22
  9. data/lib/atome/genesis/generators/effect.rb +8 -3
  10. data/lib/atome/genesis/generators/event.rb +77 -34
  11. data/lib/atome/genesis/generators/geometry.rb +21 -5
  12. data/lib/atome/genesis/generators/identity.rb +110 -57
  13. data/lib/atome/genesis/generators/material.rb +74 -16
  14. data/lib/atome/genesis/generators/spatial.rb +8 -9
  15. data/lib/atome/genesis/generators/time.rb +1 -1
  16. data/lib/atome/genesis/generators/utility.rb +66 -39
  17. data/lib/atome/genesis/genesis.rb +7 -5
  18. data/lib/atome/genesis/sparkle.rb +8 -2
  19. data/lib/atome/helpers/essentials.rb +2 -6
  20. data/lib/atome/helpers/utilities.rb +15 -0
  21. data/lib/atome/kernel/universe.rb +2 -2
  22. data/lib/atome/presets/atome.rb +60 -61
  23. data/lib/atome/renderers/browser/event.rb +6 -3
  24. data/lib/atome/renderers/browser/geometry.rb +18 -10
  25. data/lib/atome/renderers/browser/helpers/browser_helper.rb +9 -0
  26. data/lib/atome/renderers/browser/helpers/color_helper.rb +4 -4
  27. data/lib/atome/renderers/browser/helpers/event_helper.rb +24 -12
  28. data/lib/atome/renderers/browser/helpers/shape_helper.rb +4 -4
  29. data/lib/atome/renderers/browser/helpers/text_helper.rb +4 -4
  30. data/lib/atome/renderers/browser/helpers/video_helper.rb +1 -1
  31. data/lib/atome/renderers/browser/helpers/web_helper.rb +4 -4
  32. data/lib/atome/renderers/browser/identity.rb +4 -0
  33. data/lib/atome/renderers/browser/material.rb +20 -1
  34. data/lib/atome/renderers/browser/spatial.rb +4 -0
  35. data/lib/atome/version.rb +1 -1
  36. data/sig/atome.rbs +12 -0
  37. data/sig/genesis.rbs +3 -0
  38. data/vendor/assets/application/index.rb +2 -0
  39. data/vendor/assets/src/index.html +1 -1
  40. data/vendor/assets/src/js/atome/atome.js +2 -1
  41. data/vendor/assets/src/medias/images/icons/email.svg +13 -0
  42. data/vendor/assets/src/medias/images/icons/mail_gray.svg +6 -0
  43. data/vendor/assets/src/medias/images/icons/mail_green.svg +6 -0
  44. data/vendor/assets/src/medias/images/icons/mail_orange.svg +6 -0
  45. data/vendor/assets/src/medias/images/icons/undo.svg +4 -0
  46. data/vendor/assets/src/medias/images/logos/Orange/Facebook.svg +8 -0
  47. data/vendor/assets/src/medias/images/logos/Orange/TikTok.svg +11 -0
  48. data/vendor/assets/src/medias/images/logos/Orange/Twitter.svg +8 -0
  49. data/vendor/assets/src/medias/images/logos/Orange/instagram.svg +8 -0
  50. data/vendor/assets/src/medias/images/logos/Orange/vimeo.svg +8 -0
  51. data/vendor/assets/src/medias/images/logos/Orange/youtube.svg +7 -0
  52. data/vendor/assets/src/medias/images/logos/freebsd.svg +8 -0
  53. data/vendor/assets/src/medias/images/logos/gray/Facebook.svg +8 -0
  54. data/vendor/assets/src/medias/images/logos/gray/TikTok.svg +11 -0
  55. data/vendor/assets/src/medias/images/logos/gray/Twitter.svg +8 -0
  56. data/vendor/assets/src/medias/images/logos/gray/instagram.svg +8 -0
  57. data/vendor/assets/src/medias/images/logos/gray/vimeo.svg +8 -0
  58. data/vendor/assets/src/medias/images/logos/gray/youtube.svg +7 -0
  59. data/vendor/assets/src/medias/images/logos/gray/youtube2.svg +13 -0
  60. data/vendor/assets/src/medias/images/logos/vimeo.svg +17 -0
  61. data/vendor/assets/src/medias/rubies/examples/_table2.rb +106 -36
  62. data/vendor/assets/src/medias/rubies/examples/add.rb +1 -3
  63. data/vendor/assets/src/medias/rubies/examples/attached.rb +16 -0
  64. data/vendor/assets/src/medias/rubies/examples/class.rb +13 -0
  65. data/vendor/assets/src/medias/rubies/examples/depth.rb +6 -0
  66. data/vendor/assets/src/medias/rubies/examples/detached.rb +13 -0
  67. data/vendor/assets/src/medias/rubies/examples/matrix.rb +1 -1
  68. data/vendor/assets/src/medias/rubies/examples/opacity.rb +5 -0
  69. data/vendor/assets/src/medias/rubies/examples/over.rb +19 -0
  70. data/vendor/assets/src/medias/rubies/examples/read.rb +1 -0
  71. data/vendor/assets/src/medias/rubies/examples/text.rb +12 -11
  72. data/vendor/assets/src/medias/rubies/examples/time.rb +5 -1
  73. metadata +31 -81
  74. data/vendor/assets/src/medias/audios/Binrpilot.mp3 +0 -0
  75. data/vendor/assets/src/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
  76. data/vendor/assets/src/medias/fonts/Dancing_Script/OFL.txt +0 -93
  77. data/vendor/assets/src/medias/fonts/Dancing_Script/README.txt +0 -66
  78. data/vendor/assets/src/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
  79. data/vendor/assets/src/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
  80. data/vendor/assets/src/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
  81. data/vendor/assets/src/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
  82. data/vendor/assets/src/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
  83. data/vendor/assets/src/medias/fonts/Mate_SC/OFL.txt +0 -94
  84. data/vendor/assets/src/medias/fonts/Raleway/OFL.txt +0 -93
  85. data/vendor/assets/src/medias/fonts/Raleway/README.txt +0 -81
  86. data/vendor/assets/src/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
  87. data/vendor/assets/src/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
  88. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
  89. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
  90. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
  91. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
  92. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
  93. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
  94. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
  95. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
  96. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
  97. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
  98. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
  99. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
  100. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
  101. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
  102. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
  103. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
  104. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
  105. data/vendor/assets/src/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
  106. data/vendor/assets/src/medias/fonts/Vollkorn/OFL.txt +0 -93
  107. data/vendor/assets/src/medias/fonts/Vollkorn/README.txt +0 -75
  108. data/vendor/assets/src/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
  109. data/vendor/assets/src/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
  110. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
  111. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
  112. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
  113. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
  114. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
  115. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
  116. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
  117. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
  118. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
  119. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
  120. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
  121. data/vendor/assets/src/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
  122. data/vendor/assets/src/medias/images/Icon_Help.png +0 -0
  123. data/vendor/assets/src/medias/images/avion.jpg +0 -0
  124. data/vendor/assets/src/medias/images/boat.png +0 -0
  125. data/vendor/assets/src/medias/images/cache.svg +0 -10
  126. data/vendor/assets/src/medias/images/dices.png +0 -0
  127. data/vendor/assets/src/medias/images/eVe_back.png +0 -0
  128. data/vendor/assets/src/medias/images/elephant.png +0 -0
  129. data/vendor/assets/src/medias/images/eyes.jpg +0 -0
  130. data/vendor/assets/src/medias/images/freebsd.png +0 -0
  131. data/vendor/assets/src/medias/images/grain_texture.png +0 -0
  132. data/vendor/assets/src/medias/images/green_planet.png +0 -0
  133. data/vendor/assets/src/medias/images/image_missing.svg +0 -9
  134. data/vendor/assets/src/medias/images/jeezs.png +0 -0
  135. data/vendor/assets/src/medias/images/keyboard.png +0 -0
  136. data/vendor/assets/src/medias/images/killer.jpg +0 -0
  137. data/vendor/assets/src/medias/images/living_room.png +0 -0
  138. data/vendor/assets/src/medias/images/logo.svg +0 -14
  139. data/vendor/assets/src/medias/images/logos/GitHub-Mark.eps +0 -7696
  140. data/vendor/assets/src/medias/images/moto.png +0 -0
  141. data/vendor/assets/src/medias/images/piano.png +0 -0
  142. data/vendor/assets/src/medias/images/poisson.jpg +0 -0
  143. data/vendor/assets/src/medias/images/sky.jpg +0 -0
  144. data/vendor/assets/src/medias/images/the_mask.svg +0 -8
  145. data/vendor/assets/src/medias/images/tile_black.png +0 -0
  146. data/vendor/assets/src/medias/images/tile_white.png +0 -0
  147. data/vendor/assets/src/medias/videos/avengers.mp4 +0 -0
  148. data/vendor/assets/src/medias/videos/madmax.mp4 +0 -0
  149. data/vendor/assets/src/medias/videos/starwars.mov +0 -0
  150. data/vendor/assets/src/medias/videos/superman.mp4 +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ca60550f747734b730b5f7bcc9e71f25bb116c0d084f2e8cb5f0bf601d33940
4
- data.tar.gz: 175f194889b09b9969e7720bc10b9b100804685bad61fe7739bcd0ecba5e556f
3
+ metadata.gz: 5c9363d9399a6e64a2ba1fe03cf0be0f8a5ed36fa1d6ab58b59fc7cf7a2d4add
4
+ data.tar.gz: 43e83f421a13dba82a3c635f3cc593954fecfa265937f9e87db0fee73cb1897f
5
5
  SHA512:
6
- metadata.gz: 2e7f1a2204f2551e05bdced2ffcc52d060af88156d7c43d824537abdfe00f75a7d574e52d18002835cf047d54176fdbe3dd80b0eecb9abf1c3ffe7c3dcbc3fce
7
- data.tar.gz: 5ce1039aae51524cfbf2a91ca03d19f41e745640932eddd1362ae4fded9f1a5ee601ab8170c569d1d8f94a2927689be88716e8e4fcd8600f5630e213460815f5
6
+ metadata.gz: f6120ad4f0a7ac8288c612dd31dbb7a4314d778e55e4ab65939c831b9b9c8e2fcbb077a916fd7a7b82757e536ec056bd987a65ef6ebcf7686297087edc5ae35b
7
+ data.tar.gz: 4e27af6dd5d4f5b6de378f8e196c93a3788c8e0103eeb5848e58ab616370bdddd9522894aae25499a510af4ccb479063318d5e3a1543d85510a144ea56bc621e
data/Rakefile CHANGED
@@ -26,7 +26,8 @@ task :run_browser do
26
26
  FileUtils.copy_entry('vendor/assets/src/css/', 'test/test_app/src/css/')
27
27
  FileUtils.copy_entry('vendor/assets/src/medias/', 'test/test_app/src/medias/')
28
28
  `gem cleanup atome;yes | gem uninstall atome ;gem build atome.gemspec;gem install atome`
29
- `cd test/test_app;atome update;atome run`
29
+ `cd test/test_app;atome update;atome run compile`
30
+ puts 'atome browser is running'
30
31
  end
31
32
 
32
33
 
@@ -55,12 +56,16 @@ end
55
56
 
56
57
  task :run_example_server do
57
58
  FileUtils.copy_entry('vendor/assets/src/medias/rubies/examples/', 'test/test_app/src/medias/rubies/examples/')
58
- `cd test/test_app;atome run server `
59
+ `cd test/test_app;atome run server`
59
60
  end
60
61
 
61
62
 
62
63
  task :taurification do
63
- `cd test/test_app;cargo tauri dev `
64
+ `cd test/test_app;cargo tauri dev`
65
+ end
66
+
67
+ task :osx do
68
+ `cd test/test_app;atome run osx guard`
64
69
  end
65
70
 
66
71
 
@@ -57,10 +57,16 @@ def build_aui(user_project_path)
57
57
  end
58
58
 
59
59
  def copy_assets_files(user_project_path, gem_location)
60
- build_location = "#{gem_location}/../vendor/assets/src/"
60
+ # build_location = "#{gem_location}/../vendor/assets/src/"
61
61
  server_location = "#{gem_location}/../vendor/assets/server/"
62
- FileUtils.copy_entry build_location, "#{user_project_path}/src", preserve: nil
63
62
  FileUtils.copy_entry server_location, "#{user_project_path}/server", preserve: nil
63
+ # FileUtils.copy_entry build_location, "#{user_project_path}/src", preserve: nil
64
+ css_location ="#{gem_location}/../vendor/assets/src/css/"
65
+ FileUtils.copy_entry css_location, "#{user_project_path}/src/css", preserve: nil
66
+ js_location ="#{gem_location}/../vendor/assets/src/js/"
67
+ FileUtils.copy_entry js_location, "#{user_project_path}/src/js", preserve: nil
68
+ index_location ="#{gem_location}/../vendor/assets/src/index.html"
69
+ FileUtils.copy_entry index_location, "#{user_project_path}/src/index.html", preserve: nil
64
70
  end
65
71
 
66
72
  def build_atome_kernel(user_project_path, gem_location)
data/exe/atome CHANGED
@@ -117,18 +117,20 @@ end
117
117
 
118
118
  def guard_check
119
119
  loop do
120
- sleep 3
120
+ sleep 1
121
121
  end
122
122
  nil unless ARGV.include?('guard')
123
123
  end
124
124
 
125
125
  def browser_case(location)
126
- `cd #{location}/src;open index.html`
126
+ # `cd #{location}/src;open index.html`
127
127
  guard_check
128
128
  end
129
129
 
130
+ #
131
+
130
132
  def osx_case(location)
131
- `cd #{location};cargo tauri dev `
133
+ `cd #{location};cargo tauri dev`
132
134
  end
133
135
 
134
136
  def compile_case(location)
@@ -136,7 +138,6 @@ def compile_case(location)
136
138
  guard_check
137
139
  end
138
140
 
139
-
140
141
  def server_case(port, location)
141
142
  threads = []
142
143
  threads << Thread.new do
@@ -146,19 +147,6 @@ def server_case(port, location)
146
147
  `cd #{location}/server;rackup --server puma --port #{port} --env production`
147
148
  end
148
149
 
149
- def test_native(build_target)
150
- case build_target
151
- when :freebsd
152
- # freebsd
153
- when :osx
154
- # osx
155
- when :windows
156
- # windows
157
- else
158
- # freebsd
159
- end
160
- end
161
-
162
150
  def run_case(build_target, location, port)
163
151
  case build_target
164
152
  when :server
@@ -170,10 +158,9 @@ def run_case(build_target, location, port)
170
158
  when :compile
171
159
  compile_case(location)
172
160
  when :native
173
- test_native(build_target)
174
161
  # freebsd
175
162
  else
176
- browser_case(location)
163
+ guard_check
177
164
  end
178
165
  end
179
166
 
data/lib/atome/atome.rb CHANGED
@@ -8,7 +8,6 @@
8
8
  class Atome
9
9
  # TODO : clean or delete @private_atome
10
10
  include Essentials
11
-
12
11
  private
13
12
 
14
13
  def initialize(atomes = {}, &atomes_proc)
@@ -27,13 +26,13 @@ class Atome
27
26
  end
28
27
  end
29
28
 
30
- def new_particle(element,store,render, &method_proc)
29
+ def new_particle(element, store, render, &method_proc)
31
30
  Atome.define_method element do |params = nil, &user_proc|
32
31
  if params || params == false
33
32
  # the line below execute the proc created when using the build_particle method
34
33
  instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
35
34
  params = sanitize(element, params)
36
- create_particle(element,store,render)
35
+ create_particle(element, store, render)
37
36
  send("set_#{element}", params, &user_proc)
38
37
  else
39
38
  get_particle(element, &user_proc)
@@ -41,25 +40,37 @@ class Atome
41
40
  end
42
41
  end
43
42
 
44
-
45
-
46
- def additional_particle_methods(element,store,render , &method_proc)
43
+ def additional_particle_methods(element, store, render, &method_proc)
47
44
  Atome.define_method "#{element}=" do |params = nil, &user_proc|
48
45
  instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
49
46
  params = sanitize(element, params)
50
- particle_creation(element, params, store,render,&user_proc)
47
+ particle_creation(element, params, store, render, &user_proc)
51
48
  end
52
49
  end
53
50
 
54
-
55
51
  def atome_creation_pre_treatment(element, params, &user_proc)
56
52
  params = sanitize(element, params)
57
53
  create_atome(element)
58
54
  send("set_#{element}", params, &user_proc)
59
55
  end
60
56
 
57
+ def atome_initializer(element, params = {})
58
+ temp_default = Essentials.default_params[element] || {}
59
+ generated_render = params[:renderers] || []
60
+ generated_id = params[:id] || "#{element}_#{Universe.atomes.length}"
61
+ generated_parents = params[:parents] || [id.value]
62
+ generated_children = params[:children] || []
63
+ temp_default[:id] = generated_id
64
+ temp_default[:parents] = generated_parents
65
+ temp_default[:clones] = []
66
+ temp_default[:renderers] = generated_render
67
+ temp_default[:children] = generated_children
68
+ temp_default.merge(params)
69
+ end
70
+
61
71
  def new_atome(element, &method_proc)
62
72
  Atome.define_method element do |params = nil, &user_proc|
73
+
63
74
  if params
64
75
  instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
65
76
  atome_creation_pre_treatment(element, params, &user_proc)
@@ -78,14 +89,13 @@ class Atome
78
89
  end
79
90
 
80
91
  def run_optional_proc(proc_name, atome = self, element, &user_proc)
81
- params=instance_variable_get("@#{element}")
92
+ params = instance_variable_get("@#{element}")
82
93
  option_found = Universe.get_optional_method(proc_name)
83
94
  atome.instance_exec(params, user_proc, atome, &option_found) if option_found.is_a?(Proc)
84
95
  end
85
96
 
86
-
87
97
  def store_value(element)
88
- params=instance_variable_get("@#{element}")
98
+ params = instance_variable_get("@#{element}")
89
99
  @atome[element] = params
90
100
  end
91
101
 
@@ -93,14 +103,15 @@ class Atome
93
103
 
94
104
  # the line below is used for ephemera atomes
95
105
  attr_accessor :property, :value, :real_atome, :user_proc
96
- attr_reader :atome, :structure#, :at_time
106
+ attr_reader :atome, :structure # , :at_time
97
107
 
98
108
  def set(value)
99
109
  @real_atome[@property] = value
100
110
  end
101
111
 
102
- def particle_creation(element, params,store,render, &user_proc)
112
+ def particle_creation(element, params, store, render, &user_proc)
103
113
  return false unless security_pass(element, params)
114
+
104
115
  # we create a proc holder of any new particle if user pass a bloc
105
116
  store_code_bloc(element, &user_proc) if user_proc
106
117
  # Params is now an instance variable so it should be passed thru different methods
@@ -115,14 +126,12 @@ class Atome
115
126
  self
116
127
  end
117
128
 
118
-
119
- def create_particle(element,store,render)
129
+ def create_particle(element, store, render)
120
130
  Atome.define_method "set_#{element}" do |params, &user_proc|
121
- particle_creation(element, params, store,render,&user_proc)
131
+ particle_creation(element, params, store, render, &user_proc)
122
132
  end
123
133
  end
124
134
 
125
-
126
135
  def get(element)
127
136
  @atome[element]
128
137
  end
@@ -133,8 +142,8 @@ class Atome
133
142
  virtual_atome.real_atome = @atome
134
143
  virtual_atome.property = element
135
144
  virtual_atome.user_proc = user_proc
136
- run_optional_proc("pre_get_#{@atome[:type]}".to_sym, "virtual_atome", &user_proc)
137
- run_optional_proc("pre_get_#{element}".to_sym, self, "virtual_atome", &user_proc)
145
+ # run_optional_proc("pre_get_#{@atome[:type]}".to_sym, 'virtual_atome', &user_proc)
146
+ # run_optional_proc("pre_get_#{element}".to_sym, self, 'virtual_atome', &user_proc)
138
147
  virtual_atome
139
148
  end
140
149
 
@@ -145,6 +154,7 @@ class Atome
145
154
  virtual_atome.user_proc = user_proc
146
155
  virtual_atome.value = @atome[element]
147
156
  virtual_atome
157
+ "it should contain the atome not : #{element}"
148
158
  end
149
159
 
150
160
  def create_atome(new_atome)
@@ -1,4 +1,24 @@
1
1
  # frozen_string_literal: true
2
+ def new(params, &bloc)
3
+ generator = Genesis.generator
4
+ if params.key?(:particle)
5
+ # render indicate if the particle needs to be rendered
6
+ # store tell the system if it need to store the particle value
7
+ # type help the system what type of type the particle will receive and store
8
+ generator.build_particle(params[:particle], { render: params[:render],
9
+ store: params[:store], type: params[:type] }, &bloc)
10
+ elsif params.key?(:atome)
11
+ generator.build_atome(params[:atome], &bloc)
12
+ elsif params.key?(:sanitizer)
13
+ generator.build_sanitizer(params[:sanitizer], &bloc)
14
+ elsif params.key?(:pre)
15
+ generator.build_option("pre_render_#{params[:pre]}", &bloc)
16
+ elsif params.key?(:post)
17
+ generator.build_option("post_render_#{params[:post]}", &bloc)
18
+ elsif params.key?(:browser)
19
+ generator.build_render("browser_#{params[:browser]}", &bloc)
20
+ end
21
+ end
2
22
 
3
23
  def grab(atome_to_get)
4
24
  Universe.atomes[atome_to_get]
@@ -18,7 +38,9 @@ end
18
38
 
19
39
  # the method below generate Atome method creation at Object level
20
40
  def create_method_at_object_level(element)
21
- Object.define_method element do |params = nil, &user_proc|
41
+
42
+ Object.define_method element do |params, &user_proc|
22
43
  grab(:view).send(element, params, &user_proc)
23
44
  end
45
+
24
46
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
+ #
2
3
 
3
- class Atome
4
+ module Matrix
4
5
  def content(items = nil)
5
6
  if items.instance_of?(Array)
6
7
  items.each do |item|
@@ -172,11 +173,11 @@ class Atome
172
173
  x = (col_index + 1) * margin + col_index * cell_width
173
174
  y = (row_index + 1) * margin + row_index * cell_height
174
175
  current_cell = grab("#{matrix_id}_#{i}")
175
- puts "===> #{current_cell}"
176
+ # puts "===> #{current_cell}"
176
177
  current_cell.children.each do |child|
177
- puts "=>#{cell_width}"
178
- grab(child).width(cell_width)
179
- grab(child).height(cell_width)
178
+ # puts "=>#{cell_width}"
179
+ grab(child).width(cell_width) if grab(child)
180
+ grab(child).height(cell_width) if grab(child)
180
181
  end
181
182
  current_cell.width = cell_width
182
183
  current_cell.height = cell_height
@@ -399,3 +400,7 @@ class Atome
399
400
  end
400
401
  end
401
402
  end
403
+
404
+ class Atome
405
+ include Matrix
406
+ end
@@ -1,12 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- generator = Genesis.generator
4
-
5
- generator.build_atome(:animation)
6
- generator.build_atome(:color)
7
- generator.build_sanitizer(:color) do |params|
3
+ new({ atome: :color })
4
+ new({ sanitizer: :color }) do |params|
8
5
  parent_found = found_parents_and_renderers[:parent]
9
- parent_found = [:user_view] if parent_found == [:view]
6
+ parent_found = [:black_matter] if parent_found == [:view]
10
7
  render_found = found_parents_and_renderers[:renderers]
11
8
  default_params = { renderers: render_found, id: "color_#{Universe.atomes.length}", type: :color,
12
9
  attach: parent_found,
@@ -16,17 +13,32 @@ generator.build_sanitizer(:color) do |params|
16
13
  atome[:color] = new_params
17
14
  new_params
18
15
  end
19
-
20
- generator.build_sanitizer(:video) do |params|
16
+ new({ atome: :image })
17
+ new({ sanitizer: :image }) do |params|
18
+ unless params.instance_of? Hash
19
+ # TODO : we have to convert all image to png or maintain a database with extension
20
+ params = { path: "./medias/images/#{params}" }
21
+ end
22
+ default_renderer = Essentials.default_params[:render_engines]
23
+ generated_id = params[:id] || "image_#{Universe.atomes.length}"
24
+ generated_render = params[:renderers] || default_renderer
25
+ generated_parents = params[:parents] || id.value
26
+ # TODO : the line below should get the value from default params Essentials
27
+ temp_default = { renderers: generated_render, id: generated_id, type: :image, parents: [generated_parents],
28
+ children: [], width: 99, height: 99, path: './medias/images/atome.svg' }
29
+ params = temp_default.merge(params)
30
+ params
31
+ end
32
+ new({ atome: :video })
33
+ new({ sanitizer: :video }) do |params|
21
34
  parent_found = found_parents_and_renderers[:parent]
22
35
  render_found = found_parents_and_renderers[:renderers]
23
36
  default_params = { renderers: render_found, id: "video_#{Universe.atomes.length}", type: :video,
24
37
  parents: parent_found }
25
38
  default_params.merge!(params)
26
39
  end
27
- generator.build_atome(:shadow)
28
-
29
- generator.build_sanitizer(:shadow) do |params|
40
+ new({ atome: :shadow })
41
+ new({ sanitizer: :shadow }) do |params|
30
42
  parent_found = found_parents_and_renderers[:parent]
31
43
  parent_found = [:user_view] if parent_found == [:view]
32
44
  render_found = found_parents_and_renderers[:renderers]
@@ -35,20 +47,135 @@ generator.build_sanitizer(:shadow) do |params|
35
47
  red: 0, green: 0, blue: 0, alpha: 1, blur: 3, left: 3, top: 3 }
36
48
  default_params.merge!(params)
37
49
  end
38
- generator.build_atome(:shape)
39
- generator.build_atome(:text)
40
- generator.build_atome(:image)
41
- generator.build_atome(:video)
42
- generator.build_atome(:code)
43
- generator.build_atome(:audio)
44
- generator.build_atome(:element)
45
- generator.build_atome(:web)
46
- generator.build_sanitizer(:element) do |params|
50
+ new({ atome: :shape })
51
+ new({ atome: :code })
52
+ new({ atome: :audio })
53
+ new({ atome: :element })
54
+ new({ sanitizer: :element })do |params|
47
55
  parent_found = found_parents_and_renderers[:parent]
48
56
  render_found = []
49
57
  default_params = { renderers: render_found, id: "element_#{Universe.atomes.length}", type: :element,
50
- parents: parent_found }
58
+ parents: parent_found, data: '' }
51
59
  default_params.merge!(params)
52
60
  end
61
+ new({ atome: :web })
62
+ new({ sanitizer: :web })do |params|
63
+ default_renderer = Essentials.default_params[:render_engines]
64
+
65
+ generated_id = params[:id] || "web_#{Universe.atomes.length}"
66
+ generated_render = params[:renderers] || default_renderer
67
+ generated_parents = params[:parents] || id.value
68
+ # TODO : the line below should get the value from default params Essentials
69
+ temp_default = { renderers: generated_render, id: generated_id, type: :web, parents: [generated_parents],
70
+ children: [], width: 120, height: 120, path: 'https://www.youtube.com/embed/usQDazZKWAk' }
71
+ params = temp_default.merge(params)
72
+ params
73
+ end
74
+ new({ atome: :collector })
75
+ new({ atome: :animation })
76
+ new({ sanitizer: :animation }) do |params|
77
+ default_renderer = Essentials.default_params[:render_engines]
78
+ atome_type = :animation
79
+ generated_render = params[:renderers] || default_renderer
80
+ generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
81
+ generated_parents = params[:parents] || []
82
+ generated_children = params[:children] || []
83
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
84
+ params
85
+ end
86
+ new({ atome: :text })
87
+ new({ sanitizer: :text }) do |params|
88
+ params = { data: params } unless params.instance_of? Hash
89
+ default_renderer = Essentials.default_params[:render_engines]
90
+ atome_type = :text
91
+ generated_render = params[:renderers] || default_renderer
92
+ generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
93
+ generated_parents = params[:parents] || [id.value]
94
+ generated_children = params[:children] || []
95
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
96
+ params
97
+ end
98
+
53
99
 
54
- generator.build_atome(:collector)
100
+ # generator = Genesis.generator
101
+ #
102
+ # generator.build_atome(:animation)
103
+ # generator.build_atome(:color)
104
+ # generator.build_sanitizer(:color) do |params|
105
+ # parent_found = found_parents_and_renderers[:parent]
106
+ # parent_found = [:black_matter] if parent_found == [:view]
107
+ # render_found = found_parents_and_renderers[:renderers]
108
+ # default_params = { renderers: render_found, id: "color_#{Universe.atomes.length}", type: :color,
109
+ # attach: parent_found,
110
+ # red: 0, green: 0, blue: 0, alpha: 1 }
111
+ # params = create_color_hash(params) unless params.instance_of? Hash
112
+ # new_params = default_params.merge!(params)
113
+ # atome[:color] = new_params
114
+ # new_params
115
+ # end
116
+ #
117
+ # generator.build_atome(:video)
118
+ # generator.build_sanitizer(:video) do |params|
119
+ # parent_found = found_parents_and_renderers[:parent]
120
+ # render_found = found_parents_and_renderers[:renderers]
121
+ # default_params = { renderers: render_found, id: "video_#{Universe.atomes.length}", type: :video,
122
+ # parents: parent_found }
123
+ # default_params.merge!(params)
124
+ # end
125
+ # generator.build_atome(:shadow)
126
+ # generator.build_sanitizer(:shadow) do |params|
127
+ # parent_found = found_parents_and_renderers[:parent]
128
+ # parent_found = [:user_view] if parent_found == [:view]
129
+ # render_found = found_parents_and_renderers[:renderers]
130
+ # default_params = { renderers: render_found, id: "shadow_#{Universe.atomes.length}", type: :shadow,
131
+ # attach: parent_found,
132
+ # red: 0, green: 0, blue: 0, alpha: 1, blur: 3, left: 3, top: 3 }
133
+ # default_params.merge!(params)
134
+ # end
135
+ # generator.build_atome(:shape)
136
+ # generator.build_atome(:text)
137
+ # generator.build_atome(:code)
138
+ # generator.build_atome(:audio)
139
+ # generator.build_atome(:element)
140
+ # generator.build_sanitizer(:element) do |params|
141
+ # parent_found = found_parents_and_renderers[:parent]
142
+ # render_found = []
143
+ # default_params = { renderers: render_found, id: "element_#{Universe.atomes.length}", type: :element,
144
+ # parents: parent_found, data: '' }
145
+ # default_params.merge!(params)
146
+ # end
147
+ # generator.build_atome(:collector)
148
+ # generator.build_atome(:web)
149
+ # generator.build_sanitizer(:web) do |params|
150
+ # default_renderer = Essentials.default_params[:render_engines]
151
+ #
152
+ # generated_id = params[:id] || "web_#{Universe.atomes.length}"
153
+ # generated_render = params[:renderers] || default_renderer
154
+ # generated_parents = params[:parents] || id.value
155
+ # # TODO : the line below should get the value from default params Essentials
156
+ # temp_default = { renderers: generated_render, id: generated_id, type: :web, parents: [generated_parents],
157
+ # children: [], width: 120, height: 120, path: 'https://www.youtube.com/embed/usQDazZKWAk' }
158
+ # params = temp_default.merge(params)
159
+ # params
160
+ # end
161
+ # generator.build_sanitizer(:animation) do |params|
162
+ # default_renderer = Essentials.default_params[:render_engines]
163
+ # atome_type = :animation
164
+ # generated_render = params[:renderers] || default_renderer
165
+ # generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
166
+ # generated_parents = params[:parents] || []
167
+ # generated_children = params[:children] || []
168
+ # params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
169
+ # params
170
+ # end
171
+ # generator.build_sanitizer(:text) do |params|
172
+ # params = { data: params } unless params.instance_of? Hash
173
+ # default_renderer = Essentials.default_params[:render_engines]
174
+ # atome_type = :text
175
+ # generated_render = params[:renderers] || default_renderer
176
+ # generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
177
+ # generated_parents = params[:parents] || [id.value]
178
+ # generated_children = params[:children] || []
179
+ # params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
180
+ # params
181
+ # end
@@ -1,6 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- generator = Genesis.generator
4
3
 
5
- generator.build_particle(:smooth)
6
- generator.build_particle(:blur)
4
+ new({ particle: :smooth })
5
+ new({ particle: :blur })
6
+
7
+
8
+ # generator = Genesis.generator
9
+ #
10
+ # generator.build_particle(:smooth)
11
+ # generator.build_particle(:blur)
@@ -1,50 +1,93 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- generator = Genesis.generator
4
3
 
5
- # touch
6
- generator.build_particle(:touch)
7
- # video
8
- generator.build_particle(:play) do
4
+
5
+ new({particle: :touch })
6
+ new({particle: :play }) do
9
7
  @atome[:pause] = :false
10
8
  end
11
- generator.build_particle(:time)
12
- generator.build_particle(:pause) do
9
+ new({particle: :time })
10
+ new({particle: :pause }) do
13
11
  @atome[:play] = :false
14
12
  end
15
- generator.build_particle(:on)
16
- generator.build_particle(:fullscreen)
17
- generator.build_particle(:mute)
18
- # TODO : add the at event to ny particle : (width, left, ...) maybe use monitor particle
19
- # generator.build_particle(:at)
20
- # drag
21
- generator.build_particle(:drag)
22
- generator.build_sanitizer(:drag) do |params|
13
+ new({particle: :on })
14
+ new({particle: :fullscreen })
15
+ new({particle: :mute })
16
+ new({particle: :drag })
17
+ new({ sanitizer: :drag }) do |params|
23
18
  params = { move: true } if params == true
24
19
  params
25
20
  end
26
- # sort
27
- generator.build_particle(:sort) do |_value, sort_proc|
21
+ new({particle: :sort }) do |_value, sort_proc|
28
22
  @sort_proc = sort_proc
29
23
  end
30
-
31
- # animation
32
- generator.build_particle(:targets)
33
- generator.build_particle(:start)
34
- generator.build_option(:pre_render_start) do |_value, user_proc|
24
+ new({particle: :targets })
25
+ new({particle: :start })
26
+ new({pre: :start }) do |_value, user_proc|
35
27
  @animation_start_proc = user_proc
36
28
  end
37
- generator.build_particle(:stop)
38
- generator.build_option(:pre_render_stop) do |_value, user_proc|
29
+ new({particle: :stop })
30
+ new({pre: :stop }) do |_value, user_proc|
39
31
  @animation_stop_proc = user_proc
40
32
  end
41
- generator.build_particle(:begin)
42
- generator.build_particle(:end)
43
- generator.build_particle(:duration)
44
- generator.build_particle(:mass)
45
- generator.build_particle(:damping)
46
- generator.build_particle(:stiffness)
47
- generator.build_particle(:velocity)
48
- generator.build_particle(:repeat)
49
- generator.build_particle(:ease)
50
- generator.build_particle(:unbind)
33
+ new({particle: :begin })
34
+ new({particle: :end })
35
+ new({particle: :duration })
36
+ new({particle: :mass })
37
+ new({particle: :damping })
38
+ new({particle: :stiffness })
39
+ new({particle: :velocity })
40
+ new({particle: :repeat })
41
+ new({particle: :ease })
42
+ new({particle: :unbind })
43
+ new({particle: :over })
44
+
45
+
46
+ # generator = Genesis.generator
47
+ #
48
+ # # touch
49
+ # generator.build_particle(:touch)
50
+ # # video
51
+ # generator.build_particle(:play) do
52
+ # @atome[:pause] = :false
53
+ # end
54
+ # generator.build_particle(:time)
55
+ # generator.build_particle(:pause) do
56
+ # @atome[:play] = :false
57
+ # end
58
+ # generator.build_particle(:on)
59
+ # generator.build_particle(:fullscreen)
60
+ # generator.build_particle(:mute)
61
+ # # TODO : add the at event to ny particle : (width, left, ...) maybe use monitor particle
62
+ # # generator.build_particle(:at)
63
+ # # drag
64
+ # generator.build_particle(:drag)
65
+ # generator.build_sanitizer(:drag) do |params|
66
+ # params = { move: true } if params == true
67
+ # params
68
+ # end
69
+ # # sort
70
+ # generator.build_particle(:sort) do |_value, sort_proc|
71
+ # @sort_proc = sort_proc
72
+ # end
73
+ # # animation
74
+ # generator.build_particle(:targets)
75
+ # generator.build_particle(:start)
76
+ # generator.build_option(:pre_render_start) do |_value, user_proc|
77
+ # @animation_start_proc = user_proc
78
+ # end
79
+ # generator.build_particle(:stop)
80
+ # generator.build_option(:pre_render_stop) do |_value, user_proc|
81
+ # @animation_stop_proc = user_proc
82
+ # end
83
+ # generator.build_particle(:begin)
84
+ # generator.build_particle(:end)
85
+ # generator.build_particle(:duration)
86
+ # generator.build_particle(:mass)
87
+ # generator.build_particle(:damping)
88
+ # generator.build_particle(:stiffness)
89
+ # generator.build_particle(:velocity)
90
+ # generator.build_particle(:repeat)
91
+ # generator.build_particle(:ease)
92
+ # generator.build_particle(:unbind)
93
+ # generator.build_particle(:over)