atome 0.1.00009 → 0.4.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (354) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -0
  3. data/README.md +74 -6
  4. data/Rakefile +14 -6
  5. data/app_builder_helpers/Rakefile +183 -25
  6. data/documentation/atome.md +14 -0
  7. data/documentation/database.JPG +0 -0
  8. data/documentation/framework/apis.md +14 -0
  9. data/documentation/framework/atome_explained.md +179 -0
  10. data/documentation/framework/box_content.md +53 -0
  11. data/documentation/framework/buld_the_gem.md +52 -0
  12. data/documentation/framework/datas_flows.md +28 -0
  13. data/documentation/framework/enhance_atome.md +79 -0
  14. data/documentation/framework/folder_architecture.md +47 -0
  15. data/documentation/framework/technical/rendering_flow.md +18 -0
  16. data/documentation/framework/technical/technical_description.md +23 -0
  17. data/documentation/framework/what_is_it.md +65 -0
  18. data/documentation/framework/what_it_can_do.md +25 -0
  19. data/documentation/images/1.png +0 -0
  20. data/documentation/images/2.png +0 -0
  21. data/documentation/images/3.png +0 -0
  22. data/documentation/images/atome.svg +12 -0
  23. data/documentation/images/list.png +0 -0
  24. data/documentation/images/logos/cordova.png +0 -0
  25. data/documentation/images/logos/freebsd.png +0 -0
  26. data/documentation/images/logos/opal.png +0 -0
  27. data/documentation/images/logos/puma.png +0 -0
  28. data/documentation/images/logos/roda.svg +1 -0
  29. data/documentation/images/logos/ruby.png +0 -0
  30. data/documentation/images/logos/tauri.png +0 -0
  31. data/documentation/installation/atome_server.md +184 -0
  32. data/documentation/tutorials/first_steps.md +148 -0
  33. data/documentation/tutorials/tutorials.md +15 -0
  34. data/documentation/tutorials/working_with_atome.md +60 -0
  35. data/exe/atome +178 -53
  36. data/lib/atome/atome_native_extensions.rb +5 -0
  37. data/lib/atome/extensions/geolocation.rb +14 -0
  38. data/lib/atome/extensions/helper.rb +123 -0
  39. data/lib/atome/extensions/ping.rb +13 -0
  40. data/lib/atome/extensions/sha.rb +6 -0
  41. data/lib/atome/extensions/utilities.rb +39 -0
  42. data/lib/atome/kernel/atome.rb +98 -0
  43. data/lib/atome/kernel/generators/generator.rb +387 -0
  44. data/lib/atome/kernel/generators/genesis.rb +265 -0
  45. data/lib/atome/kernel/generators/sanitizer.rb +77 -0
  46. data/lib/atome/kernel/generators/shapes.rb +40 -0
  47. data/lib/atome/kernel/properties/essential.rb +43 -0
  48. data/lib/atome/kernel/sparkle.rb +37 -0
  49. data/lib/atome/kernel/universe.rb +29 -0
  50. data/lib/atome/renderers/headless/properties/generator.rb +1 -0
  51. data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
  52. data/lib/atome/renderers/opal/extensions/color.rb +23 -0
  53. data/lib/atome/renderers/opal/extensions/geolocation.rb +14 -0
  54. data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
  55. data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
  56. data/lib/atome/renderers/opal/opal_browser.rb +2 -1
  57. data/lib/atome/renderers/opal/opal_parser.rb +1 -0
  58. data/lib/atome/renderers/opal/properties/generator.rb +1 -0
  59. data/lib/atome/renderers/renderer.rb +12 -0
  60. data/lib/atome/renderers/server/properties/generator.rb +9 -0
  61. data/lib/atome/version.rb +1 -1
  62. data/lib/atome.rb +55 -2
  63. data/vendor/assets/Guardfile +4 -0
  64. data/vendor/assets/Rakefile +3 -0
  65. data/vendor/assets/application/index.rb +4 -0
  66. data/vendor/assets/build/css/style.css +21 -8
  67. data/vendor/assets/build/favicon.ico +0 -0
  68. data/vendor/assets/build/index.html +13 -4
  69. data/vendor/assets/build/js/atome/atome.js +68 -0
  70. data/vendor/assets/build/js/ping.min.js +2 -0
  71. data/vendor/assets/build/js/third_parties/createjs.min.js +19 -0
  72. data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
  73. data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
  74. data/vendor/assets/build/js/third_parties/three.min.js +6 -0
  75. data/vendor/assets/build/js/utilities/w3color.js +646 -0
  76. data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
  77. data/vendor/assets/build/medias/audios/clap.wav +0 -0
  78. data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
  79. data/vendor/assets/build/medias/audios/hihat.wav +0 -0
  80. data/vendor/assets/build/medias/audios/kick.wav +0 -0
  81. data/vendor/assets/build/medias/audios/riff.m4a +0 -0
  82. data/vendor/assets/build/medias/audios/snare.wav +0 -0
  83. data/vendor/assets/build/medias/audios/tom.wav +0 -0
  84. data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
  85. data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
  86. data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
  87. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
  88. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
  89. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
  90. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
  91. data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
  92. data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
  93. data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
  94. data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
  95. data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
  96. data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
  97. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
  98. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
  99. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
  100. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
  101. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
  102. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
  103. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
  104. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
  105. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
  106. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
  107. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
  108. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
  109. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
  110. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
  111. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
  112. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
  113. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
  114. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
  115. data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
  116. data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
  117. data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
  118. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
  119. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
  120. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
  121. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
  122. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
  123. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
  124. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
  125. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
  126. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
  127. data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
  128. data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
  129. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
  130. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
  131. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
  132. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
  133. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
  134. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
  135. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
  136. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
  137. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
  138. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
  139. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
  140. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
  141. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
  142. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
  143. data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
  144. data/vendor/assets/build/medias/images/atome.svg +12 -0
  145. data/vendor/assets/build/medias/images/avion.jpg +0 -0
  146. data/vendor/assets/build/medias/images/ballanim.png +0 -0
  147. data/vendor/assets/build/medias/images/blank.png +0 -0
  148. data/vendor/assets/build/medias/images/boat.png +0 -0
  149. data/vendor/assets/build/medias/images/cache.svg +10 -0
  150. data/vendor/assets/build/medias/images/dices.png +0 -0
  151. data/vendor/assets/build/medias/images/eVe_back.png +0 -0
  152. data/vendor/assets/build/medias/images/elephant.png +0 -0
  153. data/vendor/assets/build/medias/images/eyes.jpg +0 -0
  154. data/vendor/assets/build/medias/images/freebsd.png +0 -0
  155. data/vendor/assets/build/medias/images/grain_texture.png +0 -0
  156. data/vendor/assets/build/medias/images/green_planet.png +0 -0
  157. data/vendor/assets/build/medias/images/image_missing.svg +9 -0
  158. data/vendor/assets/build/medias/images/jeezs.png +0 -0
  159. data/vendor/assets/build/medias/images/keyboard.png +0 -0
  160. data/vendor/assets/build/medias/images/killer.jpg +0 -0
  161. data/vendor/assets/build/medias/images/living_room.png +0 -0
  162. data/vendor/assets/build/medias/images/logo.svg +14 -0
  163. data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
  164. data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
  165. data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
  166. data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
  167. data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
  168. data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
  169. data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
  170. data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
  171. data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
  172. data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
  173. data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
  174. data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
  175. data/vendor/assets/build/medias/images/moto.png +0 -0
  176. data/vendor/assets/build/medias/images/noise.svg +17 -0
  177. data/vendor/assets/build/medias/images/piano.png +0 -0
  178. data/vendor/assets/build/medias/images/poisson.jpg +0 -0
  179. data/vendor/assets/build/medias/images/red_planet.png +0 -0
  180. data/vendor/assets/build/medias/images/sky.jpg +0 -0
  181. data/vendor/assets/build/medias/images/the_mask.svg +8 -0
  182. data/vendor/assets/build/medias/images/tile.png +0 -0
  183. data/vendor/assets/build/medias/images/tile_black.png +0 -0
  184. data/vendor/assets/build/medias/images/tile_white.png +0 -0
  185. data/vendor/assets/build/medias/javascripts/test.js +1 -0
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
  254. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
  255. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
  256. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
  257. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
  258. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
  259. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
  260. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
  261. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
  262. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
  263. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
  264. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
  265. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
  266. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
  267. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
  268. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
  269. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
  270. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
  271. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
  272. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
  273. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
  274. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
  275. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
  276. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
  277. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
  278. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
  279. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
  280. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
  281. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
  282. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
  283. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
  284. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
  285. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
  286. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
  287. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
  288. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
  289. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
  290. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
  291. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
  292. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
  293. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
  294. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
  295. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
  296. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
  297. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
  298. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
  299. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
  300. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
  301. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
  302. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
  303. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
  304. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
  305. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
  306. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
  307. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
  308. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
  309. data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
  310. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
  311. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
  312. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  313. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
  314. data/vendor/assets/build/medias/rubies/examples/box.rb +1 -0
  315. data/vendor/assets/build/{js/opal/opal_browser.js → medias/rubies/examples/circle.rb} +0 -0
  316. data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
  317. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
  318. data/vendor/assets/build/medias/rubies/examples/drag.rb +5 -0
  319. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
  320. data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
  321. data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
  322. data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
  323. data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
  324. data/vendor/assets/build/medias/rubies/examples/link.rb +13 -0
  325. data/vendor/assets/build/medias/rubies/examples/parent.rb +12 -0
  326. data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
  327. data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
  328. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
  329. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  330. data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
  331. data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
  332. data/vendor/assets/build/medias/rubies/examples/text.rb +5 -0
  333. data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
  334. data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
  335. data/vendor/assets/build/medias/rubies/examples/video.rb +4 -0
  336. data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
  337. data/vendor/assets/build/medias/rubies/examples/web.rb +9 -0
  338. data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
  339. data/vendor/assets/build/medias/rubies/test.rb +1 -0
  340. data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
  341. data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
  342. data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
  343. data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
  344. data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
  345. data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
  346. data/vendor/assets/r&d/ping.rb +3 -0
  347. data/vendor/assets/r&d/storage.rb +9 -0
  348. data/vendor/assets/r&d/view_example.rb +21 -0
  349. data/vendor/assets/server/atome_server.rb +74 -27
  350. data/vendor/assets/server/config.ru +2 -14
  351. metadata +424 -12
  352. data/lib/atome/kernel/atome_genesis.rb +0 -2
  353. data/lib/atome/kernel/properties/geometry.rb +0 -2
  354. data/vendor/assets/build/js/opal/opal_parser.js +0 -0
@@ -0,0 +1,57 @@
1
+ # capture demo
2
+
3
+ recorder = text({content: "click to start logging", height: 30, color: :red, x: 33, y: 96, smooth: 33, width: :auto})
4
+ stop = text({content: "click to stop logging", height: 30, color: :black, x: 33, y: 123, smooth: 33, width: :auto})
5
+ starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
6
+ text({content: "try touch drag and resize on window", width: :auto})
7
+ text = text({content: "mouse pointer position and timer", y: 33, width: :auto})
8
+ recorder.touch do
9
+
10
+ grab(:view).touch({option: :down}) do |evt|
11
+ ending = Process.clock_gettime(Process::CLOCK_MONOTONIC)
12
+ elapsed = ending - starting
13
+ object_under_pointer=JSUtils.get_object_under_pointer(evt)
14
+ pointer = "click down on view a at #{evt.page_x}, #{evt.page_y} : #{elapsed}, object under the pointer #{object_under_pointer}"
15
+ text.content = pointer
16
+ end
17
+
18
+ grab(:view).touch({option: :up}) do |evt|
19
+ ending = Process.clock_gettime(Process::CLOCK_MONOTONIC)
20
+ elapsed = ending - starting
21
+ object_under_pointer=JSUtils.get_object_under_pointer(evt)
22
+ pointer = "click up on view at #{evt.page_x}, #{evt.page_y} : #{elapsed}, object under the pointer #{object_under_pointer}"
23
+ text.content = pointer
24
+ end
25
+
26
+ grab(:view).drag({fixed: true}) do |evt|
27
+ ending = Process.clock_gettime(Process::CLOCK_MONOTONIC)
28
+ elapsed = ending - starting
29
+ pointer = "drag on view at #{evt.page_x}, #{evt.page_y} : #{elapsed}"
30
+ text.content = pointer
31
+ end
32
+
33
+ ATOME.resize_html(true) do |evt|
34
+ ending = Process.clock_gettime(Process::CLOCK_MONOTONIC)
35
+ elapsed = ending - starting
36
+ pointer = "resize the view #{evt[:width]}, #{evt[:height]} : #{elapsed}"
37
+ text.content = pointer
38
+ end
39
+
40
+ grab(:view).record(true) do |evt|
41
+ ending = Process.clock_gettime(Process::CLOCK_MONOTONIC)
42
+ elapsed = ending - starting
43
+ pointer = "cursor move : #{evt.page_x}, #{evt.page_y} : #{elapsed}"
44
+ text.content = pointer
45
+ end
46
+
47
+ end
48
+
49
+ stop.touch do
50
+ grab(:view).record(:stop)
51
+ grab(:view).child.record(:stop)
52
+ grab(:view).child.drag(x: 33)
53
+ end
54
+ image({content: :green_planet, x: 196, y: 196, atome_id: :the_planet, drag: true})
55
+
56
+ box({x: 196, y: 196, color: :yellowgreen, atome_id: :my_nice_box, drag: true})
57
+ circle({x: 222, y: 222, atome_id: :the_circle, drag: true})
@@ -0,0 +1,21 @@
1
+ # dynamic centering example
2
+
3
+ b = box({ width: 700, height: 120, drag: true, center: { dynamic: true } })
4
+ c = circle({y:33})
5
+ c.text({content: "activate dynamic 'continuous' centering", color: :white})
6
+ t2=text({content: "remove dynamic centering on box", color: :white, y: 0})
7
+ t = text({ content: "ok", color: :white, center: :x , y: 69})
8
+
9
+ c.touch do
10
+ grab(:buffer).content[:resize] = [t, b]
11
+ ATOME.resize_html do |evt|
12
+ t.content("#{evt[:width]} #{evt[:height]}")
13
+ grab(:buffer).content[:resize].each do |element|
14
+ element.center=element.center
15
+ end
16
+ end
17
+ end
18
+
19
+ t2.touch do
20
+ grab(:buffer).content[:resize] = [t]
21
+ end
@@ -0,0 +1,18 @@
1
+ # child
2
+
3
+ c = circle({atome_id: :c, x: 20})
4
+ c.drag do
5
+ end
6
+ img=image({content: :red_planet, atome_id: :red_planet})
7
+ c.box({atome_id: :e, x: 160})
8
+ c.text({content: 'some text', atome_id: :t, width: 100, height: 200, x: 69})
9
+ b2=box({x:200, atome_id: :the_box})
10
+ c.child.color(:green)
11
+
12
+ c.child([img.atome_id, b2.atome_id])
13
+ c.child do |child_found|
14
+ child_found.set({width: 100, height: 33, rotate: 36, y: 66})
15
+ end
16
+
17
+ c.child[:red_planet].y(200)
18
+ b2.parent[1].color(:cyan)
@@ -0,0 +1,21 @@
1
+ #clear
2
+
3
+ # box({atome_id: :the_box})
4
+ c=circle(x: 96)
5
+ t=text({content: "click tme to clear the screen", atome_id: :the_text})
6
+ text({content: "hello", x: 96, y: 96})
7
+ image({content: :boat, size: 96, x: 96, y: 96})
8
+ image({content: :moto, size: 96, y: 96})
9
+
10
+
11
+ b=box({x: 96, y: 96})
12
+ b.circle(true)
13
+ b.text("touch the box to clear it's content")
14
+ b.attach(c.atome_id)
15
+ b.touch do
16
+ b.clear(true)
17
+ end
18
+
19
+ t.touch do
20
+ grab(:view).clear(:true)
21
+ end
@@ -0,0 +1,11 @@
1
+ # clip example
2
+ text("touch the rectangle")
3
+ b=box({width: 222, height: 529, x: 333})
4
+ s=shape({ path: :the_mask, width: 33, atome_id: :the_path})
5
+
6
+ b.touch do ||
7
+ b.clip({path: :clipping5})
8
+ b.shadow({ x: 0, y: 0, color: "rgba(0,0,0,1)", blur: 16, thickness: 0 })
9
+ end
10
+
11
+ s.width(333)
@@ -0,0 +1,7 @@
1
+ #code example
2
+
3
+ text(content: "the code within the contain circle is executed, it'll create a green circle, \ntouch the red circle ",code: "c=circle;c.color(:green)\nc.x(66)\nc.y(66)")
4
+ cell({ content: "box({x:99, y: 99})", exec: false,atome_id: :the_box })
5
+ cell({ content: "c=circle({x:300, y: 300});c.touch do \n grab(:the_box).exec(true)\nend" })
6
+
7
+ # use for code type (machine molecule )
@@ -0,0 +1,26 @@
1
+ # ide
2
+
3
+ t=text(content: "touch me to open the code editor", xx: 50)
4
+ t.touch do
5
+ coding({atome_id: :code_editor, content: :circle})
6
+ end
7
+
8
+ code_editor_font_size=12
9
+ c=circle({size: 33})
10
+ c2=circle({size: 33, x: 69})
11
+ t=c.text({content: "-", center: true, color: :black})
12
+ t2=c2.text({content: "+", center: true, color: :black, x: 69})
13
+ t.center(true)
14
+ t2.center(true)
15
+
16
+
17
+ c.touch do
18
+ code_editor_font_size=code_editor_font_size-5
19
+ ATOME.codemirror_font_size( code_editor_font_size)
20
+
21
+ end
22
+
23
+ c2.touch do
24
+ code_editor_font_size=code_editor_font_size+5
25
+ ATOME.codemirror_font_size( code_editor_font_size)
26
+ end
@@ -0,0 +1,115 @@
1
+ # collaborate example
2
+
3
+ # Call login through web socket
4
+ class LoginCallback
5
+ def response(response)
6
+ login_button=box({x: 0, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
7
+ login_button.text({x:0, y:0, content: "Login response: #{response.JS["log"]}",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
8
+
9
+ @session_id = response.JS["log"]
10
+ end
11
+
12
+ def session_id
13
+ @session_id
14
+ end
15
+ end
16
+
17
+ login_callback = LoginCallback.new
18
+
19
+ login_button=box({x: 0, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
20
+ login_button.text({x:0, y:0, content: "Login", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
21
+ login_button.touch do
22
+ ATOME.message({request_id: 0, type: :login, username: "user1", password: "password"}, login_callback)
23
+ end
24
+
25
+ # Start a channel through web socket
26
+ class StartChannelCallback
27
+ def response(response)
28
+ start_channel_button=box({x: 120, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
29
+ @channel_id = response.JS["channel_id"]
30
+ start_channel_button.text({x:0, y:0, content: "Start channel response: #{@channel_id}", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
31
+
32
+ end
33
+
34
+ def channel_id
35
+ @channel_id
36
+ end
37
+ end
38
+
39
+ start_channel_callback = StartChannelCallback.new
40
+
41
+ start_channel_button=box({x: 120, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
42
+ start_channel_button.text({x:0, y:0, content: "Start channel",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
43
+
44
+ start_channel_button.touch do
45
+ ATOME.message({request_id: 1, type: :start_channel, session_id: login_callback.session_id, name: "channel de test"}, start_channel_callback)
46
+ end
47
+
48
+ # List channels through web socket
49
+ class ListChannelsCallback
50
+ def response(response)
51
+ list_channels_button=box({x: 240, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
52
+
53
+ @channels = response.JS["channels"]
54
+ list_channels_button.text({x:0, y:0, content: "List channels response: #{@channels}",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
55
+ end
56
+
57
+ def channels
58
+ @channels
59
+ end
60
+ end
61
+
62
+ list_channels_callback = ListChannelsCallback.new
63
+
64
+ list_channels_button=box({x: 240, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
65
+ list_channels_button.text({x:0, y:0, content: "List channels", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
66
+
67
+ list_channels_button.touch do
68
+ ATOME.message({request_id: 2, type: :list_channels, session_id: login_callback.session_id}, list_channels_callback)
69
+ end
70
+
71
+ # Connect to channel through web socket
72
+ class ConnectChannelsCallback
73
+ def response(response)
74
+ connect_to_channel_button=box({x: 360, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
75
+
76
+ @connected = response.JS["connected"]
77
+ connect_to_channel_button.text({x:0, y:0, content: "Connect to channel response: #{@connected}", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
78
+ end
79
+
80
+ def connected
81
+ @connected
82
+ end
83
+ end
84
+
85
+ connect_to_channels_callback = ConnectChannelsCallback.new
86
+
87
+ connect_channel_button=box({x: 360, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
88
+ connect_channel_button.text({x:0, y:0, content: "Connect to channel", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
89
+
90
+ connect_channel_button.touch do
91
+ ATOME.message({request_id: 3, type: :connect_channel, session_id: login_callback.session_id, channel_id: list_channels_callback.channels[0]}, connect_to_channels_callback)
92
+ end
93
+
94
+ # Push to channel through web socket
95
+ class PushToChannelsCallback
96
+ def response(response)
97
+ push_to_channel_button=box({x: 480, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
98
+
99
+ @pushed = response.JS["pushed"]
100
+ push_to_channel_button.text({x:0, y:0, content: "Push to channel response: #{@pushed}",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
101
+ end
102
+
103
+ def pushed
104
+ @pushed
105
+ end
106
+ end
107
+
108
+ push_to_channels_callback = PushToChannelsCallback.new
109
+
110
+ push_to_channel_button=box({x: 480, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
111
+ push_to_channel_button.text({x:0, y:0, content: "Push to channel",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
112
+
113
+ push_to_channel_button.touch do
114
+ ATOME.message({request_id: 4, type: :push_to_channel, session_id: login_callback.session_id, channel_id: list_channels_callback.channels[0], message: "box({x: 100, y: 100, color: :red})"}, push_to_channels_callback)
115
+ end
@@ -0,0 +1,14 @@
1
+ # convert api
2
+
3
+ c = circle()
4
+ c.xx(250)
5
+ c.yy(300)
6
+ c.width("33%")
7
+ t=text('resize the window')
8
+ t.y=20
9
+ t.color(:white)
10
+ ATOME.resize_html(true) do |evt|
11
+ new_size=c.convert(:width)
12
+ t.content("width set : 33%, in pixel :\n"+new_size.to_s+" px")
13
+ end
14
+ t.x(450)
@@ -0,0 +1,35 @@
1
+ # Copy paste example
2
+ b = box()
3
+ c = circle({ color: ({ alpha: 0.2 }) , x: 300})
4
+ c.copy
5
+ b.copy
6
+
7
+ wait 1 do
8
+ b.delete(true)
9
+ end
10
+
11
+ wait 2 do
12
+ c.paste(:properties)
13
+ end
14
+
15
+ wait 4 do
16
+ grab(:view).clear
17
+ end
18
+
19
+
20
+ wait 6 do
21
+ grab(:view).paste(:all)
22
+ end
23
+
24
+ # wait 1 do
25
+ # b.delete(true)
26
+ # end
27
+ # wait 2 do
28
+ # grab(:view).paste
29
+ # wait 2 do
30
+ # grab(:view).paste
31
+ # wait 2 do
32
+ # grab(:view).paste
33
+ # end
34
+ # end
35
+ # end
@@ -0,0 +1,14 @@
1
+ # current_code example
2
+ text " attention this code work better when extracted from examples\n touch the box below"
3
+ # JSUtils.load_opal_parser
4
+ b=box({y: 120})
5
+
6
+ b.touch do
7
+ current_code(["./medias/rubies/examples/refresh.rb","./medias/rubies/examples/blur.rb"])
8
+ # wait 2 do
9
+ refresh current_code
10
+ # end
11
+ # reader(current_code) do |script|
12
+ # compile script
13
+ # end
14
+ end
@@ -0,0 +1,3 @@
1
+ # cursor example
2
+
3
+ box({cursor: :pointer})
@@ -0,0 +1,11 @@
1
+ # data example
2
+ # data property is used to store data inside the atome
3
+
4
+ bb=box(width: 333)
5
+ bb.text("touch me")
6
+ bb.data("data stored here")
7
+ bb.touch do
8
+ t=text({y: 133})
9
+ t.content(bb.data)
10
+ end
11
+
@@ -0,0 +1,29 @@
1
+ c = circle({x: 69, y: 9, width: 36, height: 36, color: :green})
2
+ c2 = circle({x: 69, y: 150, width: 36, height: 36, color: :red})
3
+ db = Database.new(:atomeDB)
4
+
5
+ c.touch do
6
+ db.create_table(:user, "id, login, password, date")
7
+ db.create_table(:document, "id, content, user_id, date")
8
+ db.create_user({id: "a_87764", date: "2021-03-15", login: :regis, password: :alknx87978hjg})
9
+ db.create_user({id: "a_87765", date: "2021-03-16", login: :jeezs, password: :oiuoih978hjg})
10
+ db.create_user({id: "a_87766", date: "2021-02-06", login: :sylvain, password: :sdfsdfjg})
11
+ db.create_user({id: "a_87767", date: "2021-02-02", login: :romain, password: :jfhdfg978hjg})
12
+
13
+ db.create_document({id: "0", date: "2021-date: 03-06", content: "circle({x: 300})", user_id: "a_87764"})
14
+ db.create_document({id: "1", date: "2021-01-06", content: "text({x: 300})", user_id: "a_87769"})
15
+ db.create_document({id: "2", date: "2021-02-12", content: "text({x: 300})", user_id: "a_87765"})
16
+ db.create_document({id: "3", date: "2021-02-12", content: "image(:boat)", user_id: "a_87764"})
17
+
18
+ db.populate(:user, {id: "a_87770", date: "2019-02-06", login: :benoit, password: :l554kjhkjsfdg})
19
+ db.get_documents_by_user("a_87764")
20
+ db.update_documents("0", "big_car")
21
+ db.get_documents_by_id("0")
22
+ db.delete_doc_by_id("0")
23
+ db.get_documents_by_id("0")
24
+
25
+ end
26
+ c2.touch do
27
+ db.delete
28
+ text({content: " db removed", visual: 33, color: :red, y: 69, width: 222})
29
+ end
@@ -0,0 +1,12 @@
1
+ # delete
2
+
3
+ b = box()
4
+ c = b.text({content: :ok})
5
+ c.circle({atome_id: :the_c, color: :green, x:96})
6
+ d = b.text({content: :ok2, y: 30, atome_id: :the_second_text})
7
+ d.circle({y: 96})
8
+ info_text=text({content: "click the box to delete the childs\nthe :view childs are : #{b.child}", x: 96, y: 96, width: :auto})
9
+ b.touch do
10
+ info_text.content( "the childs are : #{b.child}")
11
+ b.child.delete(true)
12
+ end
@@ -0,0 +1,19 @@
1
+ # the display API is used both to visualize an object or not but also when displaying atome in a special way : cf VR mode
2
+ # this API must be umerge with the render API (for list mode etc..)
3
+ # attention : "render" false remove the object from the DOM while "display" jsut make it invisible on the screen, We may
4
+ # keep the two behaviors
5
+
6
+ b=box({id: :toto, color: :green, display: false, atome_id: :the_box})
7
+ # b=box({id: :toto, color: :green, display: :none})
8
+ # b.display(true)
9
+ wait 2 do
10
+ b.display(true)
11
+ end
12
+
13
+ b.touch do
14
+ # b.display(false)
15
+ b.render(false)
16
+ wait 4 do
17
+ b.render(true)
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ # accumulate example
2
+
3
+ circle({disposition: :x, color: :red})
4
+ box({disposition: :x, color: {alpha: 0.3, red: 1}})
5
+ box({disposition: {x: 33 }, color: :blue})
6
+ box({disposition: {y: 33 }, color: :green})
7
+ main_bloc=box({center: true})
8
+ main_bloc.box({disposition: {y: 33, x: 33 }, color: :green})
9
+ main_bloc.box({disposition: {y: 33, x: 33 }, color: :green})
10
+ main_bloc.box({disposition: {y: 33 , x: 33 }, color: :green})
@@ -0,0 +1,23 @@
1
+ # double and long touch example
2
+ b=box
3
+ b.touch ({ option: :double, delay: 0.6 }) do
4
+ # b.x=b.x+60
5
+ if b.color==:yellow
6
+ b.color=:green
7
+ else
8
+ b.color=:yellow
9
+ end
10
+ end
11
+ c=circle({ x: 99 })
12
+
13
+ c.touch ({ option: :long, delay: 1 }) do
14
+ # c.x=c.x+60
15
+ if c.color==:red
16
+ c.color=:blue
17
+ else
18
+ c.color=:red
19
+ end
20
+ end
21
+
22
+ # delay(in seconds) is optional and set latency before tow touchs or the time to wait
23
+
@@ -0,0 +1,61 @@
1
+ # drag
2
+
3
+ t=text({content: "drag the grey box!", x: 33, y: 33 })
4
+ t2=text({content: "click me to destroy drag on the moto", x: 33, yy: 96 })
5
+
6
+ b=box({center: true})
7
+ b.drag(true) do |evt|
8
+ b.rotate(evt.page_x)
9
+ t.content("pointer x: #{evt.page_x},
10
+ pointer Y: #{evt.page_y},
11
+ offset x: #{evt.offset_x},
12
+ offset y: #{evt.offset_y},
13
+ box x: #{b.x},
14
+ box y: #{b.y},
15
+ ")
16
+ end
17
+ dragger=box({width: 96, height: 96, x:333, y: 200})
18
+ handle=dragger.box({width: 96, height: 16, color: :orange, atome_id: :the_handle})
19
+ handle.text({content: "drag me from here", visual: 12, color: :black})
20
+ dragger.drag({handle: :the_handle}) do |evt|
21
+ t.content("I can only be dragged using the bar above")
22
+ end
23
+ c=circle({y:66,x: 333, drag:{lock: :y}, color: :purple})
24
+ c.drag({lock: :y}) do
25
+ t.content("I can only be dragged along the x axis")
26
+ end
27
+
28
+ container=box({width: 123, y:333,x: 333,color: :yellowgreen, smooth: 6, drag: true})
29
+
30
+ circle1=container.circle({y:0,x: 0,width: 33,height: 33, color: :black})
31
+ circle1.drag({containment: :true}) do
32
+ t.content("I am restricted to the parent")
33
+ end
34
+
35
+ circle2=container.circle({y:0,x: 96,width: 33,height: 33, color: :red})
36
+ circle2.drag({containment: :view, grid: {x:33, y:33}}) do
37
+ t.content("I am restricted to the view and my movement is constraint by a grid")
38
+ end
39
+
40
+ img=image({content: :moto,x: 33, y: 33, size: 132})
41
+ img.drag({containment:{x:33, y: 33, xx: 333, yy: 333}}) do |evt|
42
+ if evt.start
43
+ t.content("I am restricted to a confined area")
44
+ t.color(:white)
45
+ elsif evt.stop
46
+ t.content("on stop x is : #{evt.page_x}, y is: #{evt.page_y}")
47
+ t.color(:red)
48
+ else
49
+ c.width=evt.offset_x
50
+ end
51
+ end
52
+
53
+ boat=image({ content: :boat, size: 132,y: 333 })
54
+ boat.drag({ fixed: true }) do |evt|
55
+ img.blur(evt.offset_x/66)
56
+ img.size(evt.offset_x/6+132)
57
+ t.content("drag the boat will change tha property of the moto")
58
+ end
59
+ t2.touch do
60
+ img.drag(:destroy)
61
+ end
@@ -0,0 +1 @@
1
+ text("drop a png on the window to import the medias (not availlable on safari for now)")
@@ -0,0 +1,23 @@
1
+ # drop example
2
+
3
+ b = box()
4
+ b.x(250)
5
+ b.drag(true)
6
+ c = circle
7
+ c.x(390)
8
+ c.drop(true) do |evt, ui,current_obj |
9
+ dropped_element= `$(#{ui}.draggable).attr('id')`
10
+ puts evt
11
+ if grab(dropped_element).color==:red
12
+ grab(dropped_element).color(:orange)
13
+ else
14
+ grab(dropped_element).color(:red)
15
+ end
16
+ current_obj.color(:black)
17
+ current_obj.y=c.y+33
18
+ end
19
+
20
+ c.touch do
21
+ c.drop(false)
22
+ end
23
+
@@ -0,0 +1,11 @@
1
+ # duplicate
2
+
3
+ c = circle({ x: 69, y: 69, drag: true })
4
+ c.text({ content: :ok, color: :yellow, size: 33, center: true })
5
+ t = text({ content: 'touch me!' })
6
+ t.touch do
7
+ c.duplicate({ x: 7, y: 7 })
8
+ end
9
+ c.touch do
10
+ c.duplicate({ x: 3, y: 3 })
11
+ end
@@ -0,0 +1,6 @@
1
+ # edit
2
+
3
+ t=text(" you can type your text here")
4
+ t.color(:lightgray)
5
+ t.center(:true)
6
+ t.edit(true)
@@ -0,0 +1,9 @@
1
+ # eval example
2
+
3
+ eval("box(x: 96,y: 96, smooth: 6, color: :orange)")
4
+ begin
5
+ eval 'x = {id: 1'
6
+ rescue SyntaxError
7
+ t=text("eval catch the error : 'x = {id: 1'")
8
+ t.color(:red)
9
+ end
@@ -0,0 +1,23 @@
1
+ # extract example
2
+
3
+ c = circle({ atome_id: :the_circle })
4
+ c.text({ content: "children are restored too!!", visual: 22 })
5
+
6
+ b = box({ x: 666, drag: true, atome_id: :the_box })
7
+ t = b.text({ content: :ok, yy: 3, color: :black , atome_id: :the_text})
8
+ i = image({ content: :atome, size: 33, x: 96 })
9
+
10
+ i.transfer(b.atome_id)
11
+ t.content("logo parent is #{i.parent}")
12
+
13
+ c.touch do
14
+ grab(:view).extract(c.atome_id)
15
+ grab(:the_box).extract(i.atome_id)
16
+ grab(:view).insert(i.atome_id)
17
+ ATOME.wait 2 do
18
+ grab(:intuition).insert(c.atome_id)
19
+ end
20
+ c.touch do
21
+ c.delete(true)
22
+ end
23
+ end
@@ -0,0 +1,10 @@
1
+ # fill example
2
+
3
+ back_try = box()
4
+ back_try.x(350)
5
+ back_try.size(490)
6
+ back_try.scale(true)
7
+ moto_text = back_try.image(:moto)
8
+ moto_text.visual(70)
9
+ back_try.color(:transparent)
10
+ moto_text.fill({target: back_try, number: 7})
@@ -0,0 +1,37 @@
1
+ # find example
2
+
3
+ t= text"touch me to blur all orange object"
4
+ t2= text({content: "touch me to resize all object of the type shape ", x: 390})
5
+
6
+ b = box({ size: 66 , y: 33, x: 333, color: :orange})
7
+ b.tag("my_tag")
8
+ circle({ x: 200, y: 33 , color: :orange})
9
+ circle({x: 200, y: 96, color: :green, tag: :other_tag})
10
+
11
+ b.add({ tag: :new_tag })
12
+
13
+ t.touch do
14
+ grab(:view).find({ color: :orange }).blur(3)
15
+ end
16
+
17
+ t2.touch do
18
+ grab(:view).find({ type: :shape }).size(33)
19
+ end
20
+
21
+
22
+ # enhanced find demo
23
+ b=box({color: :red, atome_id: :the_box, y: 44 })
24
+ circle({y: 500, atome_id: :the_circle, color: :green, x: 99})
25
+ t=b.text({content: "my super text!",y: 50, color: :green, atome_id: :text_1 })
26
+ t.text({x: 222, content: :super, atome_id: :text_child, color: :orange})
27
+ b.image({content: :boat, size: 33, atome_id: :the_image, y: 500})
28
+ # grab(:view).find({ y: 500, condition: :or, recursive: true }).find({ color: :green}).blur(6)
29
+ # find({ y: 500, color: :green, recursive: true, condition: :or }).blur(9)
30
+ grab(:view).find({ y: 50, color: :green, condition: :and, recursive: 3 }).blur(3)
31
+ # grab(:view).find({x: 222, recursive: 3 }).blur(7)
32
+ # b.find({color: :green, recursive: true }).blur(7)
33
+ # grab(:view).find({ color: :red, y: 32 }).find({y: 500}).blur(6)
34
+
35
+ # condition: or(mean at least one condition must be respected), and(mean both condition must be respected)
36
+ # recursive: true, 1, 2 (max depth of recursivity)
37
+ # find can be chained