atome 0.1.00006 → 0.4.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (355) 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 +181 -41
  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/r&d/misc.rb +219 -0
  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 +81 -338
  350. data/vendor/assets/server/config.ru +2 -14
  351. metadata +408 -24
  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
  355. data/vendor/assets/index.rb +0 -135
@@ -1,26 +1,21 @@
1
1
  # frozen_string_literal: true
2
-
3
- # instructions to install :
4
- # gem install bundler roda sqlite3 sequel rack-unreloader faye-websocket websocket-extensions websocket-driver puma -N
5
- # important if crash the gem install rack-unreloader -v 1.7.0 gem install roda -v 2.26.0
6
- # bundle update
7
- # bundle install
8
- # to run: rackup --server puma --port 4567 or without puma : rackup -p 4567
9
-
10
- # puts RUBY_VERSION
11
- if RUBY_PLATFORM == "x64-mingw32"
12
- require "em/pure_ruby"
2
+ # atome server
3
+ if RUBY_PLATFORM == 'x64-mingw32'
4
+ require 'em/pure_ruby'
13
5
  end
14
- require "roda"
15
- require "sequel"
16
- require "rufus-scheduler"
17
- require "faye/websocket"
18
- require "json"
19
- require "securerandom"
20
- require "mail"
21
- require "digest"
22
- require "filewatcher"
23
- require "artoo"
6
+ require 'atome'
7
+ require '../aui.rb'
8
+ require 'digest/sha2'
9
+ require 'faye/websocket'
10
+ require 'geocoder'
11
+ require 'json'
12
+ require 'mail'
13
+ require 'net/ping'
14
+ require 'roda'
15
+ require 'rufus-scheduler'
16
+ require 'securerandom'
17
+ require 'sequel'
18
+
24
19
 
25
20
 
26
21
  class String
@@ -33,343 +28,91 @@ class String
33
28
  end
34
29
  end
35
30
 
36
- class App < Roda
37
-
38
- @@channels = {}
39
- @@user
40
- @@test_socket = []
31
+ class Database
32
+ def self.connect_database
33
+ if File.exist?("eden.sqlite3")
34
+ eden=Sequel.connect("sqlite://eden.sqlite3")
35
+ else
36
+ eden=Sequel.connect("sqlite://eden.sqlite3")
37
+ eden.create_table :atome do
38
+ primary_key :atome_id
39
+ String :aui
40
+ String :id
41
+ String :type
42
+ String :name
43
+ String :content
44
+ String :position
45
+ String :dimension
46
+ String :color
47
+ String :right
48
+ String :effect
49
+ String :shadow
50
+ String :border
51
+ String :fill
52
+ Float :x
53
+ Float :xx
54
+ Float :y
55
+ Float :yy
56
+ Float :z
57
+ Float :zz
58
+ Float :width
59
+ Float :height
60
+ Float :depth
61
+ end
41
62
 
42
- #plugin :mail_processor
43
- eden = Sequel.connect("sqlite://eden.sqlite3")
44
- unless File.exist?("eden.sqlite3")
45
- eden.create_table :objects do
46
- primary_key :atome_id
47
- String :id
48
- String :type
49
- String :name
50
- String :content
51
63
  end
64
+ eden
52
65
  end
53
66
 
54
- index_content = File.read("../build/index.html")
67
+ end
55
68
 
56
- # index_content = index_content.gsub('<script type="text/javascript" src="../cordova.js"></script>', "")
57
- # below an attempt to load atome in pure ruby not opal
58
- require 'atome'
59
- opts[:root] = '../build'
60
- plugin :static, %w[/css /js /medias], root: '../build'
61
- # plugin "faye/websocket"
62
- route do |r|
63
- if Faye::WebSocket.websocket?(env)
64
- ws = Faye::WebSocket.new(env)
65
- # @@test_socket[0] = ws
66
- @@test_socket[0] = ws
67
- ws.on :message do |event|
68
- client_data = event.data
69
- if client_data.is_json?
70
- data = JSON.parse(client_data)
71
- # puts data
72
- case data["type"]
73
- when "login"
74
- user_id = data["username"]
75
- # @user_id[user_id]=ws
76
- # @user[data["username"]] = ws
77
- # ws.send()
78
- # message_back = "text ({content: '#{data["username"]} with id : #{data["id"]} is connected!', y:330})"
79
- # message_back={id: data["id"], log: true}
80
- #
81
- session_id = SecureRandom.uuid
82
- message_back = JSON.generate({ type: :response, request_id: data["request_id"], session_id: session_id, log: true })
83
- ws.send(message_back)
69
+ class App < Roda
70
+ ## comment below when test will be done
71
+ File.delete("./eden.sqlite3") if File.exist?("./eden.sqlite3")
72
+ eden=Database.connect_database
73
+ items = eden[:atome]
84
74
 
85
- when "start_channel"
86
- channel_id = SecureRandom.uuid
87
- # self.channels(channel_id)
88
- @@channels[channel_id] = []
89
- # @session[data["username"]] =session_id
90
- message_back = JSON.generate({ type: :response, request_id: data["request_id"], channel_id: channel_id })
91
- ws.send(message_back)
92
- when "list_channels"
93
- message_back = JSON.generate({ type: :response, request_id: data["request_id"], channels: @@channels.keys })
94
- ws.send(message_back)
95
- when "connect_channel"
96
- channel_id = data["channel_id"]
97
- @@channels[channel_id] << ws
98
- message_back = JSON.generate({ type: :response, request_id: data["request_id"], connected: true })
99
- ws.send(message_back)
100
- when "push_to_channel"
101
- channel_id = data["channel_id"]
102
- message_received = data["message"]
103
- #fixme the type depend on the kind if received message
104
- message_to_push = JSON.generate({ type: :code, content: message_received })
105
- @@channels[channel_id].each do |ws_found|
106
- # we exclude the sender from the recipient
107
- unless ws_found == ws
108
- ws_found.send(message_to_push)
109
- end
110
- end
111
- message_back = JSON.generate({ type: :response, request_id: data["request_id"], pushed: true })
112
- ws.send(message_back)
113
- when "read"
114
- file_content = File.read(data["file"])
115
- hashed_content = { content: file_content }
116
- hashed_options = { options: data["options"].to_s }
117
- message_to_push = JSON.generate({ type: :read, atome: data["atome"], target: data["target"], content: hashed_content, options: hashed_options })
118
- ws.send(message_to_push)
119
- when "set"
120
- msg = { type: :monitor, atome: data["atome"], target: data["target"], output: data["output"], content: data["content"],options: data["options"] }
121
- set_output msg
122
- when "monitor"
123
- # file = data["file"]
124
- # monitor "public/medias/e_projects/chambon/code.rb"
125
- # puts file.class
126
- # if !file.instance_of?(Array)
127
- # file=[file]
128
- # end
75
+ # populate the table
76
+ items.insert(name: 'abc', width: rand * 100)
77
+ items.insert(name: 'def', width: rand * 100)
78
+ items.insert(name: 'ghi', width: rand * 100)
129
79
 
80
+ puts "Item count: #{items.count}"
130
81
 
131
- # @@threads << Thread.new do
132
- # puts "hello from thread"
133
- # Filewatcher.new(file).watch do |changes|
134
- # file_content = file
135
- # hashed_content = { content: data["file"] }
136
- # hashed_options = { options: data["options"].to_s }
137
- if data["file"]
138
- msg = { type: :monitor, atome: data["atome"], target: data["target"], content: data["file"], options: data["options"] }
139
- monitor msg
140
- else
141
- msg = { type: :monitor, atome: data["atome"], target: data["target"], input: data["input"], options: data["options"] }
142
- capture_input msg
143
- end
144
- # puts "------"
145
- # puts file.class
146
- # puts "------"
147
- # message_to_push = JSON.generate({ type: :monitor, atome: data["atome"], target: data["target"], content: hashed_content, options: hashed_options })
148
- # # puts ws.inspect
149
- # # puts "---"
150
- # puts "hashed_content : #{hashed_content}}"
151
- # puts "hashed_options : #{hashed_options}}"
152
- # puts "message_to_push : #{message_to_push}}"
153
- # ws.send(message_to_push)
154
- # # @@channels[channel_id].each do |ws_found|
155
- # # # we exclude the sender from the recipient
156
- # # unless ws_found == ws
157
- # # ws_found.send(message_to_push)
158
- # # end
159
- # # end
160
- # end
161
- # puts "koolll!!!!"
162
- # end
163
- # @@threads.each(&:join)
82
+ puts "The average price is: #{items.avg(:width)}"
164
83
 
165
- # t= Thread.new do
166
- # puts "hello from thread"
167
- # Filewatcher.new(file).watch do |changes|
168
- # # file_content = File.read(changes)
169
- # hashed_content = { content: file_content }
170
- # hashed_options = { options: data["options"].to_s }
171
- # message_to_push = JSON.generate({ type: :monitor, atome: data["atome"], target: data["target"], content: hashed_content, options: hashed_options })
172
- # # puts ws.inspect
173
- # # puts "---"
174
- # puts "hashed_content : #{hashed_content}}"
175
- # puts "hashed_options : #{hashed_options}}"
176
- # puts "message_to_push : #{message_to_push}}"
177
- # ws.send(message_to_push)
178
- # # @@channels[channel_id].each do |ws_found|
179
- # # # we exclude the sender from the recipient
180
- # # unless ws_found == ws
181
- # # ws_found.send(message_to_push)
182
- # # end
183
- # # end
184
- # end
185
- #
186
- # end
187
- #
188
- # t.join
189
84
 
190
- # # ugly patch below needs to use filewatcher above instead
191
- # t=Thread.new do
192
- # sleep 12
193
- # puts file = data["file"]
194
- # end
195
- # t.join
196
- # if @file_require == (Digest::SHA256.hexdigest File.read data["file"])
197
- # @file_require = Digest::SHA256.hexdigest File.read data["file"]
198
- # else
199
- # @file_require = Digest::SHA256.hexdigest File.read data["file"]
200
- # # file_content = File.read()
201
- # file = data["file"]
202
- # hashed_file = { content: file }
203
- # hashed_options = { options: data["options"].to_s }
204
- # message_to_push = JSON.generate({ type: :monitor, atome: data["atome"], target: data["target"], file: hashed_file, options: hashed_options })
205
- # ws.send(message_to_push)
206
- # end
207
- when "list"
208
- files_found = Dir[data["path"] + "/*"]
209
- hashed_content = { content: files_found }
210
- hashed_options = { options: data["options"].to_s }
211
- message_to_push = JSON.generate({ type: :read, target: data["target"], content: hashed_content, options: hashed_options })
212
- ws.send(message_to_push)
213
- when "write"
214
- File.write(data["file"], data["content"])
215
- hashed_content = { content: data["content"].to_s }
216
- hashed_options = { options: data["options"].to_s }
217
- message_to_push = JSON.generate({ type: :read, target: data["target"], content: hashed_content, options: hashed_options })
218
- ws.send(message_to_push)
219
- when "copy"
220
- FileUtils.cp data["source"], data["dest"]
221
- when "delete"
222
- File.delete(data["file"])
223
- hashed_content = { content: data["file"].to_s }
224
- hashed_options = { options: data["options"].to_s }
225
- message_to_push = JSON.generate({ type: :read, target: data["target"], content: hashed_content, options: hashed_options })
226
- ws.send(message_to_push)
227
- when "mail"
228
- if data["from"]
229
- sender = data["from"]
230
- else
231
- sender = "contact@atome.one"
232
- end
233
- receiver = data["to"]
234
- mail_subject = data["subject"]
235
- content = data["content"]
236
- attachment = data["attachment"]
237
- attachments = []
238
- if attachment
239
- if attachment.instance_of?(Array)
240
- attachment.each do |file|
241
- filename = File.basename(file)
242
- attachments << { file: file, filename: filename }
243
- end
244
- else
245
- filename = File.basename(attachment)
246
- attachments << { file: attachment, filename: filename }
247
- end
248
- end
249
- # puts "----- + -----"
250
- # puts "sender: #{sender}"
251
- # puts "receiver: #{receiver}"
252
- # puts "mail_subject: #{mail_subject}"
253
- # puts "content: #{content}"
254
- # puts "attachments: #{attachments}"
255
- # puts "----- - -----"
256
- mail = Mail.new do
257
- from sender
258
- to receiver
259
- subject mail_subject
260
- body content
261
- attachments.each do |file_to_add|
262
- file = file_to_add[:file]
263
- filename = file_to_add[:filename]
264
- add_file :filename => filename, :content => File.read(file)
265
- end
266
- end
85
+ index_content = File.read("../build/index.html")
267
86
 
268
- mail.delivery_method :sendmail
269
87
 
270
- mail.deliver
271
- when "atome"
272
- message_to_push = JSON.generate({ type: :atome, target: data["target"], atome: data["atome"], content: data["content"] })
273
- ws.send(message_to_push)
274
- when "code"
275
- message_to_push = JSON.generate({ type: :code, content: data["content"] })
276
- ws.send(message_to_push)
277
- when "command"
278
- file_content = `#{data["content"]}`
279
- # hashed_content = { content: file_content }.merge(data["options"])
280
- message_to_push = JSON.generate({ type: :command, target: data["target"], atome: data["atome"], content: file_content })
281
- ws.send(message_to_push)
282
- else
283
- # ws.send("unknown message received")
284
- end
88
+ opts[:root] = '../build'
89
+ plugin :static, %w[/css /js /medias], root: '../build'
90
+ route do |r|
91
+ if Faye::WebSocket.websocket?(env)
92
+ websocket = Faye::WebSocket.new(env)
93
+ websocket.on :message do |event|
94
+ client_data = event.data
95
+ if client_data.is_json?
96
+ # to get hash from data: data_to_hash = JSON.parse(client_data)
97
+ # websocket.send(client_data)
98
+ websocket.send("The average price must be: #{items.avg(:width)}")
99
+ uuid = SecureRandom.uuid
100
+ websocket.send("The coded uuid is : #{uuid}")
285
101
  end
286
102
  end
287
- #ws.on :open do |event|
288
- # #ws = nil
289
- #end
290
- ws.on :close do |event|
291
- #ws = nil
103
+ websocket.on :open do
104
+ # websocket.send(event.data)
105
+ end
106
+ websocket.on :close do
107
+ # websocket.send(event.data)
292
108
  end
293
- ws.rack_response
109
+ websocket.rack_response
294
110
  end
295
111
  r.root do
296
112
  r.redirect "/index"
297
113
  end
298
114
  r.on "index" do
299
- r.is do
300
- r.get do
301
- #sleep 7
302
- #box()
303
- index_content
304
- end
305
- end
115
+ index_content
306
116
  end
307
117
  end
308
-
309
- def self.monitor_callback(val, params)
310
- ws = @@test_socket[0]
311
- file_content = File.read(val)
312
- params[:content] = val
313
- msg = { "type": "eval", "atome": "text", "target": "tryout", "content": { "content": file_content }, "options": "clear" }
314
- params[:content] = { "content": { "content": file_content } }
315
- message_to_push = JSON.generate(msg)
316
- ws.send(message_to_push)
317
- end
318
-
319
- def self.device_output_callback( params)
320
- ws = @@test_socket[0]
321
- file_content = params[:content]
322
- msg = { "type": "read", "atome": "text", "target": "tryout", "content": { "content": file_content }, "options": "clear" }
323
- params[:content] = { "content": { "content": file_content } }
324
- message_to_push = JSON.generate(msg)
325
- ws.send(message_to_push)
326
- end
327
118
  end
328
-
329
-
330
-
331
-
332
- # Update all connections in a single thread
333
- def monitor(params)
334
- Thread.new do
335
- Filewatcher.new(params[:content]).watch do |changes|
336
- App.monitor_callback(changes, params)
337
- end
338
- end
339
- end
340
-
341
- @bbb_ready = false
342
- @bbb_thread = false
343
-
344
- def capture_input params
345
- unless @bbb_ready
346
- @bbb_ready = true
347
- puts "bbb is ready"
348
- # require "./beagleboard"
349
-
350
- end
351
- if @bbb_thread
352
- @bbb_thread.exit
353
- end
354
-
355
- @bbb_thread = Thread.new do
356
-
357
- i = 0
358
- while i < 2000
359
- puts i
360
- sleep 1
361
- i += 1
362
- end
363
- end
364
- end
365
-
366
-
367
- def set_output params
368
- App.device_output_callback( params)
369
- end
370
-
371
-
372
- # capture_input(1, { my_condition: :callback })
373
- #
374
- # capture_input(1, { my_condition: :callback })
375
- # capture_input(1, { my_condition: :callback })
@@ -1,20 +1,8 @@
1
1
  # frozen_string_literal: true
2
- # cat config.ru
3
- # to run avec rackup :
4
- # rackup -p 4567
5
- # to run avec Puma :
6
- # puma
7
2
 
8
3
  require 'roda'
9
- Thread.new do
10
- sleep 1.5
11
- system("open", "http://127.0.0.1:9292")
12
- end
13
-
14
4
  require 'rack/unreloader'
5
+
15
6
  Unreloader = Rack::Unreloader.new(subclasses: %w[Roda]) { App }
16
7
  Unreloader.require './atome_server.rb'
17
- # uncomment to allow code reloading
18
- # run Unreloader
19
- # uncomment below for prod or comment to allow code reloading
20
- run App.freeze.app
8
+ run Unreloader