atome 0.1.00009 → 0.4.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +74 -6
  4. data/Rakefile +15 -6
  5. data/app_builder_helpers/Rakefile +184 -24
  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/helper.rb +112 -0
  38. data/lib/atome/kernel/atome.rb +99 -0
  39. data/lib/atome/kernel/generators/generator.rb +517 -0
  40. data/lib/atome/kernel/generators/genesis.rb +277 -0
  41. data/lib/atome/kernel/generators/sanitizer.rb +73 -0
  42. data/lib/atome/kernel/generators/shapes.rb +55 -0
  43. data/lib/atome/kernel/helpers/geolocation.rb +14 -0
  44. data/lib/atome/kernel/helpers/internal_methods.rb +173 -0
  45. data/lib/atome/kernel/helpers/ping.rb +17 -0
  46. data/lib/atome/kernel/helpers/sha.rb +6 -0
  47. data/lib/atome/kernel/helpers/utilities.rb +39 -0
  48. data/lib/atome/kernel/properties/essential.rb +77 -0
  49. data/lib/atome/kernel/sparkle.rb +38 -0
  50. data/lib/atome/kernel/universe.rb +37 -0
  51. data/lib/atome/renderers/headless/properties/generator.rb +1 -0
  52. data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
  53. data/lib/atome/renderers/opal/extensions/color.rb +23 -0
  54. data/lib/atome/renderers/opal/extensions/geolocation.rb +13 -0
  55. data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
  56. data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
  57. data/lib/atome/renderers/opal/opal_browser.rb +2 -1
  58. data/lib/atome/renderers/opal/opal_parser.rb +1 -0
  59. data/lib/atome/renderers/opal/properties/generator.rb +1 -0
  60. data/lib/atome/renderers/renderer.rb +13 -0
  61. data/lib/atome/renderers/server/properties/generator.rb +9 -0
  62. data/lib/atome/version.rb +2 -1
  63. data/lib/atome.rb +46 -2
  64. data/vendor/assets/Guardfile +4 -0
  65. data/vendor/assets/Rakefile +3 -0
  66. data/vendor/assets/application/index.rb +4 -0
  67. data/vendor/assets/build/css/style.css +25 -8
  68. data/vendor/assets/build/favicon.ico +0 -0
  69. data/vendor/assets/build/index.html +15 -4
  70. data/vendor/assets/build/js/atome/atome.js +82 -0
  71. data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
  72. data/vendor/assets/build/js/third_parties/interact.min.js +2 -3
  73. data/vendor/assets/build/js/third_parties/ping.min.js +2 -0
  74. data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
  75. data/vendor/assets/build/js/third_parties/three.min.js +6 -0
  76. data/vendor/assets/build/js/third_parties/w3color.js +646 -0
  77. data/vendor/assets/build/js/third_parties/zim.min.js +1 -0
  78. data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
  79. data/vendor/assets/build/medias/audios/clap.wav +0 -0
  80. data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
  81. data/vendor/assets/build/medias/audios/guitar.wav +0 -0
  82. data/vendor/assets/build/medias/audios/hihat.wav +0 -0
  83. data/vendor/assets/build/medias/audios/kick.wav +0 -0
  84. data/vendor/assets/build/medias/audios/riff.m4a +0 -0
  85. data/vendor/assets/build/medias/audios/snare.wav +0 -0
  86. data/vendor/assets/build/medias/audios/tom.wav +0 -0
  87. data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
  88. data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
  89. data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
  90. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
  91. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
  92. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
  93. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
  94. data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
  95. data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
  96. data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
  97. data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
  98. data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
  99. data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
  100. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
  101. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
  102. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
  103. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
  104. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
  105. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
  106. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
  107. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
  108. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
  109. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
  110. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
  111. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
  112. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
  113. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
  114. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
  115. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
  116. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
  117. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
  118. data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
  119. data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
  120. data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
  121. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
  122. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
  123. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
  124. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
  125. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
  126. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
  127. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
  128. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
  129. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
  130. data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
  131. data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
  132. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
  133. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
  134. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
  135. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
  136. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
  137. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
  138. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
  139. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
  140. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
  141. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
  142. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
  143. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
  144. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
  145. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
  146. data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
  147. data/vendor/assets/build/medias/images/atome.svg +12 -0
  148. data/vendor/assets/build/medias/images/avion.jpg +0 -0
  149. data/vendor/assets/build/medias/images/ballanim.png +0 -0
  150. data/vendor/assets/build/medias/images/beach.jpg +0 -0
  151. data/vendor/assets/build/medias/images/blank.png +0 -0
  152. data/vendor/assets/build/medias/images/boat.png +0 -0
  153. data/vendor/assets/build/medias/images/cache.svg +10 -0
  154. data/vendor/assets/build/medias/images/dices.png +0 -0
  155. data/vendor/assets/build/medias/images/eVe_back.png +0 -0
  156. data/vendor/assets/build/medias/images/elephant.png +0 -0
  157. data/vendor/assets/build/medias/images/eyes.jpg +0 -0
  158. data/vendor/assets/build/medias/images/freebsd.png +0 -0
  159. data/vendor/assets/build/medias/images/grain_texture.png +0 -0
  160. data/vendor/assets/build/medias/images/green_planet.png +0 -0
  161. data/vendor/assets/build/medias/images/image_missing.svg +9 -0
  162. data/vendor/assets/build/medias/images/jeezs.png +0 -0
  163. data/vendor/assets/build/medias/images/keyboard.png +0 -0
  164. data/vendor/assets/build/medias/images/killer.jpg +0 -0
  165. data/vendor/assets/build/medias/images/living_room.png +0 -0
  166. data/vendor/assets/build/medias/images/logo.svg +14 -0
  167. data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
  168. data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
  169. data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
  170. data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
  171. data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
  172. data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
  173. data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
  174. data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
  175. data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
  176. data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
  177. data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
  178. data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
  179. data/vendor/assets/build/medias/images/moto.png +0 -0
  180. data/vendor/assets/build/medias/images/noise.svg +17 -0
  181. data/vendor/assets/build/medias/images/piano.png +0 -0
  182. data/vendor/assets/build/medias/images/poisson.jpg +0 -0
  183. data/vendor/assets/build/medias/images/red_planet.png +0 -0
  184. data/vendor/assets/build/medias/images/sky.jpg +0 -0
  185. data/vendor/assets/build/medias/images/the_mask.svg +8 -0
  186. data/vendor/assets/build/medias/images/tile.png +0 -0
  187. data/vendor/assets/build/medias/images/tile_black.png +0 -0
  188. data/vendor/assets/build/medias/images/tile_white.png +0 -0
  189. data/vendor/assets/build/medias/javascripts/test.js +1 -0
  190. data/vendor/assets/build/medias/rubies/examples/!run.rb +16 -0
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
  254. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
  255. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
  256. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
  257. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
  258. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
  259. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
  260. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
  261. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
  262. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
  263. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
  264. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
  265. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
  266. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
  267. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
  268. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
  269. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
  270. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
  271. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
  272. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
  273. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
  274. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
  275. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
  276. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
  277. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
  278. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
  279. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
  280. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
  281. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
  282. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
  283. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
  284. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
  285. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
  286. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
  287. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
  288. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
  289. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
  290. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
  291. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
  292. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
  293. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
  294. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
  295. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
  296. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
  297. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
  298. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
  299. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
  300. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
  301. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
  302. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
  303. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
  304. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
  305. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
  306. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
  307. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
  308. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
  309. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
  310. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
  311. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
  312. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
  313. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
  314. data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
  315. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
  316. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
  317. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  318. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
  319. data/vendor/assets/build/medias/rubies/examples/box.rb +16 -0
  320. data/vendor/assets/build/medias/rubies/examples/circle.rb +1 -0
  321. data/vendor/assets/build/medias/rubies/examples/clear.rb +9 -0
  322. data/vendor/assets/build/medias/rubies/examples/code.rb +5 -0
  323. data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
  324. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
  325. data/vendor/assets/build/medias/rubies/examples/drag.rb +43 -0
  326. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
  327. data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
  328. data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
  329. data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
  330. data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
  331. data/vendor/assets/build/medias/rubies/examples/link.rb +11 -0
  332. data/vendor/assets/build/medias/rubies/examples/on.rb +16 -0
  333. data/vendor/assets/build/medias/rubies/examples/parent.rb +13 -0
  334. data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
  335. data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
  336. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
  337. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  338. data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
  339. data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
  340. data/vendor/assets/build/medias/rubies/examples/text.rb +18 -0
  341. data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
  342. data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
  343. data/vendor/assets/build/medias/rubies/examples/video.rb +52 -0
  344. data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
  345. data/vendor/assets/build/medias/rubies/examples/web.rb +10 -0
  346. data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
  347. data/vendor/assets/build/medias/rubies/test.rb +1 -0
  348. data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
  349. data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
  350. data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
  351. data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
  352. data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
  353. data/vendor/assets/build/medias/videos/lion_king.mp4 +0 -0
  354. data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
  355. data/vendor/assets/build/medias/videos/starwars.mov +0 -0
  356. data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
  357. data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
  358. data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
  359. data/vendor/assets/r&d/ping.rb +3 -0
  360. data/vendor/assets/r&d/storage.rb +9 -0
  361. data/vendor/assets/r&d/view_example.rb +21 -0
  362. data/vendor/assets/server/atome_server.rb +74 -27
  363. data/vendor/assets/server/config.ru +2 -14
  364. metadata +438 -14
  365. data/lib/atome/kernel/atome_genesis.rb +0 -2
  366. data/lib/atome/kernel/properties/geometry.rb +0 -2
  367. data/vendor/assets/build/js/opal/opal_browser.js +0 -0
  368. data/vendor/assets/build/js/opal/opal_parser.js +0 -0
@@ -0,0 +1,517 @@
1
+ # frozen_string_literal: true
2
+
3
+ # generators
4
+
5
+ Genesis.particle_creator(:html_type)
6
+
7
+ Genesis.particle_creator(:html_object)
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
+ Genesis.atome_creator(:video) do |params, &proc|
46
+ # todo: factorise code below
47
+ if params
48
+ default_renderer = Sanitizer.default_params[:render]
49
+ generated_id = params[:id] || "video_#{Universe.atomes.length}"
50
+ generated_render = params[:render] || default_renderer unless params[:render].instance_of? Hash
51
+ generated_parent = params[:parent] || id
52
+ default_params = { render: [generated_render], id: generated_id, type: :video, parent: [generated_parent],
53
+ path: './medias/videos/video_missing.mp4', left: 139, top: 333, width: 199, height: 199 }
54
+ params = default_params.merge(params)
55
+ end
56
+ params
57
+ end
58
+
59
+ # Example below
60
+
61
+ # Genesis.atome_creator(:color) do |params|
62
+ # # puts "extra color code executed!! : #{params}"
63
+ # end
64
+ # Genesis.atome_creator_option(:color_pre_save_proc) do |params|
65
+ # puts "1- optional color_pre_save_proc: #{params}\n"
66
+ # end
67
+ #
68
+ # Genesis.atome_creator_option(:color_post_save_proc) do |params|
69
+ # puts "2- optional color_post_save_proc: #{params}\n"
70
+ # end
71
+ # #
72
+ # Genesis.atome_creator_option(:left_pre_render_proc) do
73
+ # puts "3 - optional color_pre_render_proc\n"
74
+ # end
75
+ # Genesis.atome_creator_option(:left_post_render_proc) do
76
+ # puts "4 - optional color_post_render_proc\n"
77
+ # end
78
+ #
79
+ # Genesis.atome_creator_option(:color_post_render_proc) do
80
+ # # puts "optional color_post_render_proc\n"
81
+ # end
82
+ #
83
+ # Genesis.atome_creator_option(:color_getter_pre_proc) do
84
+ # # puts "optional color_getter_pre_proc\n"
85
+ # end
86
+
87
+ Genesis.particle_creator(:id)
88
+ Genesis.particle_creator(:left)
89
+ Genesis.particle_creator(:right)
90
+ Genesis.particle_creator(:top)
91
+ Genesis.particle_creator(:bottom)
92
+ Genesis.particle_creator(:width)
93
+ Genesis.particle_creator(:height)
94
+ Genesis.particle_creator(:red)
95
+ Genesis.particle_creator(:green)
96
+ Genesis.particle_creator(:blue)
97
+ Genesis.particle_creator(:alpha)
98
+ Genesis.particle_creator(:type)
99
+ Genesis.particle_creator(:smooth)
100
+ Genesis.particle_creator(:blur)
101
+ Genesis.particle_creator(:touch)
102
+ Genesis.particle_creator(:play)
103
+ Genesis.particle_creator(:pause)
104
+ Genesis.particle_creator(:time)
105
+
106
+ # Genesis.atome_creator_option(:type_pre_render_proc) do |params|
107
+ # # "it works and get #{params}"
108
+ # params[:value]
109
+ # end
110
+
111
+ # important exemple below how to prevent rendering
112
+ # Genesis.atome_creator_option(:top_render_proc) do |params|
113
+ # puts "====---> Hurrey no rendering : #{params}"
114
+ # end
115
+
116
+ Genesis.particle_creator(:render)
117
+ Genesis.particle_creator(:drm)
118
+
119
+ Genesis.particle_creator(:child)
120
+
121
+ Genesis.particle_creator(:parent) do |parents|
122
+ parents.each do |parent|
123
+ #TODO : create a root atome instead of using the condition below
124
+ if parent != :user_view
125
+ grab(parent).child << id
126
+ end
127
+ end
128
+ parents
129
+ end
130
+
131
+ Genesis.atome_creator_option(:parent_pre_render_proc) do |params|
132
+ current_atome = params[:atome]
133
+ unless params[:value].instance_of? Array
134
+ params[:value] = [params[:value]]
135
+ end
136
+ current_atome.instance_variable_set("@parent", params[:value])
137
+ end
138
+
139
+ Genesis.particle_creator(:date)
140
+ Genesis.particle_creator(:location)
141
+
142
+ Genesis.atome_creator_option(:id_pre_render_proc) do |params|
143
+ new_id = params[:value]
144
+ current_atome = params[:atome]
145
+ old_id = current_atome.id
146
+ current_atome.instance_variable_set('@id', new_id)
147
+ # we change id id the atomes hash
148
+ Universe.change_atome_id(old_id, new_id)
149
+ current_atome.html_object.id = new_id if current_atome.html_object
150
+
151
+ end
152
+
153
+
154
+ # generate renderers
155
+
156
+ Genesis.generate_html_renderer(:type) do |value, atome, proc|
157
+ send("#{value}_html", value, atome, proc)
158
+ value
159
+ end
160
+
161
+ Genesis.generate_html_renderer(:shape) do |value, atome, proc|
162
+ id_found = id
163
+ instance_exec(&proc) if proc.is_a?(Proc)
164
+ DOM do
165
+ div(id: id_found).atome
166
+ end.append_to($document[:user_view])
167
+ @html_object = $document[id_found]
168
+ @html_type = :div
169
+ end
170
+
171
+ Genesis.generate_html_renderer(:color) do |value, atome, proc|
172
+ instance_exec(&proc) if proc.is_a?(Proc)
173
+ @html_type = :style
174
+ # we remove previous unused style tag
175
+ $document[id].remove if $document[id]
176
+ $document.head << DOM("<style atome='#{type}' id='#{id}'></style>")
177
+ end
178
+
179
+ Genesis.generate_html_renderer(:red) do |value, atome, proc|
180
+ green_found = green
181
+ green_found ||= 0
182
+ blue_found = blue
183
+ blue_found ||= 0
184
+ alpha_found = alpha
185
+ alpha_found ||= 0
186
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{value * 255},#{green_found * 255},#{blue_found * 255},#{alpha_found})}\n"
187
+
188
+ end
189
+ Genesis.generate_html_renderer(:green) do |value, atome, proc|
190
+ red_found = red
191
+ red_found ||= 0
192
+ blue_found = blue
193
+ blue_found ||= 0
194
+ alpha_found = alpha
195
+ alpha_found ||= 0
196
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{value * 255},#{blue_found * 255},#{alpha_found})}\n"
197
+
198
+ end
199
+
200
+ Genesis.generate_html_renderer(:blue) do |value, atome, proc|
201
+ red_found = red
202
+ red_found ||= 0
203
+ green_found = green
204
+ green_found ||= 0
205
+ alpha_found = alpha
206
+ alpha_found ||= 0
207
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{value * 255},#{alpha_found})}\n"
208
+
209
+ end
210
+
211
+ Genesis.generate_html_renderer(:alpha) do |value, atome, proc|
212
+ red_found = red
213
+ red_found ||= 0
214
+ green_found = green
215
+ green_found ||= 0
216
+ blue_found = blue
217
+ blue_found ||= 0
218
+ $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{blue_found * 255},#{value})}\n"
219
+ end
220
+
221
+ Genesis.generate_html_renderer(:drm)
222
+
223
+ Genesis.generate_html_renderer(:parent) do |values, atome, proc|
224
+ instance_exec(&proc) if proc.is_a?(Proc)
225
+ values.each do |value|
226
+ atome.html_decision(@html_type, value, id)
227
+ end
228
+ end
229
+
230
+
231
+
232
+ Genesis.generate_html_renderer(:id) do |value, atome, proc|
233
+ # send("#{value}_html", value, atome, proc)
234
+ end
235
+
236
+ Genesis.generate_html_renderer(:left) do |value, atome, proc|
237
+ @html_object.style[:left] = "#{value}px" unless @html_type == :style
238
+ end
239
+
240
+ Genesis.generate_html_renderer(:right) do |value, atome, proc|
241
+ @html_object.style[:right] = "#{value}px" unless @html_type == :style
242
+ end
243
+
244
+ Genesis.generate_html_renderer(:top) do |value, atome, proc|
245
+ @html_object.style[:top] = "#{value}px" unless @html_type == :style
246
+ end
247
+
248
+ Genesis.generate_html_renderer(:bottom) do |value, atome, proc|
249
+ @html_object.style[:bottom] = "#{value}px" unless @html_type == :style
250
+ end
251
+
252
+ Genesis.generate_html_renderer(:width) do |value, atome, proc|
253
+ @html_object.style[:width] = "#{value}px" unless @html_type == :style
254
+ end
255
+
256
+ Genesis.generate_html_renderer(:height) do |value, atome, proc|
257
+ @html_object.style[:height] = "#{value}px" unless @html_type == :style
258
+ end
259
+
260
+ Genesis.particle_creator(:rotate)
261
+
262
+ Genesis.generate_html_renderer(:rotate) do |value, atome, proc|
263
+ @html_object.style[:transform] = "rotate(#{value}deg)" unless @html_type == :style
264
+ end
265
+
266
+ Genesis.generate_html_renderer(:smooth) do |value, atome, proc|
267
+ formated_params = case value
268
+ when Array
269
+ properties = []
270
+ value.each do |param|
271
+ properties << "#{param}px"
272
+ end
273
+ properties.join(' ').to_s
274
+ when Integer
275
+ "#{value}px"
276
+ else
277
+ value
278
+ end
279
+ @html_object.style['border-radius'] = formated_params unless @html_type == :style
280
+ end
281
+
282
+ Genesis.generate_html_renderer(:touch) do |value, atome, proc|
283
+ @html_object.on :click do |e|
284
+ instance_exec(&proc) if proc.is_a?(Proc)
285
+ end
286
+ end
287
+
288
+ Genesis.generate_html_renderer(:video) do |value, atome, proc|
289
+ id_found = id
290
+ instance_exec(&proc) if proc.is_a?(Proc)
291
+ DOM do
292
+ video({ id: id_found, autoplay: false }).atome
293
+ end.append_to($document[:user_view])
294
+ @html_object = $document[id_found]
295
+ @html_type = :video
296
+ end
297
+
298
+ # overflow
299
+ Genesis.particle_creator(:overflow)
300
+ Genesis.generate_html_renderer(:overflow) do |value, atome, proc|
301
+ @html_object.style[:overflow] = value unless @html_type == :style
302
+ end
303
+
304
+ Genesis.particle_creator(:bloc)
305
+
306
+ # image
307
+
308
+ Genesis.atome_creator(:image)
309
+
310
+ Genesis.generate_html_renderer(:image) do |value, atome, proc|
311
+ id_found = id
312
+ instance_exec(&proc) if proc.is_a?(Proc)
313
+ DOM do
314
+ img({ id: id_found }).atome
315
+ end.append_to($document[:user_view])
316
+ @html_object = $document[id_found]
317
+ @html_type = :image
318
+ end
319
+
320
+ # text
321
+
322
+ Genesis.atome_creator(:text) do |params|
323
+ # TODO: factorise code below
324
+ if params
325
+ default_renderer = Sanitizer.default_params[:render]
326
+ generated_id = params[:id] || "text_#{Universe.atomes.length}"
327
+ generated_render = params[:render] || default_renderer unless params[:render].instance_of? Hash
328
+ generated_parent = params[:parent] || id
329
+
330
+ default_params = { render: [generated_render], id: generated_id, type: :text, parent: [generated_parent],
331
+ visual: { size: 33 }, data: "hello world", left: 39, top: 33,
332
+ color: { render: [generated_render], id: "color_#{generated_id}", type: :color,
333
+ red: 0.09, green: 1, blue: 0.12, alpha: 1 }
334
+ }
335
+ params = default_params.merge(params)
336
+ params
337
+ end
338
+ # params
339
+ end
340
+ Genesis.particle_creator(:string)
341
+
342
+ Genesis.particle_creator(:visual)
343
+ Genesis.generate_html_renderer(:visual) do |value, atome, proc|
344
+ @html_object.style['font-size'] = "#{value[:size]}px"
345
+ end
346
+
347
+ Genesis.generate_html_renderer(:text) do |value, atome, proc|
348
+ id_found = id
349
+ instance_exec(&proc) if proc.is_a?(Proc)
350
+ DOM do
351
+ div(id: id_found).atome.text
352
+ end.append_to($document[:user_view])
353
+ @html_object = $document[id_found]
354
+ @html_type = :text
355
+ end
356
+
357
+ # particles method below to allow to retrieve all particles for an atome
358
+ Genesis.particle_creator(:particles)
359
+ Genesis.atome_creator_option(:particles_getter_pre_proc) do |params|
360
+ atome_found = params[:atome]
361
+ particles_hash = {}
362
+ atome_found.instance_variables.each do |particle_found|
363
+ particle_content = atome_found.instance_variable_get(particle_found)
364
+ particles_hash[particle_found.sub('@', '')] = particle_content
365
+ end
366
+ particles_hash
367
+ end
368
+
369
+ # link
370
+ Genesis.particle_creator(:link)
371
+ Genesis.atome_creator_option(:link_pre_render_proc) do |params|
372
+ atome_found = params[:atome]
373
+ atome_to_link = grab(params[:value])
374
+ particles_found = atome_to_link.particles
375
+ atome_type = particles_found.delete(:type)
376
+ sanitized_particles = {}
377
+ particles_found.each do |particle_name, value|
378
+ particle_name = particle_name.gsub('@', '')
379
+ sanitized_particles[particle_name] = value
380
+ end
381
+ sanitized_particles[:parent] = [atome_found.id]
382
+ atome_found.send(atome_type, sanitized_particles)
383
+ params[:value]
384
+ end
385
+ Genesis.atome_creator(:web)
386
+ Genesis.particle_creator(:path)
387
+ Genesis.generate_html_renderer(:path) do |value, atome, proc|
388
+ @html_object[:src] = value
389
+ end
390
+
391
+ Genesis.generate_html_renderer(:web) do |value, atome, proc|
392
+ id_found = id
393
+ instance_exec(&proc) if proc.is_a?(Proc)
394
+ DOM do
395
+ iframe({ id: id_found }).atome
396
+ end.append_to($document[:user_view])
397
+ @html_object = $document[id_found]
398
+ @html_object.attributes[:allow] = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
399
+ @html_object.attributes[:allowfullscreen] = true
400
+ @html_type = :web
401
+ end
402
+
403
+ Genesis.particle_creator(:data)
404
+
405
+ Genesis.generate_html_renderer(:data) do |value, atome, proc|
406
+ # TODO: create a method for each type
407
+ send("#{type}_data", value)
408
+ end
409
+
410
+ Genesis.particle_creator(:code)
411
+ Genesis.atome_creator_option(:code_pre_render_proc) do |params|
412
+ def get_binding
413
+ binding
414
+ end
415
+
416
+ str = params[:value][:code]
417
+ eval str, get_binding, __FILE__, __LINE__
418
+ params[:value]
419
+ end
420
+ Genesis.particle_creator(:on)
421
+
422
+ Genesis.generate_html_renderer(:on) do |value, atome, proc|
423
+ @html_object.on(value) do |e|
424
+ instance_exec(e, &proc) if proc.is_a?(Proc)
425
+ end
426
+ end
427
+
428
+ Genesis.atome_creator_option(:shape_post_save_proc) do |params|
429
+ current_atome = params[:atome]
430
+ #FIXME: look why we have to look in [:value][:value] this looks suspect
431
+ bloc_found = params[:value][:value][:bloc]
432
+ current_atome.instance_exec(params, &bloc_found) if bloc_found.is_a?(Proc)
433
+ params
434
+ end
435
+
436
+ Genesis.atome_creator_option(:text_post_save_proc) do |params|
437
+ current_atome = params[:atome]
438
+ #FIXME: look why we have to look in [:value][:value] this looks suspect
439
+ bloc_found = params[:value][:value][:bloc]
440
+ current_atome.instance_exec(params, &bloc_found) if bloc_found.is_a?(Proc)
441
+ params
442
+ end
443
+
444
+ Genesis.atome_creator_option(:play_pre_render_proc) do |params|
445
+ params[:atome].send("play_#{params[:atome].type}", params)
446
+ end
447
+
448
+ Genesis.atome_creator_option(:pause_pre_render_proc) do |params|
449
+ params[:atome].send("pause_#{params[:atome].type}", params)
450
+ proc_found = params[:proc]
451
+ params[:atome].instance_exec('::call back from pause render', &proc_found) if proc_found.is_a?(Proc)
452
+ end
453
+
454
+ Genesis.generate_html_renderer(:time) do |value, atome, proc|
455
+ # params[:atome].html_object.currentTime= 33
456
+ @html_object.currentTime = value
457
+ end
458
+
459
+ #drag
460
+ Genesis.generate_html_renderer(:drag) do |value, atome, proc|
461
+ alert ("this is very strange that I had a style tag please check")
462
+ instance_exec(&proc) if proc.is_a?(Proc)
463
+ @html_type = :style
464
+ $document.head << DOM("<style atome='#{type}' id='#{id}'></style>")
465
+ end
466
+ Genesis.particle_creator(:lock)
467
+ Genesis.particle_creator(:target)
468
+ Genesis.atome_creator(:drag) do |params|
469
+ # TODO: factorise code below
470
+ if params
471
+ default_renderer = Sanitizer.default_params[:render]
472
+ generated_id = params[:id] || "drag_#{Universe.atomes.length}"
473
+ generated_render = params[:render] || default_renderer unless params[:render].instance_of? Hash
474
+ generated_parent = params[:parent] || id
475
+ default_params = { render: [generated_render], id: generated_id, type: :drag, parent: [generated_parent], target: [generated_parent]
476
+ }
477
+ params = default_params.merge(params)
478
+ params
479
+ end
480
+ params
481
+ end
482
+ Genesis.particle_creator(:remove)
483
+ Genesis.particle_creator(:fixed)
484
+ Genesis.particle_creator(:max)
485
+ Genesis.particle_creator(:inside)
486
+ Genesis.atome_creator_option(:remove_pre_render_proc) do |params|
487
+ type_found = params[:atome].type
488
+ current_atome = params[:atome]
489
+ particle_to_remove = params[:value]
490
+ current_atome.send("#{type_found}_remove_#{particle_to_remove}", current_atome)
491
+ end
492
+ Genesis.atome_creator_option(:max_pre_render_proc) do |params|
493
+ current_atome = params[:atome]
494
+ current_atome.constraint_helper(params, current_atome, :max)
495
+ end
496
+ Genesis.atome_creator_option(:inside_pre_render_proc) do |params|
497
+ current_atome = params[:atome]
498
+ params[:value] = grab(params[:value]).html_object
499
+ current_atome.constraint_helper(params, current_atome, :max)
500
+ end
501
+ Genesis.atome_creator_option(:lock_pre_render_proc) do |params|
502
+ current_atome = params[:atome]
503
+ current_atome.constraint_helper(params, current_atome, :lock)
504
+ end
505
+ Genesis.atome_creator_option(:fixed_pre_render_proc) do |params|
506
+ current_atome = params[:atome]
507
+ current_atome.constraint_helper(params, current_atome, :fixed)
508
+ end
509
+ Genesis.generate_html_renderer(:target) do |targets, atome, proc|
510
+ targets.each do |value|
511
+ atome_found = grab(value)
512
+ # we get the id of the drag and ad add it as a html class to all children so they become draggable
513
+ atome_found.html_object.add_class(id)
514
+ end
515
+ html_drag_helper(atome, {})
516
+ end
517
+