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,77 @@
1
+ class Atome
2
+
3
+ def identity (params)
4
+ @identity=params
5
+ end
6
+ def new(params)
7
+ puts "add/new : #{params}"
8
+ end
9
+
10
+ def set(params)
11
+ puts "set : #{params}"
12
+ end
13
+
14
+ def self.grab(val)
15
+ Utilities.grab(val)
16
+ end
17
+
18
+ def add(params)
19
+ puts "add : #{params}"
20
+ end
21
+
22
+ def update(params)
23
+ puts "update : #{params}"
24
+ end
25
+
26
+ def refresh
27
+ # delete the object in the view
28
+ self.html_object&.remove
29
+ particles_found = particles
30
+ particles_found.delete(:html_type)
31
+ particles_found.delete(:html_object)
32
+ particles_found.delete(:id)
33
+ particles_found.delete(:dna)
34
+ atomes_to_re_attach = {}
35
+ Utilities.atome_list.each do |atome_to_refresh|
36
+ atome_found = particles_found.delete(atome_to_refresh)
37
+ if atome_found
38
+ particles_found.delete(atome_to_refresh)
39
+ atomes_to_re_attach[atome_found.type] = atome_found
40
+ end
41
+ end
42
+ particles_found.each do |particle_to_refresh, value|
43
+ send(particle_to_refresh, value)
44
+ end
45
+ atomes_to_re_attach.each do |atome_to_attatch, content|
46
+ instance_variable_set("@#{atome_to_attatch}", content)
47
+ html_decision(content.html_type, id, content.id)
48
+ end
49
+ end
50
+
51
+
52
+ def replace(params)
53
+ puts "replace : #{params}"
54
+ end
55
+
56
+ def clear
57
+ child.each do |child_found|
58
+ grab(child_found).html_object&.remove
59
+ end
60
+ child([])
61
+ end
62
+
63
+ def delete(params)
64
+ self.html_object&.remove
65
+ Universe.delete(id)
66
+ end
67
+
68
+ def [](params)
69
+ instance_variable_get(instance_variables[params])
70
+ end
71
+
72
+ def to_s
73
+ inspect.to_s
74
+ end
75
+
76
+ end
77
+
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ # FIXME : try avoid type property duplication (it's the key of the hash and also specified in the hash itself)
4
+
5
+ # let's create the view port
6
+ default_render = if RUBY_ENGINE.downcase == 'opal'
7
+ :html
8
+ else
9
+ :headless
10
+ end
11
+
12
+
13
+ Sanitizer.default_params[:render] = default_render
14
+ Atome.new(
15
+ { shape: { render: [default_render], id: :view, type: :shape, parent: [:user_view],
16
+ left: 0, right: 0, top: 0, bottom: 0,overflow: :auto,
17
+ color: { render: [default_render], id: :view_color, type: :color,
18
+ red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } } }
19
+ )
20
+
21
+
22
+ # init basic object for atome environment
23
+
24
+ # Atome.new is used to create a new atome using best performances but params must be formatted and ordered correctly
25
+
26
+ # use atome.atome to create a new atome using a more permissive syntax less performances but params must be formatted
27
+ # and ordered correctly
28
+
29
+ # Atome.atome ids the easiest way to create a new atome
30
+ # Atome.atome({
31
+ # shape: { left: 0, right: 0, top: 0, bottom: 0, id: :view, color: { id: :c1, render: [:headless],
32
+ # red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } } })
33
+
34
+ # WARNING: when using Atome.new syntax , you must get your object using the .atome
35
+ # example to get the atome above : use a.shape.left and not a.left it wont access the physical object
36
+
37
+ puts "current machine id: #{Atome.current_machine}"
38
+
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # all created atomes are listed here
4
+ class Universe
5
+ def self.app_identity
6
+ # each app hav its own identity, this allow to generate new user identities from th
7
+ @app_identity = 3
8
+ # the identity is define as follow : parentCreatorID_softwareInstanceID_objetID
9
+ # in this case parent is eve so 0, Software instance number is main eVe server which is also 0,
10
+ # and finally the object is 3 as this the third object created by the main server
11
+ end
12
+
13
+ def self.initialize
14
+ @atomes = {}
15
+ end
16
+
17
+ def self.atomes_add(new_atome,atome_id)
18
+ new_atome.instance_variable_set('@id', atome_id)
19
+ @atomes[atome_id] = new_atome
20
+ end
21
+
22
+ def self.change_atome_id(prev_id, new_id)
23
+ @atomes[new_id] = @atomes.delete(prev_id)
24
+ end
25
+
26
+ def self.delete(id)
27
+ @atomes.delete(id)
28
+ end
29
+
30
+ class << self
31
+ attr_reader :atomes
32
+ end
33
+
34
+ def self.connected
35
+ true
36
+ end
37
+ end
@@ -0,0 +1 @@
1
+ # frozen_string_literal: true
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'extensions/geolocation'
4
+ require 'extensions/ping'
5
+ require 'extensions/sha'
6
+ require 'extensions/color'
7
+ require 'properties/generator'
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rgb utility
4
+ class Atome
5
+ def rgb_html(string)
6
+ `
7
+ col = w3color(#{string});
8
+ rgb_col=col.toRgb();
9
+ return Opal.hash(rgb_col)
10
+ `
11
+ end
12
+
13
+ def to_rgb(string)
14
+ rgb_color = rgb_html(string)
15
+
16
+ {
17
+ red: rgb_color[:r] / 255,
18
+ green: rgb_color[:g] / 255,
19
+ blue: rgb_color[:b] / 255,
20
+ alpha: 1
21
+ }
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+
2
+ class Atome
3
+ def geolocation
4
+ localisation = {latitude: nil, longitude: nil}
5
+ $window.navigator.geolocate.then do |pos|
6
+ localisation[:latitude] = pos.coords.latitude
7
+ localisation[:longitude] = pos.coords.longitude
8
+ end.rescue do |err|
9
+ p err
10
+ localisation = nil
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Add on the Atome class
4
+ class Atome
5
+ def ping(my_proc = false)
6
+ instance_exec(my_proc) if my_proc.is_a?(Proc)
7
+
8
+ ` var p = new Ping();
9
+ p.ping('https://'+#{address}+'', function (err, data) {
10
+ if (err) {
11
+ return false;
12
+ } else {
13
+ console.log("the site "+#{address}+" is up!");
14
+ }
15
+ });
16
+ `
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ # addon for the Atome class
4
+ class Atome
5
+ def calculate_sha(string)
6
+ if RUBY_ENGINE.downcase == 'opal'
7
+ `sha256(#{string})`
8
+ else
9
+ Digest::SHA256.hexdigest(string)
10
+ end
11
+ end
12
+ end
@@ -4,4 +4,5 @@
4
4
  require 'opal'
5
5
  require 'native'
6
6
  require 'promise'
7
- require 'browser/setup/full'
7
+ require 'browser/setup/full'
8
+ @atome_client_ready = true
@@ -1,2 +1,3 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal-parser'
@@ -0,0 +1 @@
1
+ # frozen_string_literal: true
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Main render engine
4
+ module Render
5
+ def render_engine(property, value, atome, &proc)
6
+
7
+ renderer_found = atome.render
8
+ renderer_found.each do |renderer|
9
+ renderer_name = "#{property}_#{renderer}"
10
+ send(renderer_name, value,atome, &proc)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # server render methods here
4
+ module ServerRenderer
5
+ def render_server(params, &proc)
6
+ instance_exec(params, &proc) if proc.is_a?(Proc)
7
+ puts "----puts render sever render #{params}"
8
+ end
9
+ end
data/lib/atome/version.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Atome
4
- VERSION = '0.1.00009'
4
+ VERSION = '0.4.7.0'
5
5
  end
6
+ puts "atome version : #{Atome::VERSION}"
data/lib/atome.rb CHANGED
@@ -2,5 +2,49 @@
2
2
 
3
3
  require 'fileutils'
4
4
  require 'atome/version'
5
- require 'atome/kernel/properties/geometry'
6
- require 'atome/kernel/atome_genesis'
5
+ @atome_client_ready = false
6
+
7
+ def eval_protection
8
+ binding
9
+ end
10
+
11
+ # FIXME: atome run doesnt run the code
12
+ if RUBY_ENGINE.downcase != 'opal'
13
+ # FIXME: find a better and more elegant solution to avoid opal to treat require
14
+ # FIXME: replace eval with a safer option
15
+ eval "require 'atome/atome_native_extensions'", eval_protection, __FILE__, __LINE__
16
+ eval "require 'color'", eval_protection, __FILE__, __LINE__
17
+ end
18
+
19
+ require 'atome/kernel/universe'
20
+ require 'atome/kernel/generators/genesis'
21
+ require 'atome/kernel/helpers/internal_methods'
22
+ require 'atome/kernel/helpers/utilities'
23
+ require 'atome/renderers/renderer'
24
+ require 'atome/kernel/generators/sanitizer'
25
+ require 'atome/kernel/generators/generator'
26
+ require 'atome/renderers/opal/properties/generator'
27
+ require 'atome/renderers/server/properties/generator'
28
+ require 'atome/renderers/headless/properties/generator'
29
+ require 'atome/kernel/generators/shapes'
30
+ require 'atome/kernel/atome'
31
+ require 'atome/kernel/properties/essential'
32
+ require 'atome/extensions/helper'
33
+
34
+ Universe.send(:initialize)
35
+ # puts "@atome_client_ready is : #{@atome_client_ready}"
36
+
37
+ # puts "app_identity is : #{Universe.app_identity}"
38
+
39
+ Atome.current_user = :jeezs
40
+
41
+ require 'atome/kernel/sparkle'
42
+
43
+ # TODO: create a system to secure and validate generated renderer methods , optional methods and atome's methods
44
+ # TODO: int8! : language
45
+ # TODO: record user actions
46
+ # TODO: separate the audio in the video
47
+ # TODO: add mute to video
48
+
49
+
50
+
@@ -0,0 +1,4 @@
1
+ guard 'rake', first_match: true, :task => 'build' do
2
+ watch(%r{^server.+\.rb})
3
+ watch(%r{^application.+\.rb})
4
+ end
@@ -0,0 +1,3 @@
1
+ task :build do
2
+ `atome build;open build/index.html`
3
+ end
@@ -0,0 +1,4 @@
1
+ # my code here ..
2
+
3
+ # open the console in your browser ou your native app and should see the text below
4
+ puts "hello world"
@@ -6,8 +6,8 @@ html, body {
6
6
 
7
7
  font-family: system-ui, -apple-system, -apple-system-font, 'Segoe UI', 'Roboto', sans-serif;
8
8
  font-size: 12px;
9
- margin: 0px;
10
- padding: 0px;
9
+ margin: 0;
10
+ padding: 0;
11
11
  background: rgba(39, 39, 39, 1);
12
12
  overflow: hidden;
13
13
  -webkit-overflow-scrolling: touch;
@@ -30,16 +30,14 @@ html, body {
30
30
  overflow: hidden;
31
31
  position: absolute;
32
32
  -webkit-overflow-scrolling: touch;
33
- overflow: hidden;
34
33
  }
35
34
 
36
35
 
37
-
38
- .ui-selected{
36
+ .ui-selected {
39
37
  border: #00bb00 solid 3px;
40
38
  }
41
39
 
42
- .ui-selecting{
40
+ .ui-selecting {
43
41
  border: orange solid 3px;
44
42
  }
45
43
 
@@ -47,7 +45,26 @@ html, body {
47
45
  outline: 2px dashed white;
48
46
  }
49
47
 
48
+ .atome {
49
+ cursor: default;
50
+ pointer-events: auto;
51
+ caret-color: transparent;
52
+ outline: none;
53
+ -webkit-user-select: none;
54
+ -moz-user-select: none;
55
+ user-select: none;
56
+ position: absolute;
57
+ display: inline-block;
58
+ background-size: 100%;
59
+ background-repeat: no-repeat;
60
+ -webkit-overflow-scrolling: touch;
61
+ -webkit-user-drag: none;
62
+ caret-shape: bar;
63
+ overflow: visible;
64
+ }
50
65
 
51
-
52
-
66
+ .text {
67
+ -webkit-text-fill-color: transparent;
68
+ -webkit-background-clip: text;
69
+ }
53
70
 
Binary file
@@ -3,18 +3,29 @@
3
3
  <head>
4
4
  <meta name='viewport' content='initial-scale=1, width=device-width, viewport-fit=cover'>
5
5
  <meta charset='UTF-8'/>
6
+ <meta Cross-Origin-Opener-Policy= "same-origin"/>
7
+ <meta Cross-Origin-Embedder-Policy= "require-corp"/>
6
8
  <meta name="format-detection" content="telephone=no">
7
9
  <meta name="msapplication-tap-highlight" content="no">
8
10
  <meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
9
11
  <link type="text/css" rel="stylesheet" href="css/style.css">
12
+ <script type="text/javascript" src="js/third_parties/fabric.min.js"></script>
13
+ <script type="text/javascript" src="js/third_parties/three.min.js"></script>
10
14
  <script type="text/javascript" src="js/third_parties/interact.min.js"></script>
11
15
  <script type="text/javascript" src="js/third_parties/popmotion.min.js"></script>
16
+ <script type="text/javascript" src="js/third_parties/sha256.min.js"></script>
17
+ <script type="text/javascript" src="js/third_parties/ping.min.js"></script>
18
+ <script src='js/third_parties/w3color.js'></script>
12
19
  <script src='js/opal/opal_browser.js'></script>
13
20
  <script src='js/opal/opal_parser.js'></script>
14
- <script src='js/atome/kernel.js'></script>
15
- <title>Vie</title>
21
+ <script src='js/aui.js'></script>
22
+ <script src='js/atome/atome.js' defer></script>
23
+ <script src='js/atome/kernel.js' defer></script>
24
+ <script src='js/opal/atome_opal_extensions.js'></script>
25
+ <title>atome</title>
26
+ <link rel="icon" type="image/x-icon" href="favicon.ico">
16
27
  </head>
17
- <body id='user_view' oncontextmenu="return false;" >
28
+ <body id='user_view' class='atome' oncontextmenu="return false;" >
18
29
  </body>
19
- <script src='js/application.js'></script>
30
+ <script src='js/application.js' defer></script>
20
31
  </html>
@@ -0,0 +1,82 @@
1
+ class AtomeDrag {
2
+ constructor() {
3
+ }
4
+
5
+ drag(atome_drag_id) {
6
+ // target elements with the "draggable" class
7
+ self.current_obj = Opal.Utilities.$grab(atome_drag_id)
8
+ interact('.'+atome_drag_id)
9
+ .draggable({
10
+ // enable inertial throwing
11
+ startAxis: 'x',
12
+ lockAxis: 'x',
13
+ // lockAxis: ''+lock_axis,
14
+ inertia: true,
15
+ // keep the element within the area of it's parent
16
+ modifiers: [
17
+ interact.modifiers.restrictRect({
18
+ restriction: 'parent',
19
+ endOnly: true
20
+ })
21
+ ],
22
+ // enable autoScroll
23
+ autoScroll: true,
24
+
25
+ listeners: {
26
+ // call this function on every dragmove event
27
+
28
+ move: dragMoveListener,
29
+ start(event) {
30
+ //TODO: optimise this passing the proc to the drag callback
31
+ // lets get the current atome Object
32
+ // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
33
+ // now get the grab proc
34
+ self.proc_meth = current_obj.bloc
35
+ },
36
+ // call this function on every dragend event
37
+ end(event) {
38
+
39
+ }
40
+ }
41
+ })
42
+
43
+ function dragMoveListener(event) {
44
+ const target = event.target
45
+ // the code below can be conditioned to receive the drag event without moving the object
46
+ // keep the dragged position in the data-x/data-y attributes
47
+ const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
48
+ const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
49
+ // translate the element
50
+ target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
51
+ // update the position attributes
52
+ target.setAttribute('data-x', x)
53
+ target.setAttribute('data-y', y)
54
+ // CallBack here
55
+ self.current_obj.$dragCallback(event.pageX, event.pageY, event.rect.left, event.rect.top, self.current_obj, self.proc_meth);
56
+ }
57
+ }
58
+
59
+ }
60
+
61
+ // Usage:
62
+ // let atomeDrag = new AtomeDrag();
63
+ // atomeDrag.drag('atome_id', 'options');
64
+
65
+
66
+ class Atomeanimation {
67
+
68
+
69
+ }
70
+
71
+ // TODO: put in a class
72
+
73
+ const atome = {
74
+ jsSchedule: function (years, months, days, hours, minutes, seconds, proc) {
75
+ const now = new Date();
76
+ const formatedDate = new Date(years, months - 1, days, hours, minutes, seconds);
77
+ const diffTime = Math.abs(formatedDate - now);
78
+ setTimeout(function () {
79
+ Opal.Object.$schedule_callback(proc);
80
+ }, diffTime);
81
+ }
82
+ }