atome 0.1.00009 → 0.4.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (354) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -0
  3. data/README.md +74 -6
  4. data/Rakefile +14 -6
  5. data/app_builder_helpers/Rakefile +183 -25
  6. data/documentation/atome.md +14 -0
  7. data/documentation/database.JPG +0 -0
  8. data/documentation/framework/apis.md +14 -0
  9. data/documentation/framework/atome_explained.md +179 -0
  10. data/documentation/framework/box_content.md +53 -0
  11. data/documentation/framework/buld_the_gem.md +52 -0
  12. data/documentation/framework/datas_flows.md +28 -0
  13. data/documentation/framework/enhance_atome.md +79 -0
  14. data/documentation/framework/folder_architecture.md +47 -0
  15. data/documentation/framework/technical/rendering_flow.md +18 -0
  16. data/documentation/framework/technical/technical_description.md +23 -0
  17. data/documentation/framework/what_is_it.md +65 -0
  18. data/documentation/framework/what_it_can_do.md +25 -0
  19. data/documentation/images/1.png +0 -0
  20. data/documentation/images/2.png +0 -0
  21. data/documentation/images/3.png +0 -0
  22. data/documentation/images/atome.svg +12 -0
  23. data/documentation/images/list.png +0 -0
  24. data/documentation/images/logos/cordova.png +0 -0
  25. data/documentation/images/logos/freebsd.png +0 -0
  26. data/documentation/images/logos/opal.png +0 -0
  27. data/documentation/images/logos/puma.png +0 -0
  28. data/documentation/images/logos/roda.svg +1 -0
  29. data/documentation/images/logos/ruby.png +0 -0
  30. data/documentation/images/logos/tauri.png +0 -0
  31. data/documentation/installation/atome_server.md +184 -0
  32. data/documentation/tutorials/first_steps.md +148 -0
  33. data/documentation/tutorials/tutorials.md +15 -0
  34. data/documentation/tutorials/working_with_atome.md +60 -0
  35. data/exe/atome +178 -53
  36. data/lib/atome/atome_native_extensions.rb +5 -0
  37. data/lib/atome/extensions/geolocation.rb +14 -0
  38. data/lib/atome/extensions/helper.rb +123 -0
  39. data/lib/atome/extensions/ping.rb +13 -0
  40. data/lib/atome/extensions/sha.rb +6 -0
  41. data/lib/atome/extensions/utilities.rb +39 -0
  42. data/lib/atome/kernel/atome.rb +98 -0
  43. data/lib/atome/kernel/generators/generator.rb +387 -0
  44. data/lib/atome/kernel/generators/genesis.rb +265 -0
  45. data/lib/atome/kernel/generators/sanitizer.rb +77 -0
  46. data/lib/atome/kernel/generators/shapes.rb +40 -0
  47. data/lib/atome/kernel/properties/essential.rb +43 -0
  48. data/lib/atome/kernel/sparkle.rb +37 -0
  49. data/lib/atome/kernel/universe.rb +29 -0
  50. data/lib/atome/renderers/headless/properties/generator.rb +1 -0
  51. data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
  52. data/lib/atome/renderers/opal/extensions/color.rb +23 -0
  53. data/lib/atome/renderers/opal/extensions/geolocation.rb +14 -0
  54. data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
  55. data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
  56. data/lib/atome/renderers/opal/opal_browser.rb +2 -1
  57. data/lib/atome/renderers/opal/opal_parser.rb +1 -0
  58. data/lib/atome/renderers/opal/properties/generator.rb +1 -0
  59. data/lib/atome/renderers/renderer.rb +12 -0
  60. data/lib/atome/renderers/server/properties/generator.rb +9 -0
  61. data/lib/atome/version.rb +1 -1
  62. data/lib/atome.rb +55 -2
  63. data/vendor/assets/Guardfile +4 -0
  64. data/vendor/assets/Rakefile +3 -0
  65. data/vendor/assets/application/index.rb +4 -0
  66. data/vendor/assets/build/css/style.css +21 -8
  67. data/vendor/assets/build/favicon.ico +0 -0
  68. data/vendor/assets/build/index.html +13 -4
  69. data/vendor/assets/build/js/atome/atome.js +68 -0
  70. data/vendor/assets/build/js/ping.min.js +2 -0
  71. data/vendor/assets/build/js/third_parties/createjs.min.js +19 -0
  72. data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
  73. data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
  74. data/vendor/assets/build/js/third_parties/three.min.js +6 -0
  75. data/vendor/assets/build/js/utilities/w3color.js +646 -0
  76. data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
  77. data/vendor/assets/build/medias/audios/clap.wav +0 -0
  78. data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
  79. data/vendor/assets/build/medias/audios/hihat.wav +0 -0
  80. data/vendor/assets/build/medias/audios/kick.wav +0 -0
  81. data/vendor/assets/build/medias/audios/riff.m4a +0 -0
  82. data/vendor/assets/build/medias/audios/snare.wav +0 -0
  83. data/vendor/assets/build/medias/audios/tom.wav +0 -0
  84. data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
  85. data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
  86. data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
  87. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
  88. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
  89. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
  90. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
  91. data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
  92. data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
  93. data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
  94. data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
  95. data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
  96. data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
  97. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
  98. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
  99. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
  100. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
  101. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
  102. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
  103. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
  104. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
  105. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
  106. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
  107. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
  108. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
  109. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
  110. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
  111. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
  112. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
  113. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
  114. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
  115. data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
  116. data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
  117. data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
  118. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
  119. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
  120. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
  121. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
  122. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
  123. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
  124. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
  125. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
  126. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
  127. data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
  128. data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
  129. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
  130. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
  131. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
  132. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
  133. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
  134. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
  135. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
  136. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
  137. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
  138. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
  139. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
  140. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
  141. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
  142. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
  143. data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
  144. data/vendor/assets/build/medias/images/atome.svg +12 -0
  145. data/vendor/assets/build/medias/images/avion.jpg +0 -0
  146. data/vendor/assets/build/medias/images/ballanim.png +0 -0
  147. data/vendor/assets/build/medias/images/blank.png +0 -0
  148. data/vendor/assets/build/medias/images/boat.png +0 -0
  149. data/vendor/assets/build/medias/images/cache.svg +10 -0
  150. data/vendor/assets/build/medias/images/dices.png +0 -0
  151. data/vendor/assets/build/medias/images/eVe_back.png +0 -0
  152. data/vendor/assets/build/medias/images/elephant.png +0 -0
  153. data/vendor/assets/build/medias/images/eyes.jpg +0 -0
  154. data/vendor/assets/build/medias/images/freebsd.png +0 -0
  155. data/vendor/assets/build/medias/images/grain_texture.png +0 -0
  156. data/vendor/assets/build/medias/images/green_planet.png +0 -0
  157. data/vendor/assets/build/medias/images/image_missing.svg +9 -0
  158. data/vendor/assets/build/medias/images/jeezs.png +0 -0
  159. data/vendor/assets/build/medias/images/keyboard.png +0 -0
  160. data/vendor/assets/build/medias/images/killer.jpg +0 -0
  161. data/vendor/assets/build/medias/images/living_room.png +0 -0
  162. data/vendor/assets/build/medias/images/logo.svg +14 -0
  163. data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
  164. data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
  165. data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
  166. data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
  167. data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
  168. data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
  169. data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
  170. data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
  171. data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
  172. data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
  173. data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
  174. data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
  175. data/vendor/assets/build/medias/images/moto.png +0 -0
  176. data/vendor/assets/build/medias/images/noise.svg +17 -0
  177. data/vendor/assets/build/medias/images/piano.png +0 -0
  178. data/vendor/assets/build/medias/images/poisson.jpg +0 -0
  179. data/vendor/assets/build/medias/images/red_planet.png +0 -0
  180. data/vendor/assets/build/medias/images/sky.jpg +0 -0
  181. data/vendor/assets/build/medias/images/the_mask.svg +8 -0
  182. data/vendor/assets/build/medias/images/tile.png +0 -0
  183. data/vendor/assets/build/medias/images/tile_black.png +0 -0
  184. data/vendor/assets/build/medias/images/tile_white.png +0 -0
  185. data/vendor/assets/build/medias/javascripts/test.js +1 -0
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
  254. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
  255. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
  256. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
  257. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
  258. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
  259. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
  260. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
  261. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
  262. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
  263. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
  264. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
  265. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
  266. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
  267. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
  268. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
  269. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
  270. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
  271. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
  272. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
  273. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
  274. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
  275. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
  276. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
  277. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
  278. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
  279. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
  280. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
  281. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
  282. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
  283. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
  284. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
  285. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
  286. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
  287. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
  288. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
  289. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
  290. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
  291. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
  292. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
  293. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
  294. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
  295. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
  296. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
  297. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
  298. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
  299. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
  300. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
  301. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
  302. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
  303. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
  304. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
  305. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
  306. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
  307. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
  308. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
  309. data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
  310. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
  311. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
  312. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  313. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
  314. data/vendor/assets/build/medias/rubies/examples/box.rb +1 -0
  315. data/vendor/assets/build/{js/opal/opal_browser.js → medias/rubies/examples/circle.rb} +0 -0
  316. data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
  317. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
  318. data/vendor/assets/build/medias/rubies/examples/drag.rb +5 -0
  319. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
  320. data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
  321. data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
  322. data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
  323. data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
  324. data/vendor/assets/build/medias/rubies/examples/link.rb +13 -0
  325. data/vendor/assets/build/medias/rubies/examples/parent.rb +12 -0
  326. data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
  327. data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
  328. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
  329. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  330. data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
  331. data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
  332. data/vendor/assets/build/medias/rubies/examples/text.rb +5 -0
  333. data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
  334. data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
  335. data/vendor/assets/build/medias/rubies/examples/video.rb +4 -0
  336. data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
  337. data/vendor/assets/build/medias/rubies/examples/web.rb +9 -0
  338. data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
  339. data/vendor/assets/build/medias/rubies/test.rb +1 -0
  340. data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
  341. data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
  342. data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
  343. data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
  344. data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
  345. data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
  346. data/vendor/assets/r&d/ping.rb +3 -0
  347. data/vendor/assets/r&d/storage.rb +9 -0
  348. data/vendor/assets/r&d/view_example.rb +21 -0
  349. data/vendor/assets/server/atome_server.rb +74 -27
  350. data/vendor/assets/server/config.ru +2 -14
  351. metadata +424 -12
  352. data/lib/atome/kernel/atome_genesis.rb +0 -2
  353. data/lib/atome/kernel/properties/geometry.rb +0 -2
  354. data/vendor/assets/build/js/opal/opal_parser.js +0 -0
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ # TODO: Id generator
4
+ # Add missing params (methods for noobs only?)
5
+ # Sanitizer (methods for noobs only?)
6
+ # Sort params (methods for noobs only?)
7
+ # Pre-processor
8
+ # Renderer
9
+ # Store
10
+ # Post-processor
11
+ # Add or set
12
+ # Getter
13
+ # parental
14
+ # modify html file to be able to add meta data
15
+
16
+ # This is the main entry for Atome class
17
+ class Atome
18
+ include Genesis
19
+ include Sanitizer
20
+ include ServerRenderer
21
+ include Render
22
+ # include OpalRenderer
23
+ # include HeadlessRenderer
24
+ def self.atome(params)
25
+ Atome.new(params)
26
+ end
27
+
28
+ def self.current_machine_decision(platform, output)
29
+ case platform
30
+ when /darwin/
31
+ ::Regexp.last_match(1) if output =~ /en1.*?(([A-F0-9]{2}:){5}[A-F0-9]{2})/im
32
+ when /win32/
33
+ ::Regexp.last_match(1) if output =~ /Physical Address.*?(([A-F0-9]{2}-){5}[A-F0-9]{2})/im
34
+ else
35
+ # Cases for other platforms...
36
+ 'unknown platform'
37
+ end
38
+ platform
39
+ end
40
+
41
+ def self.current_machine
42
+ platform = RUBY_PLATFORM.downcase
43
+ output = `#{platform =~ /win32/ ? 'ipconfig /all' : 'ifconfig'}`
44
+ current_machine_decision(platform, output)
45
+ # TODO: check the code above and create a sensible identity
46
+ end
47
+
48
+ def self.current_user
49
+ @user
50
+ end
51
+
52
+ def self.current_user=(user)
53
+ # TODO: create or load an existing user
54
+ # if user needs to be create the current_user will be eVe
55
+ @user = user
56
+ end
57
+
58
+ def identity_generator
59
+ { date: Time.now, location: geolocation }
60
+ end
61
+
62
+ def additional_helper(params)
63
+ virtual_atome = Atome.new({})
64
+ @additional = virtual_atome
65
+ params.each_with_index do |additional, index|
66
+ new_atome = Atome.new({})
67
+ virtual_atome.instance_variable_set("@virtual#{index}", new_atome)
68
+ additional.each do |param, value|
69
+ new_atome.send(param, value)
70
+ end
71
+ end
72
+ end
73
+
74
+ def additional(params = nil)
75
+ if params
76
+ additional_helper(params)
77
+ else
78
+ @additional
79
+ end
80
+ end
81
+
82
+ def initialize(params = {}, &proc)
83
+ # We initialize the renderer here
84
+ @render=[]
85
+ # # TODO: check if we need to add properties for the root object before sending the params
86
+ params.each do |atome, values|
87
+ # We add the proc if it exist
88
+ values[:bloc] = { bloc: proc }
89
+ send(atome, values)
90
+ end
91
+ Universe.atomes_add(self)
92
+ end
93
+ end
94
+
95
+ # initialize Universe
96
+ Universe.connected
97
+ # Atome.new( identity: {type: :eVe, aui: :a_97987987987})
98
+ puts "atome version : #{Atome::VERSION}"
@@ -0,0 +1,387 @@
1
+ # frozen_string_literal: true
2
+
3
+ # generators
4
+
5
+ Genesis.particle_creator(:html_type)
6
+ Genesis.particle_creator(:html_object)
7
+
8
+
9
+ Genesis.atome_creator(:shape)
10
+
11
+ Genesis.atome_creator(:shadow)
12
+ # Genesis.atome_creator(:additional)
13
+ Genesis.atome_creator(:content)
14
+
15
+ Genesis.atome_creator(:color)
16
+
17
+ Genesis.atome_creator_option(:color_sanitizer_proc) do |params, atome|
18
+ unless params.instance_of? Hash
19
+ if RUBY_ENGINE.downcase == 'opal'
20
+ rgb_color = `d = document.createElement("div");
21
+ d.style.color = #{params};
22
+ document.body.appendChild(d)
23
+ rgb_color=(window.getComputedStyle(d).color);
24
+ d.remove();
25
+ `
26
+ color_converted = { red: 0, green: 0, blue: 0, alpha: 1 }
27
+ rgb_color.gsub("rgb(", "").gsub(")", "").split(",").each_with_index do |component, index|
28
+ color_converted[color_converted.keys[index]] = component.to_i / 255
29
+ end
30
+ else
31
+ rgb_color = Color::CSS["red"].css_rgb
32
+ color_converted = { red: 0, green: 0, blue: 0, alpha: 1 }
33
+ rgb_color.gsub("rgb(", "").gsub(")", "").gsub("%", "").split(",").each_with_index do |component, index|
34
+ component = component.to_i / 100
35
+ color_converted[color_converted.keys[index]] = component
36
+ end
37
+ end
38
+ params = { render: [:html], id: "color_#{atome.id}", type: :color }.merge(color_converted)
39
+ end
40
+ params
41
+ end
42
+
43
+ Genesis.atome_creator(:shadow)
44
+
45
+ # Example below
46
+
47
+ # Genesis.atome_creator(:color) do |params|
48
+ # # puts "extra color code executed!! : #{params}"
49
+ # end
50
+ # Genesis.atome_creator_option(:color_pre_save_proc) do |params|
51
+ # puts "1- optional color_pre_save_proc: #{params}\n"
52
+ # end
53
+ #
54
+ # Genesis.atome_creator_option(:color_post_save_proc) do |params|
55
+ # puts "2- optional color_post_save_proc: #{params}\n"
56
+ # end
57
+ # #
58
+ # Genesis.atome_creator_option(:left_pre_render_proc) do
59
+ # puts "3 - optional color_pre_render_proc\n"
60
+ # end
61
+ # Genesis.atome_creator_option(:left_post_render_proc) do
62
+ # puts "4 - optional color_post_render_proc\n"
63
+ # end
64
+ #
65
+ # Genesis.atome_creator_option(:color_post_render_proc) do
66
+ # # puts "optional color_post_render_proc\n"
67
+ # end
68
+ #
69
+ # Genesis.atome_creator_option(:color_getter_pre_proc) do
70
+ # # puts "optional color_getter_pre_proc\n"
71
+ # end
72
+
73
+ Genesis.particle_creator(:id) do
74
+ end
75
+ Genesis.particle_creator(:left)
76
+ Genesis.particle_creator(:right)
77
+ Genesis.particle_creator(:top)
78
+ Genesis.particle_creator(:bottom)
79
+ Genesis.particle_creator(:width)
80
+ Genesis.particle_creator(:height)
81
+ Genesis.particle_creator(:red)
82
+ Genesis.particle_creator(:green)
83
+ Genesis.particle_creator(:blue)
84
+ Genesis.particle_creator(:alpha)
85
+ Genesis.particle_creator(:type)
86
+ Genesis.particle_creator(:smooth)
87
+ Genesis.particle_creator(:blur)
88
+ Genesis.particle_creator(:touch)
89
+ # Genesis.atome_creator_option(:type_pre_render_proc) do |params|
90
+ # # alert "it works and get #{params}"
91
+ # params[:value]
92
+ # end
93
+
94
+ # important exemple below how to prevent rendering
95
+ # Genesis.atome_creator_option(:top_render_proc) do |params|
96
+ # puts "====---> Hurrey no rendering : #{params}"
97
+ # end
98
+
99
+ Genesis.particle_creator(:render)
100
+ Genesis.particle_creator(:drm)
101
+ Genesis.particle_creator(:parent)
102
+
103
+ Genesis.atome_creator_option(:parent_pre_render_proc) do |params|
104
+ unless params[:value].instance_of? Array
105
+ params[:value] = [params[:value]]
106
+ end
107
+ params[:value]
108
+ end
109
+ Genesis.particle_creator(:date)
110
+ Genesis.particle_creator(:location)
111
+
112
+ # generate renderers
113
+
114
+ Genesis.generate_html_renderer(:type) do |value, atome, proc|
115
+ send("#{value}_html", value, atome, proc)
116
+ end
117
+
118
+ Genesis.generate_html_renderer(:shape) do |value, atome, proc|
119
+ id_found = id
120
+ instance_exec(&proc) if proc.is_a?(Proc)
121
+ DOM do
122
+ div(id: id_found).atome
123
+ end.append_to($document[:user_view])
124
+ @html_object = $document[id_found]
125
+ @html_type = :div
126
+ end
127
+
128
+ Genesis.generate_html_renderer(:color) do |value, atome, proc|
129
+ instance_exec(&proc) if proc.is_a?(Proc)
130
+ @html_type = :style
131
+ $document.head << DOM("<style atome='#{type}' id='#{id}'></style>")
132
+ end
133
+
134
+ Genesis.generate_html_renderer(:red) do |value, atome, proc|
135
+ green_found = green
136
+ green_found ||= 0
137
+ blue_found = blue
138
+ blue_found ||= 0
139
+ alpha_found = alpha
140
+ alpha_found ||= 0
141
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{value * 255},#{green_found * 255},#{blue_found * 255},#{alpha_found})}\n"
142
+
143
+ end
144
+ Genesis.generate_html_renderer(:green) do |value, atome, proc|
145
+ red_found = red
146
+ red_found ||= 0
147
+ blue_found = blue
148
+ blue_found ||= 0
149
+ alpha_found = alpha
150
+ alpha_found ||= 0
151
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{value * 255},#{blue_found * 255},#{alpha_found})}\n"
152
+
153
+ end
154
+
155
+ Genesis.generate_html_renderer(:blue) do |value, atome, proc|
156
+ red_found = red
157
+ red_found ||= 0
158
+ green_found = green
159
+ green_found ||= 0
160
+ alpha_found = alpha
161
+ alpha_found ||= 0
162
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{value * 255},#{alpha_found})}\n"
163
+
164
+ end
165
+
166
+ Genesis.generate_html_renderer(:alpha) do |value, atome, proc|
167
+ red_found = red
168
+ red_found ||= 0
169
+ green_found = green
170
+ green_found ||= 0
171
+ blue_found = blue
172
+ blue_found ||= 0
173
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{blue_found * 255},#{value})}\n"
174
+ end
175
+
176
+ Genesis.generate_html_renderer(:drm) do |value, atome, proc|
177
+ # instance_exec(&proc) if proc.is_a?(Proc)
178
+ end
179
+
180
+ Genesis.generate_html_renderer(:parent) do |values, atome, proc|
181
+ instance_exec(&proc) if proc.is_a?(Proc)
182
+ values.each do |value|
183
+ if @html_type == :style
184
+ # we remove previous class if the are of the same type of the type
185
+ # ex if there's a color already assign we remove it to allow the new one to be visible
186
+ html_parent = grab(value).instance_variable_get("@html_object")
187
+ html_parent.class_names.each do |class_name|
188
+ if $document[class_name] && $document[class_name].attributes[:atome]
189
+ class_to_remove = $document[class_name].attributes[:id]
190
+ html_parent.remove_class(class_to_remove)
191
+ end
192
+ end
193
+ $document[value].add_class(id)
194
+ else
195
+ @html_object.append_to($document[value])
196
+ end
197
+ end
198
+ end
199
+ Genesis.generate_html_renderer(:id) do |value, atome, proc|
200
+ # send("#{value}_html", value, atome, proc)
201
+ end
202
+
203
+ Genesis.generate_html_renderer(:left) do |value, atome, proc|
204
+ @html_object.style[:left] = "#{value}px" unless @html_type == :style
205
+ end
206
+
207
+ Genesis.generate_html_renderer(:right) do |value, atome, proc|
208
+ @html_object.style[:right] = "#{value}px" unless @html_type == :style
209
+ end
210
+
211
+ Genesis.generate_html_renderer(:top) do |value, atome, proc|
212
+ @html_object.style[:top] = "#{value}px" unless @html_type == :style
213
+ end
214
+
215
+ Genesis.generate_html_renderer(:bottom) do |value, atome, proc|
216
+ @html_object.style[:bottom] = "#{value}px" unless @html_type == :style
217
+ end
218
+
219
+ Genesis.generate_html_renderer(:width) do |value, atome, proc|
220
+ @html_object.style[:width] = "#{value}px" unless @html_type == :style
221
+ end
222
+
223
+ Genesis.generate_html_renderer(:height) do |value, atome, proc|
224
+ @html_object.style[:height] = "#{value}px" unless @html_type == :style
225
+ end
226
+
227
+ Genesis.particle_creator(:rotate) do |params, atome, &proc|
228
+ # puts atome
229
+ # alert :pl
230
+ instance_exec(method_name, params, atome, &proc) if proc.is_a?(Proc)
231
+ end
232
+ Genesis.generate_html_renderer(:rotate) do |value, atome, proc|
233
+ @html_object.style[:transform] = "rotate(#{value}deg)" unless @html_type == :style
234
+ end
235
+
236
+ Genesis.generate_html_renderer(:smooth) do |value, atome, proc|
237
+ formated_params = case value
238
+ when Array
239
+ properties = []
240
+ value.each do |param|
241
+ properties << "#{param}px"
242
+ end
243
+ properties.join(' ').to_s
244
+ when Integer
245
+ "#{value}px"
246
+ else
247
+ value
248
+ end
249
+ @html_object.style['border-radius'] = formated_params unless @html_type == :style
250
+ end
251
+
252
+ Genesis.generate_html_renderer(:touch) do |value, atome, proc|
253
+ @html_object.on :click do |e|
254
+ instance_exec(&proc) if proc.is_a?(Proc)
255
+ end
256
+ end
257
+
258
+ #drag
259
+ def dragCallback(page_x, page_y, x, y, current_object, proc)
260
+ current_object.instance_variable_set('@left', x)
261
+ current_object.instance_variable_set('@top', y)
262
+ instance_exec(page_x, page_y, &proc) if proc.is_a?(Proc)
263
+ end
264
+
265
+ Genesis.particle_creator(:drag)
266
+
267
+ Genesis.generate_headless_renderer(:drag) do |value, atome, user_proc|
268
+ puts "msg from headless drag method: value is #{value} , atome class is #{atome.class}"
269
+ instance_exec(&user_proc) if user_proc.is_a?(Proc)
270
+ end
271
+
272
+ Genesis.generate_html_renderer(:drag) do |value, atome, user_proc|
273
+ # FIXME: we should find a s solution to pass the proc to the dragCallback toavoid the test below
274
+ @html_drag = user_proc if user_proc
275
+ if value == :remove
276
+ @html_object.remove_class(:draggable)
277
+ else
278
+ @html_object.add_class(:draggable)
279
+ end
280
+ end
281
+
282
+ Genesis.particle_creator(:overflow)
283
+ Genesis.generate_html_renderer(:overflow) do |value, atome, proc|
284
+ @html_object.style[:overflow] = value unless @html_type == :style
285
+ end
286
+
287
+ Genesis.particle_creator(:bloc)
288
+
289
+ # image
290
+
291
+ Genesis.atome_creator(:image)
292
+ Genesis.particle_creator(:path)
293
+ Genesis.generate_html_renderer(:path) do |value, atome, proc|
294
+ @html_object[:src] = value
295
+ end
296
+ Genesis.generate_html_renderer(:image) do |value, atome, proc|
297
+ id_found = id
298
+ instance_exec(&proc) if proc.is_a?(Proc)
299
+ DOM do
300
+ img({ id: id_found }).atome
301
+ end.append_to($document[:user_view])
302
+ @html_object = $document[id_found]
303
+ @html_type = :image
304
+ end
305
+
306
+ # text
307
+
308
+ Genesis.atome_creator(:text)
309
+ Genesis.particle_creator(:string)
310
+
311
+ Genesis.generate_html_renderer(:string) do |value, atome, proc|
312
+ @html_object.text = value
313
+ end
314
+ Genesis.particle_creator(:visual)
315
+ Genesis.generate_html_renderer(:visual) do |value, atome, proc|
316
+ @html_object.style['font-size'] = "#{value[:size]}px"
317
+ end
318
+ Genesis.generate_html_renderer(:text) do |value, atome, proc|
319
+ id_found = id
320
+ instance_exec(&proc) if proc.is_a?(Proc)
321
+ DOM do
322
+ div(id: id_found).atome
323
+ end.append_to($document[:user_view])
324
+ @html_object = $document[id_found]
325
+ @html_type = :text
326
+ end
327
+
328
+
329
+ # video
330
+ Genesis.atome_creator(:video)
331
+ Genesis.generate_html_renderer(:video) do |value, atome, proc|
332
+ id_found = id
333
+ instance_exec(&proc) if proc.is_a?(Proc)
334
+ DOM do
335
+ video({ id: id_found, autoplay: true }).atome
336
+ end.append_to($document[:user_view])
337
+ @html_object = $document[id_found]
338
+ @html_type = :video
339
+ end
340
+
341
+
342
+ # particles method below to allow to retrieve all particles for an atome
343
+ Genesis.particle_creator(:particles)
344
+ Genesis.atome_creator_option(:particles_getter_pre_proc) do |params|
345
+ atome_found = params[:atome]
346
+ particles_hash = {}
347
+ atome_found.instance_variables.each do |particle_found|
348
+ particle_content = atome_found.instance_variable_get(particle_found)
349
+ particles_hash[particle_found] = particle_content
350
+ end
351
+ particles_hash
352
+ end
353
+
354
+
355
+ # link
356
+ Genesis.particle_creator(:link)
357
+ Genesis.atome_creator_option(:link_pre_render_proc) do |params|
358
+ atome_found = params[:atome]
359
+ atome_to_link = grab(params[:value])
360
+ particles_found = atome_to_link.particles
361
+ atome_type = particles_found.delete('@type')
362
+ sanitized_particles = {}
363
+ particles_found.each do |particle_name, value|
364
+ particle_name = particle_name.gsub('@', '')
365
+ sanitized_particles[particle_name] = value
366
+ end
367
+ sanitized_particles[:parent]=[atome_found.id]
368
+ atome_found.send(atome_type, sanitized_particles)
369
+ params[:value]
370
+ end
371
+ Genesis.atome_creator(:web)
372
+ Genesis.particle_creator(:path)
373
+ Genesis.generate_html_renderer(:path) do |value, atome, proc|
374
+ @html_object[:src] = value
375
+ end
376
+ Genesis.generate_html_renderer(:web) do |value, atome, proc|
377
+ id_found = id
378
+ instance_exec(&proc) if proc.is_a?(Proc)
379
+ DOM do
380
+ iframe({ id: id_found }).atome
381
+ end.append_to($document[:user_view])
382
+ @html_object = $document[id_found]
383
+ @html_object.attributes[:allow]='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
384
+ @html_object.attributes[:allowfullscreen]=true
385
+ @html_type = :web
386
+ end
387
+