atome 0.1.00009 → 0.4.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (354) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -0
  3. data/README.md +74 -6
  4. data/Rakefile +14 -6
  5. data/app_builder_helpers/Rakefile +183 -25
  6. data/documentation/atome.md +14 -0
  7. data/documentation/database.JPG +0 -0
  8. data/documentation/framework/apis.md +14 -0
  9. data/documentation/framework/atome_explained.md +179 -0
  10. data/documentation/framework/box_content.md +53 -0
  11. data/documentation/framework/buld_the_gem.md +52 -0
  12. data/documentation/framework/datas_flows.md +28 -0
  13. data/documentation/framework/enhance_atome.md +79 -0
  14. data/documentation/framework/folder_architecture.md +47 -0
  15. data/documentation/framework/technical/rendering_flow.md +18 -0
  16. data/documentation/framework/technical/technical_description.md +23 -0
  17. data/documentation/framework/what_is_it.md +65 -0
  18. data/documentation/framework/what_it_can_do.md +25 -0
  19. data/documentation/images/1.png +0 -0
  20. data/documentation/images/2.png +0 -0
  21. data/documentation/images/3.png +0 -0
  22. data/documentation/images/atome.svg +12 -0
  23. data/documentation/images/list.png +0 -0
  24. data/documentation/images/logos/cordova.png +0 -0
  25. data/documentation/images/logos/freebsd.png +0 -0
  26. data/documentation/images/logos/opal.png +0 -0
  27. data/documentation/images/logos/puma.png +0 -0
  28. data/documentation/images/logos/roda.svg +1 -0
  29. data/documentation/images/logos/ruby.png +0 -0
  30. data/documentation/images/logos/tauri.png +0 -0
  31. data/documentation/installation/atome_server.md +184 -0
  32. data/documentation/tutorials/first_steps.md +148 -0
  33. data/documentation/tutorials/tutorials.md +15 -0
  34. data/documentation/tutorials/working_with_atome.md +60 -0
  35. data/exe/atome +178 -53
  36. data/lib/atome/atome_native_extensions.rb +5 -0
  37. data/lib/atome/extensions/geolocation.rb +14 -0
  38. data/lib/atome/extensions/helper.rb +123 -0
  39. data/lib/atome/extensions/ping.rb +13 -0
  40. data/lib/atome/extensions/sha.rb +6 -0
  41. data/lib/atome/extensions/utilities.rb +39 -0
  42. data/lib/atome/kernel/atome.rb +98 -0
  43. data/lib/atome/kernel/generators/generator.rb +387 -0
  44. data/lib/atome/kernel/generators/genesis.rb +265 -0
  45. data/lib/atome/kernel/generators/sanitizer.rb +77 -0
  46. data/lib/atome/kernel/generators/shapes.rb +40 -0
  47. data/lib/atome/kernel/properties/essential.rb +43 -0
  48. data/lib/atome/kernel/sparkle.rb +37 -0
  49. data/lib/atome/kernel/universe.rb +29 -0
  50. data/lib/atome/renderers/headless/properties/generator.rb +1 -0
  51. data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
  52. data/lib/atome/renderers/opal/extensions/color.rb +23 -0
  53. data/lib/atome/renderers/opal/extensions/geolocation.rb +14 -0
  54. data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
  55. data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
  56. data/lib/atome/renderers/opal/opal_browser.rb +2 -1
  57. data/lib/atome/renderers/opal/opal_parser.rb +1 -0
  58. data/lib/atome/renderers/opal/properties/generator.rb +1 -0
  59. data/lib/atome/renderers/renderer.rb +12 -0
  60. data/lib/atome/renderers/server/properties/generator.rb +9 -0
  61. data/lib/atome/version.rb +1 -1
  62. data/lib/atome.rb +55 -2
  63. data/vendor/assets/Guardfile +4 -0
  64. data/vendor/assets/Rakefile +3 -0
  65. data/vendor/assets/application/index.rb +4 -0
  66. data/vendor/assets/build/css/style.css +21 -8
  67. data/vendor/assets/build/favicon.ico +0 -0
  68. data/vendor/assets/build/index.html +13 -4
  69. data/vendor/assets/build/js/atome/atome.js +68 -0
  70. data/vendor/assets/build/js/ping.min.js +2 -0
  71. data/vendor/assets/build/js/third_parties/createjs.min.js +19 -0
  72. data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
  73. data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
  74. data/vendor/assets/build/js/third_parties/three.min.js +6 -0
  75. data/vendor/assets/build/js/utilities/w3color.js +646 -0
  76. data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
  77. data/vendor/assets/build/medias/audios/clap.wav +0 -0
  78. data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
  79. data/vendor/assets/build/medias/audios/hihat.wav +0 -0
  80. data/vendor/assets/build/medias/audios/kick.wav +0 -0
  81. data/vendor/assets/build/medias/audios/riff.m4a +0 -0
  82. data/vendor/assets/build/medias/audios/snare.wav +0 -0
  83. data/vendor/assets/build/medias/audios/tom.wav +0 -0
  84. data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
  85. data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
  86. data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
  87. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
  88. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
  89. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
  90. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
  91. data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
  92. data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
  93. data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
  94. data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
  95. data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
  96. data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
  97. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
  98. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
  99. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
  100. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
  101. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
  102. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
  103. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
  104. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
  105. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
  106. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
  107. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
  108. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
  109. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
  110. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
  111. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
  112. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
  113. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
  114. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
  115. data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
  116. data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
  117. data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
  118. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
  119. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
  120. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
  121. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
  122. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
  123. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
  124. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
  125. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
  126. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
  127. data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
  128. data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
  129. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
  130. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
  131. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
  132. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
  133. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
  134. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
  135. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
  136. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
  137. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
  138. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
  139. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
  140. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
  141. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
  142. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
  143. data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
  144. data/vendor/assets/build/medias/images/atome.svg +12 -0
  145. data/vendor/assets/build/medias/images/avion.jpg +0 -0
  146. data/vendor/assets/build/medias/images/ballanim.png +0 -0
  147. data/vendor/assets/build/medias/images/blank.png +0 -0
  148. data/vendor/assets/build/medias/images/boat.png +0 -0
  149. data/vendor/assets/build/medias/images/cache.svg +10 -0
  150. data/vendor/assets/build/medias/images/dices.png +0 -0
  151. data/vendor/assets/build/medias/images/eVe_back.png +0 -0
  152. data/vendor/assets/build/medias/images/elephant.png +0 -0
  153. data/vendor/assets/build/medias/images/eyes.jpg +0 -0
  154. data/vendor/assets/build/medias/images/freebsd.png +0 -0
  155. data/vendor/assets/build/medias/images/grain_texture.png +0 -0
  156. data/vendor/assets/build/medias/images/green_planet.png +0 -0
  157. data/vendor/assets/build/medias/images/image_missing.svg +9 -0
  158. data/vendor/assets/build/medias/images/jeezs.png +0 -0
  159. data/vendor/assets/build/medias/images/keyboard.png +0 -0
  160. data/vendor/assets/build/medias/images/killer.jpg +0 -0
  161. data/vendor/assets/build/medias/images/living_room.png +0 -0
  162. data/vendor/assets/build/medias/images/logo.svg +14 -0
  163. data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
  164. data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
  165. data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
  166. data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
  167. data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
  168. data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
  169. data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
  170. data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
  171. data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
  172. data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
  173. data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
  174. data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
  175. data/vendor/assets/build/medias/images/moto.png +0 -0
  176. data/vendor/assets/build/medias/images/noise.svg +17 -0
  177. data/vendor/assets/build/medias/images/piano.png +0 -0
  178. data/vendor/assets/build/medias/images/poisson.jpg +0 -0
  179. data/vendor/assets/build/medias/images/red_planet.png +0 -0
  180. data/vendor/assets/build/medias/images/sky.jpg +0 -0
  181. data/vendor/assets/build/medias/images/the_mask.svg +8 -0
  182. data/vendor/assets/build/medias/images/tile.png +0 -0
  183. data/vendor/assets/build/medias/images/tile_black.png +0 -0
  184. data/vendor/assets/build/medias/images/tile_white.png +0 -0
  185. data/vendor/assets/build/medias/javascripts/test.js +1 -0
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
  254. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
  255. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
  256. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
  257. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
  258. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
  259. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
  260. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
  261. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
  262. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
  263. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
  264. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
  265. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
  266. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
  267. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
  268. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
  269. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
  270. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
  271. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
  272. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
  273. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
  274. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
  275. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
  276. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
  277. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
  278. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
  279. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
  280. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
  281. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
  282. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
  283. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
  284. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
  285. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
  286. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
  287. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
  288. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
  289. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
  290. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
  291. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
  292. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
  293. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
  294. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
  295. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
  296. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
  297. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
  298. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
  299. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
  300. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
  301. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
  302. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
  303. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
  304. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
  305. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
  306. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
  307. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
  308. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
  309. data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
  310. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
  311. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
  312. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  313. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
  314. data/vendor/assets/build/medias/rubies/examples/box.rb +1 -0
  315. data/vendor/assets/build/{js/opal/opal_browser.js → medias/rubies/examples/circle.rb} +0 -0
  316. data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
  317. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
  318. data/vendor/assets/build/medias/rubies/examples/drag.rb +5 -0
  319. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
  320. data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
  321. data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
  322. data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
  323. data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
  324. data/vendor/assets/build/medias/rubies/examples/link.rb +13 -0
  325. data/vendor/assets/build/medias/rubies/examples/parent.rb +12 -0
  326. data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
  327. data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
  328. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
  329. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  330. data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
  331. data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
  332. data/vendor/assets/build/medias/rubies/examples/text.rb +5 -0
  333. data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
  334. data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
  335. data/vendor/assets/build/medias/rubies/examples/video.rb +4 -0
  336. data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
  337. data/vendor/assets/build/medias/rubies/examples/web.rb +9 -0
  338. data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
  339. data/vendor/assets/build/medias/rubies/test.rb +1 -0
  340. data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
  341. data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
  342. data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
  343. data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
  344. data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
  345. data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
  346. data/vendor/assets/r&d/ping.rb +3 -0
  347. data/vendor/assets/r&d/storage.rb +9 -0
  348. data/vendor/assets/r&d/view_example.rb +21 -0
  349. data/vendor/assets/server/atome_server.rb +74 -27
  350. data/vendor/assets/server/config.ru +2 -14
  351. metadata +424 -12
  352. data/lib/atome/kernel/atome_genesis.rb +0 -2
  353. data/lib/atome/kernel/properties/geometry.rb +0 -2
  354. data/vendor/assets/build/js/opal/opal_parser.js +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4b48cdeb89c228abfd54f7ff8a986bf57b856ee448248f8bc72d350f2102f92
4
- data.tar.gz: 684ee3dbfb0c2f8a630203b70c76fee2c4bbc38e668236eb39ce4031fce07ad0
3
+ metadata.gz: 49cc8d868d75099b8958e82985a3fbf1c43eaea349619ffa01e810fd9ea10ca0
4
+ data.tar.gz: 5e9b7460dea168d8fb9b21de448edbb57deed81173fc1d04bf95f12262e80ba7
5
5
  SHA512:
6
- metadata.gz: abce3a0481ef173040bff4c5753ddc0da3429b62b9d25c6b60b3dd87751b582d3c917fb84ed56b97b684fe8066ff99882f7be57a1530529f32eee02666fa2781
7
- data.tar.gz: e1addd8946eed935d0becf3b612969387f6107271819913fc62a8fe0f633ed13f485974195f77f74f28c03e95c412af39171336efcde841683e3ee84337eef29
6
+ metadata.gz: 12f981205e19cfc5f4243e8498c190b7b5903009660f0c68219c4eaee95195b47e0ff69fcecc67c69cd7624b66a8dd10340249dc7bc9576682d05031ec497ed3
7
+ data.tar.gz: ee6814778ba2ca00d75a7fb714847c680982ce20ffccc2df34160554340f1cb400efaab3a996d1820e91879ba72a0430f5bd90c2eb2463c39a25a2e1becdc540
data/Gemfile CHANGED
@@ -8,3 +8,7 @@ gemspec
8
8
  gem "rake", "~> 13.0"
9
9
 
10
10
  gem "minitest", "~> 5.0"
11
+ gem 'rubocop', group: 'development'
12
+ gem 'rubocop', group: 'development'
13
+ gem 'rubocop', group: 'development'
14
+ gem 'rubocop', group: 'development'
data/README.md CHANGED
@@ -1,8 +1,64 @@
1
- # Atome
1
+ Atome
2
+ -
2
3
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/atome`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+ <img src="./documentation/images/3.png" width="666" />
5
+ -
4
6
 
5
- TODO: Delete this and the text above, and describe your gem
7
+
8
+ Cross platform ecosystem
9
+ -
10
+
11
+ - atome is a cross platform development framework, aim to build mobile or desktop applications, web site, games, presentations, and lots more...
12
+
13
+ - atome's applications can be deploy as a simple application, a client, a server or both, as well as be booted at startup (Operating System. mode)
14
+
15
+ - all apis work identically, to ensure you'll have the exact same rendering whatever the host platform (Android, Freebsd, linux, MacOs, Web, Windows).
16
+
17
+ - atome and all the included libraries are entirely open source with a very permissive MIT licence. it means you can do what you want want with it!
18
+
19
+ - the framework is totally hybrid, it can be executed as a full blown native application, a native application with a web view, in a web browser or a web view
20
+
21
+ - Atome can be used in stand alone (offline mode), in cloud mode or both and sync data when required
22
+
23
+ - it's also possible to publish websites on a static server (without server side language) while using a database and sync data between users
24
+
25
+ - Anything in atome can be scripted, even on the fly at runtime!
26
+
27
+ Open source technology included
28
+ -
29
+
30
+ - Ruby : is the language used to script all atome's apis (https://www.ruby-lang.org)
31
+
32
+ [comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/ruby.png" width="100" />)
33
+
34
+ - Opal : is a ruby gem used to compile the ruby language to JS (https://opalrb.com)
35
+
36
+ [comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/opal.png" width="100" />)
37
+
38
+ - Roda : is a ruby web framework that push the server version of atome (https://roda.jeremyevans.net)
39
+
40
+ [comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/roda.svg" width="100" />)
41
+
42
+ - Puma : is a ruby web server to start the backend of atome (https://puma.io)
43
+
44
+ [comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/puma.png" width="100" />)
45
+
46
+ - FreeBSD : is a Unix platform with a very secure environment (jails), allow to create and boot embedded applications on any compatible machine (standard PC, Raspberry, Beaglebone, etc..), while keeping a very small footprint using the nanoBSD facility of FreeBSD (https://www.freebsd.org/fr/)
47
+
48
+ [comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/freebsd.png" width="100" />)
49
+
50
+ - Tauri : Build smaller, faster, and more secure desktop applications with a web frontend.(https://github.com/tauri-apps/tauri)
51
+
52
+ [comment]: <> (<img src="https://avatars.githubusercontent.com/u/54536011?s=200&v=4" width="100" />)
53
+
54
+ <img src="./documentation/images/logos/ruby.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
55
+
56
+ [//]: # (<img src="./documentation/images/logos/cordova.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)
57
+ <img src="./documentation/images/logos/opal.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
58
+ <img src="./documentation/images/logos/roda.svg" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
59
+ <img src="./documentation/images/logos/freebsd.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
60
+ <img src="./documentation/images/logos/puma.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
61
+ <img src="./documentation/images/logos/tauri.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
6
62
 
7
63
  ## Installation
8
64
 
@@ -16,7 +72,7 @@ If bundler is not being used to manage dependencies, install the gem by executin
16
72
 
17
73
  ## Usage
18
74
 
19
- TODO: Write usage instructions here
75
+ [Full documentation here](./documentation/atome.md)
20
76
 
21
77
  ## Development
22
78
 
@@ -26,7 +82,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
26
82
 
27
83
  ## Contributing
28
84
 
29
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/atome. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/atome/blob/master/CODE_OF_CONDUCT.md).
85
+ Bug reports and pull requests are welcome on GitHub at https://github.com/atomecorp/atome. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/atomecorp/atome/blob/master/CODE_OF_CONDUCT.md).
30
86
 
31
87
  ## License
32
88
 
@@ -34,4 +90,16 @@ The gem is available as open source under the terms of the [MIT License](https:/
34
90
 
35
91
  ## Code of Conduct
36
92
 
37
- Everyone interacting in the Atome project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/atome/blob/master/CODE_OF_CONDUCT.md).
93
+ Everyone interacting in the Atome project's codebase, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/atomecorp/atome/blob/master/CODE_OF_CONDUCT.md).
94
+
95
+
96
+ Example website:
97
+ -
98
+ **[a website showing some apis demo ](http://atome.one)**
99
+
100
+
101
+ Contact:
102
+ -
103
+ **[queries@atome.one](mailto:contact@atome.one)**
104
+
105
+ <img src="./documentation/images//atome.svg" width="100" />
data/Rakefile CHANGED
@@ -1,12 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rake/testtask"
3
+ #old code below
4
+ # require "bundler/gem_tasks"
5
+ # require "rake/testtask"
6
+ #
7
+ # Rake::TestTask.new(:test) do |t|
8
+ # t.libs << "test"
9
+ # t.libs << "lib"
10
+ # t.test_files = FileList["test/**/test_*.rb"]
11
+ # end
12
+ #
13
+ # task default: :test
5
14
 
6
- Rake::TestTask.new(:test) do |t|
7
- t.libs << "test"
8
- t.libs << "lib"
9
- t.test_files = FileList["test/**/test_*.rb"]
15
+ task :test do
16
+ `gem cleanup atome;yes | gem uninstall atome ;gem build atome.gemspec;gem install atome`
17
+ `cd test/test_app;atome update;atome run guard`
10
18
  end
11
19
 
12
20
  task default: :test
@@ -1,65 +1,223 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # FIXME: check when creating gem version the new gem is not always fully updated we have to type gem uninstall first
4
+
3
5
  require 'opal'
4
6
  require 'opal-jquery'
5
7
  require 'opal-browser'
6
8
  require 'parser'
9
+ require 'ruby2js'
7
10
  require 'uglifier'
8
11
 
9
12
  Opal.append_path 'app'
10
13
 
11
- def build_opal_browser(user_project_path, production = false)
12
- browser_js = "#{user_project_path}/build/js/opal/opal_browser.js"
13
- browser_content = Opal::Builder.build('../lib/atome/renderers/opal/opal_browser.rb').to_s
14
- browser_content.gsub!("$$$('STDERR')['$write_proc='](typeof(process) === 'object' && typeof(process.stderr) === 'object' ? function(s){process.stderr.write(s)} : function(s){console.warn(s)});", "$$$('STDERR')['$write_proc='](typeof(process) === 'object' && typeof(process.stderr) === 'object' ? function(s){process.stderr.write(s)} : function(s){});")
15
- browser_content = Uglifier.new.compile(browser_content) if production
14
+ def build_browser_content
15
+ Opal::Builder.build('../lib/atome/renderers/opal/opal_browser.rb').to_s
16
+ end
17
+
18
+ def build_opal_browser(user_project_path)
19
+ opal_directory = "#{user_project_path}/build/js/opal"
20
+ browser_js = "#{opal_directory}/opal_browser.js"
21
+ Dir.mkdir(opal_directory) unless File.directory?(opal_directory)
22
+
23
+ File.new browser_js, 'w'
24
+ browser_content = build_browser_content
25
+
16
26
  File.open(browser_js, 'w') do |f|
17
27
  f.puts browser_content
18
28
  end
19
29
  end
20
30
 
21
- def build_atome_kernel(user_project_path, gem_location, production = false)
22
- kernel_js = "#{user_project_path}/build/js/atome/kernel.js"
31
+ def build_aui(user_project_path)
32
+ # FIXME: for now production can't be change when updating or force create, we should add a production method that
33
+ # uglified all libs on demand
34
+
35
+ # now we add an uniq aui to the app
36
+ aui_js = "#{user_project_path}/build/js/aui.js"
37
+ File.new aui_js, 'w'
38
+ builder = Opal::Builder.new
39
+ aui_content = builder.build("#{user_project_path}/aui.rb").to_s
40
+ File.open(aui_js, 'w') do |f|
41
+ f.puts aui_content
42
+ end
43
+ end
44
+
45
+ def copy_assets_files(user_project_path, gem_location)
46
+ build_location = "#{gem_location}/../vendor/assets/build/"
47
+ server_location = "#{gem_location}/../vendor/assets/server/"
48
+ FileUtils.copy_entry build_location, "#{user_project_path}/build", preserve: nil
49
+ FileUtils.copy_entry server_location, "#{user_project_path}/server", preserve: nil
50
+ end
51
+
52
+ def build_atome_kernel(user_project_path, gem_location)
53
+ # now lets build the atome kernel
54
+ atome_directory = "#{user_project_path}/build/js/atome"
55
+ Dir.mkdir(atome_directory) unless File.directory?(atome_directory)
56
+ kernel_js = "#{atome_directory}/kernel.js"
57
+ File.new kernel_js, 'w'
23
58
  builder = Opal::Builder.new
24
59
  builder.append_paths("#{gem_location}/../lib/")
25
60
  kernel_content = builder.build("#{gem_location}/../lib/atome.rb").to_s
26
- kernel_content = Uglifier.new.compile(kernel_content) if production
27
61
  File.open(kernel_js, 'w') do |f|
28
62
  f.puts kernel_content
29
63
  end
30
64
  end
31
65
 
32
- def build_opal_parser(user_project_path, production = false)
66
+ def build_opal_extensions(user_project_path, gem_location)
67
+ opal_directory = "#{user_project_path}/build/js/opal"
68
+ extensions_js = "#{opal_directory}/atome_opal_extensions.js"
69
+ File.new extensions_js, 'w'
70
+ builder = Opal::Builder.new
71
+ builder.append_paths("#{gem_location}/../lib/atome/renderers/opal/")
72
+ extensions_content = builder.build("#{gem_location}/../lib/atome/renderers/opal/atome_opal_extensions.rb").to_s
73
+ File.open(extensions_js, 'w') do |f|
74
+ f.puts extensions_content
75
+ end
76
+ end
77
+
78
+ def build_opal_parser(user_project_path)
33
79
  parser_js = "#{user_project_path}/build/js/opal/opal_parser.js"
80
+ File.new parser_js, 'w'
34
81
  parser_content = Opal::Builder.build('../lib/atome/renderers/opal/opal_parser.rb').to_s
35
- parser_content = Uglifier.new.compile(parser_content) if production
36
82
  File.open(parser_js, 'w') do |f|
37
83
  f.puts parser_content
38
84
  end
39
85
  end
40
86
 
41
- def build_user_code(user_project_path, production = false)
87
+ def build_user_code(user_project_path, source_code)
42
88
  application_js = "#{user_project_path}/build/js/application.js"
43
- application_content = Opal::Builder.build('../vendor/assets/index.rb').to_s
44
- application_content = Uglifier.new.compile(application_content) if production
89
+ builder = Opal::Builder.new
90
+ builder.append_paths("#{user_project_path}/")
91
+ application_content = builder.build(source_code).to_s
92
+
45
93
  File.open(application_js, 'w') do |f|
46
94
  f.puts application_content
47
95
  end
48
96
  end
49
97
 
50
- task :system_builder do
51
- # change to false for not production mode and faster compile time
52
- production = false
53
- user_project_path = ARGV[1]
54
- gem_location = File.join(File.dirname(__FILE__))
55
- build_atome_kernel(user_project_path, gem_location, production)
56
- build_opal_browser(user_project_path, production)
57
- build_opal_parser(user_project_path, production)
58
- build_user_code(user_project_path, production)
98
+ def minimize_aui(user_project_path)
99
+ aui_js = "#{user_project_path}/build/js/aui.js"
100
+ aui_content = File.open(aui_js).read
101
+ aui_content = Uglifier.new.compile(aui_content)
102
+ File.open(aui_js, 'w') do |f|
103
+ f.puts aui_content
104
+ end
105
+ end
106
+
107
+ def minimize_browser(user_project_path)
108
+ browser_js = "#{user_project_path}/build/js/opal/opal_browser.js"
109
+ browser_content = File.open(browser_js).read
110
+ browser_content = Uglifier.new.compile(browser_content)
111
+ File.open(browser_js, 'w') do |f|
112
+ f.puts browser_content
113
+ end
59
114
  end
60
115
 
61
- task :build do
62
- puts 'nothing for now'
116
+ def minimize_parser(user_project_path)
117
+ parser_js = "#{user_project_path}/build/js/opal/opal_parser.js"
118
+ parser_content = File.open(parser_js).read
119
+ parser_content = Uglifier.new.compile(parser_content)
120
+ File.open(parser_js, 'w') do |f|
121
+ f.puts parser_content
122
+ end
123
+ end
124
+
125
+ def minimize_atome_lib(user_project_path)
126
+ atome_js = "#{user_project_path}/build/js/atome/kernel.js"
127
+ atome_content = File.open(atome_js).read
128
+ atome_content = Uglifier.new.compile(atome_content)
129
+ File.open(atome_js, 'w') do |f|
130
+ f.puts atome_content
131
+ end
132
+ end
133
+
134
+ def minimize_sparkle(user_project_path)
135
+ opal_sparkle_js = "#{user_project_path}/build/js/opal/opal_sparkle.js"
136
+ opal_sparkle_content = File.open(opal_sparkle_js).read
137
+ opal_sparkle_content = Uglifier.new.compile(opal_sparkle_content)
138
+ File.open(opal_sparkle_js, 'w') do |f|
139
+ f.puts opal_sparkle_content
140
+ end
141
+ end
142
+
143
+ def minimize_opal_extensions(user_project_path)
144
+ atome_opal_extensions_js = "#{user_project_path}/build/js/opal/atome_opal_extensions.js"
145
+ atome_opal_extensions_content = File.open(atome_opal_extensions_js).read
146
+ atome_opal_extensions_content = Uglifier.new.compile(atome_opal_extensions_content)
147
+ File.open(atome_opal_extensions_js, 'w') do |f|
148
+ f.puts atome_opal_extensions_content
149
+ end
150
+ end
151
+
152
+ def minimize_libraries(user_project_path)
153
+ # minimizing aui
154
+ minimize_aui(user_project_path)
155
+ # minimizing opal_browser
156
+ minimize_browser(user_project_path)
157
+ # minimizing opal_parser
158
+ minimize_parser(user_project_path)
159
+ # minimizing atome_lib
160
+ minimize_atome_lib(user_project_path)
161
+ # minimizing atome_lib
162
+ minimize_sparkle(user_project_path)
163
+ # minimizing atome_lib
164
+ minimize_opal_extensions(user_project_path)
165
+ end
166
+
167
+ def minimize_user_code(user_project_path)
168
+ # minimizing user codes
169
+ application_js = "#{user_project_path}/build/js/application.js"
170
+ application_content = File.open(application_js).read
171
+ application_content = Uglifier.new.compile(application_content)
172
+ File.open(application_js, 'w') do |f|
173
+ f.puts application_content
174
+ end
175
+ end
176
+
177
+ task :build_user_code, :user_project_path, :production do |_t, args|
178
+ user_project_path = args[:user_project_path]
179
+ production = args[:production]
180
+ source_code = "#{user_project_path}/application/index.rb"
181
+ build_user_code(user_project_path, source_code)
182
+ minimize_user_code(user_project_path) if production == 'production'
183
+ end
184
+
185
+ task :system_builder, :user_project_path, :production do |_t, args|
186
+ user_project_path = args[:user_project_path]
187
+ production = args[:production]
188
+ source_code = '../vendor/assets/application/index.rb'
189
+ build_common_libraries(user_project_path, production)
190
+ build_user_code(user_project_path, source_code)
191
+
192
+ # TODO: catch and message to user when when there's no force and folder already exist
193
+ end
194
+
195
+ task :system_updater, :user_project_path, :production do |_t, args|
196
+ user_project_path = args[:user_project_path]
197
+ production = args[:production]
198
+ build_common_libraries(user_project_path, production)
199
+ end
200
+
201
+ task default: :run
202
+
203
+ def build_libraries(user_project_path, gem_location)
204
+ build_aui(user_project_path)
205
+ build_atome_kernel(user_project_path, gem_location)
206
+ build_opal_browser(user_project_path)
207
+ build_opal_parser(user_project_path)
208
+ build_opal_extensions(user_project_path, gem_location)
209
+ end
210
+
211
+ def minimize(user_project_path)
212
+ minimize_libraries(user_project_path)
213
+ minimize_user_code(user_project_path)
214
+ end
215
+
216
+ def build_common_libraries(user_project_path, production)
217
+ gem_location = File.join(File.dirname(__FILE__))
218
+ copy_assets_files(user_project_path, gem_location)
219
+ build_libraries(user_project_path, gem_location)
220
+ minimize(user_project_path) if production == 'production'
63
221
  end
64
222
 
65
- task default: :build
223
+ # TODO: integrate pure JS (ruby2js) compilation
@@ -0,0 +1,14 @@
1
+ atome
2
+ -
3
+
4
+ <img src="./images/atome.svg" width="100" />
5
+
6
+ ***Documentation***
7
+ -
8
+
9
+ **[I - What is atome](./framework/what_is_it.md)**
10
+
11
+ **[II - How to use it](./tutorials/tutorials.md)**
12
+
13
+ **[II - how to enhance](./framework/technical/technical_description.md)**
14
+
Binary file
@@ -0,0 +1,14 @@
1
+ <span align="right">
2
+
3
+ [Main menu](../atome.md)
4
+ -
5
+ </span>
6
+ <span align="left">
7
+
8
+ [back](./what_is_it.md)
9
+
10
+ </span>
11
+
12
+ Datas flows :
13
+ -
14
+
@@ -0,0 +1,179 @@
1
+
2
+ <span align="right">
3
+
4
+ [Main menu](../atome.md)
5
+ -
6
+ </span>
7
+
8
+ atome explained : the uniq object format
9
+ -
10
+
11
+ # new atome format
12
+
13
+ ----------------
14
+ atome structure :
15
+ id: {hash: {key: : value}
16
+ aui : {atome: {property: value}
17
+
18
+ ex: a_01: {color:{x: 33, y: 69, red: 0.1, green: 0.2, blue: 1, alpha: 1: diffusion: :radial}}
19
+
20
+ user can write:
21
+ a.color(:red)
22
+ a.red(0.1)
23
+ a.color(color:{x: 33, y: 69, red: 0.1})
24
+
25
+
26
+
27
+ an atome is a property ( position, size, type, etc..)
28
+
29
+ a single property (atome) can hold multiples properties cf: child property
30
+
31
+ b=box({ drag: true, atome_id: :the_box })
32
+ t=text({ content: "touch me to extract me from the box,\nand attach me to the circle ",y: 99, atome_id: :the_text })
33
+ grab(:the_box).attach(:the_text)
34
+ puts b.child # => ["the_text"]
35
+
36
+
37
+ atome's property are mutable even it's type ( useful to display a same atome in different manner, or use the data of the atome as a repository of style, or simply sawp it's functionality while retaining it's properties)
38
+
39
+ a single atome can be displayed in different way according it's rendering mode and or it's type.
40
+
41
+ EG :
42
+
43
+
44
+ a=image(content: :moto)
45
+
46
+
47
+ <img src="https://github.com/atomecorp/atome/raw/development/www/public/medias/images/moto.png" width="333" />
48
+
49
+ a.color(:white) #important else the text xill be transparent
50
+ a.type(:text)
51
+ moto
52
+
53
+ a.render({mode: :list, list: :property, sort: :alphabetically })
54
+ <img src="https://github.com/atomecorp/atome/raw/development/documentation/images/list.png" width="400px" />
55
+
56
+
57
+
58
+ - Anything that define an atome is a property.
59
+ any atome can contain an other atome or a group of atome as a property ex :
60
+
61
+
62
+ b = box({x: 300, drag: true})
63
+ image(:logo)
64
+ c = circle(x: 100)
65
+ b.insert(c.atome_id)
66
+ b.text('hello')
67
+ puts b.child #=> [c, t] (c and t is now a child of b)
68
+ b.touch do
69
+ # b children can be treated in one pass
70
+ # look at child example for more examples
71
+ b.child.color(:green)
72
+ end
73
+
74
+ Many atome properties can be set using a string or integer, it's a shortcut to set the content property eg :
75
+
76
+ text("hello") # equivalent to text({content: "hello"})
77
+ # or
78
+ image(:boat) # shortcut for image({content: :boat})
79
+
80
+ internally properties are always define using a key-value pair (Hash type) and can be set so :
81
+
82
+ text({content: "hello"})
83
+
84
+ Hash's values can be a String, an Integer, a hash or an array.
85
+
86
+ The atomiser method allow to modifying atome without interpreting/ refreshing the newly set property.
87
+ in this case the atome need rendered to refresh it's content
88
+
89
+ b = box()
90
+ b.atomiser({ color: :red })
91
+ b.atomiser({ smooth: 6})
92
+
93
+ wait 2 do
94
+ b.render(true)
95
+ end
96
+
97
+
98
+ - Any property can be define using an unique value (passed as a String , Symbole or a numeric value)
99
+
100
+
101
+ a=box({color: :red})
102
+ a.color(:red)
103
+ a.set({color: :red})
104
+
105
+ - Any property define are store internally as a Hash or an array if the property is define many times
106
+
107
+
108
+ a=box()
109
+ a.color(:red)
110
+ puts a.color #=> {color: :red}
111
+
112
+ - multiples parameters can be set at once using a hash:
113
+
114
+
115
+ box({x: 96, y: 96, color: :red, blur: 3})
116
+
117
+ - an object can be add as/like a property
118
+
119
+
120
+ box({text: :hello})
121
+ #or
122
+ b=box(x: 200)
123
+ b.text("hello")
124
+
125
+ - methods can be chained or assigned
126
+
127
+
128
+ b=box(width: 33)
129
+ b.color(:red).x(96).blur(3)
130
+
131
+ #or
132
+ b=box(width: 33)
133
+ b.color(:red).x(96).blur(3)
134
+ c=circle(color: :red)
135
+ b.color=c.color
136
+ c.y=b.blur
137
+
138
+
139
+
140
+
141
+
142
+ - to set a complex property such as shadow that needs more more than one parameters we have to send a hash to the atome
143
+
144
+ please note that any property can potentially have multiples parameters even the simplest one
145
+
146
+ # not implemented need a rework
147
+ a=box()
148
+ a.set({x: {content: 200, unit: :meters})
149
+
150
+ - Any property are stackable (even the simplest one), in this case we used the 'add' method to stack prop. alternatively it's possible to used an array to stack properties
151
+
152
+ a simple gradient :
153
+
154
+ b=box()
155
+ b.color([:cyan, :green, :orange, {diffusion: :conic}])
156
+
157
+
158
+ - all properties are treated identically and can be swap at any time.Type mutation is also possible : ex change the type of object from an image to text type
159
+
160
+
161
+ x=image({color: :white, content: :boat })
162
+ ATOME.wait 2 do
163
+ x.type(:text) #now the objet is rendered as a text object
164
+ end
165
+
166
+
167
+
168
+ here some possible definition of an atome
169
+
170
+ a=box({color: :red}) # an red box is created
171
+ a.set(smooth: 9) # the box has rounded corner the view is refreshed
172
+ a.set({width: 250},true )# the box is now 250px wide the view is forced to refresh
173
+ a.set({ border: { color: :orange, thickness: 7, pattern: :solid } })
174
+
175
+ **[- Architecture of the folders](./folder_architecture.md)**
176
+ -
177
+
178
+ **[- logic and datas flows](./datas_flows.md)**
179
+ -
@@ -0,0 +1,53 @@
1
+ <span align="right">
2
+
3
+ [Main menu](../atome.md)
4
+ -
5
+ </span>
6
+ <span align="left">
7
+
8
+ [back](./what_is_it.md)
9
+
10
+ </span>
11
+
12
+ What's in the box
13
+ -
14
+
15
+
16
+ **The atome framework is based on the Cordova framework, plus the additional following features :**
17
+
18
+
19
+
20
+ - a ruby interpreter
21
+
22
+ - a web server mode
23
+
24
+ - a simple modular and consistent syntax to build your own environment and tools
25
+
26
+
27
+ - video recording playback and streaming
28
+
29
+ - video conference
30
+
31
+ - realtime collaborative tool
32
+
33
+ - a bootable option for embedded applications on both AMD64 and ARM
34
+
35
+ - a full set of APIs covering graphics, audio, file, database and multimedia facilities (animation, interactive, drawing)
36
+
37
+ - everything in atome can be scriptable even at run time
38
+
39
+ - a native 3D engine rendering (the 3D engine is currently based on Urho3D, more frameworks may be supported in the future).
40
+
41
+ - a low latency audio system based on QAudio framework
42
+
43
+ - the atome object concept, that'll allow any to alter any object tools whatever it's type (unique Object concept)
44
+
45
+ - modular set of tools to create and modify atomes
46
+
47
+ - All tools alteration are non destructive
48
+
49
+ - atome alterations are logged so it's possible to restore an atome at any point of it's life
50
+
51
+ - expendable API system
52
+
53
+ - and more ...