atome 0.5.7.0.3 → 0.3191

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of atome might be problematic. Click here for more details.

Files changed (472) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/README.md +5 -77
  4. data/Rakefile +7 -502
  5. data/app_builder_helpers/Rakefile +235 -0
  6. data/documentation/framework/enhance_atome.md +1 -1
  7. data/documentation/installation/atome_server.md +1 -66
  8. data/documentation/tutorials/tutorials.md +0 -7
  9. data/exe/atome +157 -819
  10. data/lib/atome/atome_native_extensions.rb +3 -0
  11. data/lib/atome/extensions/geolocation.rb +1 -1
  12. data/lib/atome/extensions/ping.rb +11 -10
  13. data/lib/atome/extensions/sha.rb +6 -8
  14. data/lib/atome/kernel/atome_genesis.rb +93 -0
  15. data/lib/atome/kernel/generators/shapes.rb +7 -0
  16. data/lib/atome/kernel/properties/geometry.rb +120 -0
  17. data/lib/atome/kernel/universe.rb +24 -295
  18. data/lib/atome/renderers/headless/headless.rb +0 -0
  19. data/lib/atome/renderers/headless/properties/generator.rb +0 -0
  20. data/lib/atome/renderers/opal/atome_opal_extensions.rb +4 -0
  21. data/lib/{platform_specific → atome/renderers}/opal/extensions/geolocation.rb +1 -1
  22. data/lib/atome/renderers/opal/extensions/ping.rb +13 -0
  23. data/lib/atome/renderers/opal/extensions/sha.rb +11 -0
  24. data/lib/atome/renderers/opal/opal_browser.rb +8 -0
  25. data/lib/{platform_specific → atome/renderers}/opal/opal_parser.rb +0 -1
  26. data/lib/atome/renderers/opal/properties/generator.rb +6 -0
  27. data/lib/atome/renderers/server/server.rb +0 -0
  28. data/lib/atome/version.rb +1 -2
  29. data/lib/atome.rb +16 -35
  30. data/sig/atome.rbs +0 -75
  31. data/vendor/assets/Guardfile +4 -0
  32. data/vendor/assets/Rakefile +2 -12
  33. data/vendor/assets/application/index.rb +2 -7
  34. data/vendor/assets/build/css/style.css +53 -0
  35. data/vendor/assets/build/index.html +24 -0
  36. data/vendor/assets/build/js/application.js +0 -0
  37. data/vendor/assets/build/js/third_parties/interact.min.js +4 -0
  38. data/vendor/assets/build/js/third_parties/popmotion.min.js +1 -0
  39. data/vendor/assets/examples/misc.rb +219 -0
  40. data/vendor/assets/examples/ping.rb +3 -0
  41. data/vendor/assets/examples/storage.rb +9 -0
  42. data/vendor/assets/examples/view_example.rb +21 -0
  43. data/vendor/assets/server/atome_server.rb +96 -33
  44. data/vendor/assets/server/config.ru +3 -8
  45. metadata +69 -512
  46. data/CHANGELOG.md +0 -21
  47. data/atome.gemspec +0 -100
  48. data/documentation/basic.md +0 -241
  49. data/documentation/deep learning/architecture.txt +0 -3763
  50. data/documentation/deep learning/atome.png +0 -0
  51. data/documentation/deep learning/basic_infos.txt +0 -289
  52. data/documentation/deep learning/example_of_users_code.rb +0 -1810
  53. data/documentation/deep learning/misc.txt +0 -24
  54. data/documentation/deep learning/ruby_js_example.rb +0 -272
  55. data/documentation/deep learning/wasm_script_help.text +0 -14
  56. data/documentation/installation/buiding_atome.md +0 -307
  57. data/lib/atome/atome.rb +0 -131
  58. data/lib/atome/extensions/atome.rb +0 -705
  59. data/lib/atome/extensions/mathematics.rb +0 -20
  60. data/lib/atome/genesis/atomes.rb +0 -109
  61. data/lib/atome/genesis/genesis.rb +0 -272
  62. data/lib/atome/genesis/particles/atome.rb +0 -4
  63. data/lib/atome/genesis/particles/communication.rb +0 -43
  64. data/lib/atome/genesis/particles/effect.rb +0 -14
  65. data/lib/atome/genesis/particles/event.rb +0 -344
  66. data/lib/atome/genesis/particles/geometry.rb +0 -31
  67. data/lib/atome/genesis/particles/hierarchy.rb +0 -105
  68. data/lib/atome/genesis/particles/identity.rb +0 -82
  69. data/lib/atome/genesis/particles/material.rb +0 -119
  70. data/lib/atome/genesis/particles/property.rb +0 -147
  71. data/lib/atome/genesis/particles/security.rb +0 -77
  72. data/lib/atome/genesis/particles/spatial.rb +0 -98
  73. data/lib/atome/genesis/particles/time.rb +0 -4
  74. data/lib/atome/genesis/particles/utility.rb +0 -261
  75. data/lib/atome/genesis/presets.rb +0 -10
  76. data/lib/atome/genesis/sparkle.rb +0 -217
  77. data/lib/atome/kernel/black_matter.rb +0 -22
  78. data/lib/atome/presets/atome.rb +0 -79
  79. data/lib/atome/utilities/color_helper/color/cmyk.rb +0 -263
  80. data/lib/atome/utilities/color_helper/color/css.rb +0 -7
  81. data/lib/atome/utilities/color_helper/color/grayscale.rb +0 -197
  82. data/lib/atome/utilities/color_helper/color/hsl.rb +0 -240
  83. data/lib/atome/utilities/color_helper/color/palette/adobecolor.rb +0 -260
  84. data/lib/atome/utilities/color_helper/color/palette/gimp.rb +0 -104
  85. data/lib/atome/utilities/color_helper/color/palette/monocontrast.rb +0 -164
  86. data/lib/atome/utilities/color_helper/color/palette.rb +0 -4
  87. data/lib/atome/utilities/color_helper/color/rgb/colors.rb +0 -167
  88. data/lib/atome/utilities/color_helper/color/rgb/contrast.rb +0 -57
  89. data/lib/atome/utilities/color_helper/color/rgb/metallic.rb +0 -28
  90. data/lib/atome/utilities/color_helper/color/rgb.rb +0 -715
  91. data/lib/atome/utilities/color_helper/color/yiq.rb +0 -62
  92. data/lib/atome/utilities/color_helper/color.rb +0 -415
  93. data/lib/atome/utilities/essentials.rb +0 -70
  94. data/lib/atome/utilities/sanitizer.rb +0 -13
  95. data/lib/atome/utilities/security.rb +0 -71
  96. data/lib/atome/utilities/utilities.rb +0 -656
  97. data/lib/atome_relative.rb +0 -39
  98. data/lib/molecules/_deprecated_examples/site.rb +0 -34
  99. data/lib/molecules/init.rb +0 -31
  100. data/lib/molecules/intuition/_deprecated_inputs.rb +0 -111
  101. data/lib/molecules/intuition/_deprecated_toolbox.rb +0 -282
  102. data/lib/molecules/intuition/utillities.rb +0 -408
  103. data/lib/platform_specific/opal/atome_opal_extensions.rb +0 -11
  104. data/lib/platform_specific/opal/extensions/color.rb +0 -30
  105. data/lib/platform_specific/opal/extensions/js.rb +0 -20
  106. data/lib/platform_specific/opal/extensions/object.rb +0 -6
  107. data/lib/platform_specific/opal/extensions/ping.rb +0 -31
  108. data/lib/platform_specific/opal/extensions/sha.rb +0 -25
  109. data/lib/platform_specific/opal/opal.rb +0 -5
  110. data/lib/platform_specific/wasm/atome_wasm_extensions.rb +0 -11
  111. data/lib/renderers/headless/headless.rb +0 -18
  112. data/lib/renderers/headless/index.rb +0 -6
  113. data/lib/renderers/headless/index_relative.rb +0 -6
  114. data/lib/renderers/headless/utility.rb +0 -6
  115. data/lib/renderers/html/atome.rb +0 -2
  116. data/lib/renderers/html/atome_html.rb +0 -22
  117. data/lib/renderers/html/communication.rb +0 -3
  118. data/lib/renderers/html/effect.rb +0 -51
  119. data/lib/renderers/html/event.rb +0 -59
  120. data/lib/renderers/html/geometry.rb +0 -49
  121. data/lib/renderers/html/hierarchy.rb +0 -248
  122. data/lib/renderers/html/html.rb +0 -1688
  123. data/lib/renderers/html/identity.rb +0 -104
  124. data/lib/renderers/html/index.rb +0 -19
  125. data/lib/renderers/html/index_relative.rb +0 -20
  126. data/lib/renderers/html/material.rb +0 -88
  127. data/lib/renderers/html/property.rb +0 -52
  128. data/lib/renderers/html/security.rb +0 -1
  129. data/lib/renderers/html/spatial.rb +0 -75
  130. data/lib/renderers/html/time.rb +0 -1
  131. data/lib/renderers/html/utility.rb +0 -170
  132. data/lib/renderers/renderer.rb +0 -16
  133. data/lib/renderers/server/index.rb +0 -4
  134. data/lib/renderers/server/index_relative.rb +0 -4
  135. data/lib/renderers/server/utility.rb +0 -4
  136. data/sig/atome_js.rbs +0 -1
  137. data/sig/batch.rbs +0 -7
  138. data/sig/browser_helper.rbs +0 -14
  139. data/sig/essentials.rbs +0 -11
  140. data/sig/genesis.rbs +0 -3
  141. data/sig/global_variables.rbs +0 -1
  142. data/sig/matrix.rbs +0 -5
  143. data/sig/object.rbs +0 -7
  144. data/sig/universe.rbs +0 -3
  145. data/src/utilities/host_mode.rb +0 -5
  146. data/vendor/assets/application/examples/affect.rb +0 -8
  147. data/vendor/assets/application/examples/aid.rb +0 -10
  148. data/vendor/assets/application/examples/allow_copy.rb +0 -13
  149. data/vendor/assets/application/examples/allow_system_right_click.rb +0 -16
  150. data/vendor/assets/application/examples/alternate.rb +0 -36
  151. data/vendor/assets/application/examples/animation.rb +0 -91
  152. data/vendor/assets/application/examples/apply.rb +0 -8
  153. data/vendor/assets/application/examples/atome.rb +0 -5
  154. data/vendor/assets/application/examples/atome_particle_validation.rb +0 -7
  155. data/vendor/assets/application/examples/atome_sparkle_use.rb +0 -6
  156. data/vendor/assets/application/examples/atomizer.rb +0 -86
  157. data/vendor/assets/application/examples/attach.rb +0 -34
  158. data/vendor/assets/application/examples/attached.rb +0 -45
  159. data/vendor/assets/application/examples/b64_to_image.rb +0 -9
  160. data/vendor/assets/application/examples/basic_understanding.rb +0 -54
  161. data/vendor/assets/application/examples/behavior.rb +0 -32
  162. data/vendor/assets/application/examples/blur.rb +0 -26
  163. data/vendor/assets/application/examples/border.rb +0 -75
  164. data/vendor/assets/application/examples/browse.rb +0 -17
  165. data/vendor/assets/application/examples/categories.rb +0 -5
  166. data/vendor/assets/application/examples/category.rb +0 -16
  167. data/vendor/assets/application/examples/center.rb +0 -7
  168. data/vendor/assets/application/examples/clear.rb +0 -96
  169. data/vendor/assets/application/examples/clones&monitoring.rb +0 -105
  170. data/vendor/assets/application/examples/code.rb +0 -13
  171. data/vendor/assets/application/examples/color.rb +0 -54
  172. data/vendor/assets/application/examples/compute.rb +0 -16
  173. data/vendor/assets/application/examples/console.rb +0 -4
  174. data/vendor/assets/application/examples/convert.rb +0 -163
  175. data/vendor/assets/application/examples/copy.rb +0 -25
  176. data/vendor/assets/application/examples/copybck.rb +0 -68
  177. data/vendor/assets/application/examples/css.rb +0 -6
  178. data/vendor/assets/application/examples/database_handling.rb +0 -39
  179. data/vendor/assets/application/examples/debug.rb +0 -78
  180. data/vendor/assets/application/examples/delete.rb +0 -105
  181. data/vendor/assets/application/examples/dig.rb +0 -13
  182. data/vendor/assets/application/examples/display.rb +0 -279
  183. data/vendor/assets/application/examples/display_bck.rb +0 -164
  184. data/vendor/assets/application/examples/drag.rb +0 -54
  185. data/vendor/assets/application/examples/drop.rb +0 -35
  186. data/vendor/assets/application/examples/duplicate.rb +0 -70
  187. data/vendor/assets/application/examples/edit.rb +0 -24
  188. data/vendor/assets/application/examples/encode.rb +0 -6
  189. data/vendor/assets/application/examples/encrypt.rb +0 -6
  190. data/vendor/assets/application/examples/example.rb +0 -27
  191. data/vendor/assets/application/examples/executor.rb +0 -36
  192. data/vendor/assets/application/examples/file.rb +0 -16
  193. data/vendor/assets/application/examples/fill.rb +0 -23
  194. data/vendor/assets/application/examples/find.rb +0 -158
  195. data/vendor/assets/application/examples/fit.rb +0 -26
  196. data/vendor/assets/application/examples/fonts.rb +0 -15
  197. data/vendor/assets/application/examples/generator_and_build.rb +0 -15
  198. data/vendor/assets/application/examples/getter.rb +0 -16
  199. data/vendor/assets/application/examples/grab.rb +0 -14
  200. data/vendor/assets/application/examples/gradient.rb +0 -40
  201. data/vendor/assets/application/examples/group.rb +0 -44
  202. data/vendor/assets/application/examples/help.rb +0 -17
  203. data/vendor/assets/application/examples/hierarchy.rb +0 -21
  204. data/vendor/assets/application/examples/history.rb +0 -32
  205. data/vendor/assets/application/examples/holder.rb +0 -62
  206. data/vendor/assets/application/examples/hypertext.rb +0 -113
  207. data/vendor/assets/application/examples/image.rb +0 -5
  208. data/vendor/assets/application/examples/import.rb +0 -33
  209. data/vendor/assets/application/examples/increment.rb +0 -23
  210. data/vendor/assets/application/examples/infos.rb +0 -10
  211. data/vendor/assets/application/examples/input.rb +0 -34
  212. data/vendor/assets/application/examples/int8.rb +0 -17
  213. data/vendor/assets/application/examples/js&ruby.rb +0 -18
  214. data/vendor/assets/application/examples/keyboard.rb +0 -59
  215. data/vendor/assets/application/examples/layout.rb +0 -38
  216. data/vendor/assets/application/examples/list.rb +0 -72
  217. data/vendor/assets/application/examples/localstorage.rb +0 -19
  218. data/vendor/assets/application/examples/login.rb +0 -84
  219. data/vendor/assets/application/examples/markup.rb +0 -4
  220. data/vendor/assets/application/examples/match.rb +0 -115
  221. data/vendor/assets/application/examples/matrix.rb +0 -118
  222. data/vendor/assets/application/examples/monitor.rb +0 -14
  223. data/vendor/assets/application/examples/on_resize.rb +0 -7
  224. data/vendor/assets/application/examples/on_the_fly_ruby_code_loading.rb +0 -9
  225. data/vendor/assets/application/examples/online.rb +0 -3
  226. data/vendor/assets/application/examples/opacity.rb +0 -9
  227. data/vendor/assets/application/examples/over.rb +0 -29
  228. data/vendor/assets/application/examples/paint.rb +0 -29
  229. data/vendor/assets/application/examples/particles.rb +0 -4
  230. data/vendor/assets/application/examples/percent_to_px.rb +0 -4
  231. data/vendor/assets/application/examples/play.rb +0 -50
  232. data/vendor/assets/application/examples/preset.rb +0 -33
  233. data/vendor/assets/application/examples/random.rb +0 -42
  234. data/vendor/assets/application/examples/raw_html.rb +0 -48
  235. data/vendor/assets/application/examples/read.rb +0 -13
  236. data/vendor/assets/application/examples/recorder.rb +0 -74
  237. data/vendor/assets/application/examples/refresh.rb +0 -62
  238. data/vendor/assets/application/examples/remove.rb +0 -60
  239. data/vendor/assets/application/examples/repeat.rb +0 -26
  240. data/vendor/assets/application/examples/resize.rb +0 -17
  241. data/vendor/assets/application/examples/scroll.rb +0 -11
  242. data/vendor/assets/application/examples/security.rb +0 -76
  243. data/vendor/assets/application/examples/select_text.rb +0 -18
  244. data/vendor/assets/application/examples/selected.rb +0 -35
  245. data/vendor/assets/application/examples/server.rb +0 -24
  246. data/vendor/assets/application/examples/shadow.rb +0 -60
  247. data/vendor/assets/application/examples/shapes.rb +0 -6
  248. data/vendor/assets/application/examples/shortcut.rb +0 -25
  249. data/vendor/assets/application/examples/site.rb +0 -41
  250. data/vendor/assets/application/examples/size.rb +0 -17
  251. data/vendor/assets/application/examples/sliders.rb +0 -17
  252. data/vendor/assets/application/examples/smooth.rb +0 -9
  253. data/vendor/assets/application/examples/style.rb +0 -4
  254. data/vendor/assets/application/examples/sub_atome_manipulation.rb +0 -20
  255. data/vendor/assets/application/examples/svg_img_to_vector.rb +0 -6
  256. data/vendor/assets/application/examples/svg_vectorizer.rb +0 -21
  257. data/vendor/assets/application/examples/sync.rb +0 -38
  258. data/vendor/assets/application/examples/table.rb +0 -76
  259. data/vendor/assets/application/examples/tagged.rb +0 -24
  260. data/vendor/assets/application/examples/terminal.rb +0 -4
  261. data/vendor/assets/application/examples/test.rb +0 -584
  262. data/vendor/assets/application/examples/text.rb +0 -5
  263. data/vendor/assets/application/examples/tick.rb +0 -29
  264. data/vendor/assets/application/examples/tools.rb +0 -666
  265. data/vendor/assets/application/examples/touch.rb +0 -41
  266. data/vendor/assets/application/examples/type_mutation.rb +0 -18
  267. data/vendor/assets/application/examples/unit.rb +0 -14
  268. data/vendor/assets/application/examples/universe.rb +0 -8
  269. data/vendor/assets/application/examples/vector.rb +0 -37
  270. data/vendor/assets/application/examples/video.rb +0 -14
  271. data/vendor/assets/application/examples/wait.rb +0 -6
  272. data/vendor/assets/application/examples/www.rb +0 -10
  273. data/vendor/assets/server/atome_server_wasm.rb +0 -54
  274. data/vendor/assets/server/capture.rb +0 -10
  275. data/vendor/assets/server/database.rb +0 -63
  276. data/vendor/assets/server/eDen.rb +0 -302
  277. data/vendor/assets/server/extensions.rb +0 -13
  278. data/vendor/assets/src/css/style.css +0 -167
  279. data/vendor/assets/src/index.html +0 -45
  280. data/vendor/assets/src/index_opal.html +0 -40
  281. data/vendor/assets/src/index_server.html +0 -38
  282. data/vendor/assets/src/index_server_wasm.html +0 -45
  283. data/vendor/assets/src/index_wasm.html +0 -50
  284. data/vendor/assets/src/js/atome/atome.js +0 -506
  285. data/vendor/assets/src/js/atome/atome_helpers/add_font.js +0 -46
  286. data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +0 -65
  287. data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +0 -124
  288. data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +0 -12
  289. data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +0 -171
  290. data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +0 -43
  291. data/vendor/assets/src/js/atome/atome_helpers/atome_sort.js +0 -20
  292. data/vendor/assets/src/js/atome/atome_helpers/atome_time.js +0 -10
  293. data/vendor/assets/src/js/atome/atome_helpers/atome_video.js +0 -12
  294. data/vendor/assets/src/js/atome/atome_helpers/communication.js +0 -35
  295. data/vendor/assets/src/js/atome/atome_helpers/file.js +0 -12
  296. data/vendor/assets/src/js/atome/specific/opal.js +0 -111
  297. data/vendor/assets/src/js/atome/specific/wasm.js +0 -123
  298. data/vendor/assets/src/js/molecules/web.js +0 -4
  299. data/vendor/assets/src/js/third_parties/browser.script.iife.min.js +0 -13
  300. data/vendor/assets/src/js/third_parties/fabric.min.js +0 -1
  301. data/vendor/assets/src/js/third_parties/html-to-image.min.js +0 -2
  302. data/vendor/assets/src/js/third_parties/interact.min.js +0 -3
  303. data/vendor/assets/src/js/third_parties/jsencrypt.min.js +0 -2
  304. data/vendor/assets/src/js/third_parties/papaparse.min.js +0 -7
  305. data/vendor/assets/src/js/third_parties/popmotion.min.js +0 -1
  306. data/vendor/assets/src/js/third_parties/sortable.min.js +0 -2
  307. data/vendor/assets/src/js/third_parties/three.min.js +0 -6
  308. data/vendor/assets/src/js/third_parties/w3color.js +0 -646
  309. data/vendor/assets/src/js/third_parties/wad.min.js +0 -9
  310. data/vendor/assets/src/js/third_parties/zim.min.js +0 -1
  311. data/vendor/assets/src/medias/audios/audio_missing.wav +0 -0
  312. data/vendor/assets/src/medias/audios/clap.wav +0 -0
  313. data/vendor/assets/src/medias/audios/cowbell.wav +0 -0
  314. data/vendor/assets/src/medias/audios/hihat.wav +0 -0
  315. data/vendor/assets/src/medias/audios/kick.wav +0 -0
  316. data/vendor/assets/src/medias/audios/riff.m4a +0 -0
  317. data/vendor/assets/src/medias/audios/snare.wav +0 -0
  318. data/vendor/assets/src/medias/audios/tom.wav +0 -0
  319. data/vendor/assets/src/medias/fonts/Roboto/LICENSE.txt +0 -202
  320. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Black.ttf +0 -0
  321. data/vendor/assets/src/medias/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  322. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Bold.ttf +0 -0
  323. data/vendor/assets/src/medias/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  324. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Italic.ttf +0 -0
  325. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Light.ttf +0 -0
  326. data/vendor/assets/src/medias/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  327. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Medium.ttf +0 -0
  328. data/vendor/assets/src/medias/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  329. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Regular.ttf +0 -0
  330. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Thin.ttf +0 -0
  331. data/vendor/assets/src/medias/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  332. data/vendor/assets/src/medias/fonts/Roboto_Slab/LICENSE.txt +0 -202
  333. data/vendor/assets/src/medias/fonts/Roboto_Slab/README.txt +0 -71
  334. data/vendor/assets/src/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
  335. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
  336. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
  337. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
  338. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
  339. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
  340. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
  341. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
  342. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
  343. data/vendor/assets/src/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
  344. data/vendor/assets/src/medias/images/atome.svg +0 -12
  345. data/vendor/assets/src/medias/images/ballanim.png +0 -0
  346. data/vendor/assets/src/medias/images/blank.png +0 -0
  347. data/vendor/assets/src/medias/images/green_planet.png +0 -0
  348. data/vendor/assets/src/medias/images/icons/Lowpass.svg +0 -8
  349. data/vendor/assets/src/medias/images/icons/activate.svg +0 -3
  350. data/vendor/assets/src/medias/images/icons/audio.svg +0 -7
  351. data/vendor/assets/src/medias/images/icons/band_pass.svg +0 -8
  352. data/vendor/assets/src/medias/images/icons/clear.svg +0 -5
  353. data/vendor/assets/src/medias/images/icons/color.svg +0 -5
  354. data/vendor/assets/src/medias/images/icons/copy.svg +0 -8
  355. data/vendor/assets/src/medias/images/icons/create.svg +0 -3
  356. data/vendor/assets/src/medias/images/icons/delete.svg +0 -8
  357. data/vendor/assets/src/medias/images/icons/edit-.svg +0 -4
  358. data/vendor/assets/src/medias/images/icons/edit.svg +0 -4
  359. data/vendor/assets/src/medias/images/icons/edition.svg +0 -4
  360. data/vendor/assets/src/medias/images/icons/email.svg +0 -13
  361. data/vendor/assets/src/medias/images/icons/equalizer-.svg +0 -5
  362. data/vendor/assets/src/medias/images/icons/equalizer.svg +0 -5
  363. data/vendor/assets/src/medias/images/icons/filter.svg +0 -4
  364. data/vendor/assets/src/medias/images/icons/folder.svg +0 -4
  365. data/vendor/assets/src/medias/images/icons/group.svg +0 -6
  366. data/vendor/assets/src/medias/images/icons/hamburger.svg +0 -8
  367. data/vendor/assets/src/medias/images/icons/high_pass.svg +0 -5
  368. data/vendor/assets/src/medias/images/icons/link.svg +0 -4
  369. data/vendor/assets/src/medias/images/icons/load.svg +0 -4
  370. data/vendor/assets/src/medias/images/icons/low_pass.svg +0 -5
  371. data/vendor/assets/src/medias/images/icons/mail_gray.svg +0 -6
  372. data/vendor/assets/src/medias/images/icons/mail_green.svg +0 -6
  373. data/vendor/assets/src/medias/images/icons/mail_orange.svg +0 -6
  374. data/vendor/assets/src/medias/images/icons/microphone.svg +0 -7
  375. data/vendor/assets/src/medias/images/icons/midi_in.svg +0 -4
  376. data/vendor/assets/src/medias/images/icons/midi_out.svg +0 -4
  377. data/vendor/assets/src/medias/images/icons/modules.svg +0 -11
  378. data/vendor/assets/src/medias/images/icons/paste.svg +0 -4
  379. data/vendor/assets/src/medias/images/icons/pause.svg +0 -5
  380. data/vendor/assets/src/medias/images/icons/play.svg +0 -7
  381. data/vendor/assets/src/medias/images/icons/record.svg +0 -4
  382. data/vendor/assets/src/medias/images/icons/save.svg +0 -5
  383. data/vendor/assets/src/medias/images/icons/select--.svg +0 -4
  384. data/vendor/assets/src/medias/images/icons/select-.svg +0 -5
  385. data/vendor/assets/src/medias/images/icons/select-all.svg +0 -4
  386. data/vendor/assets/src/medias/images/icons/select.svg +0 -4
  387. data/vendor/assets/src/medias/images/icons/settings.svg +0 -5
  388. data/vendor/assets/src/medias/images/icons/settings0.svg +0 -2
  389. data/vendor/assets/src/medias/images/icons/settings1.svg +0 -17
  390. data/vendor/assets/src/medias/images/icons/settings2.svg +0 -25
  391. data/vendor/assets/src/medias/images/icons/settings_old.svg +0 -6
  392. data/vendor/assets/src/medias/images/icons/shape.svg +0 -7
  393. data/vendor/assets/src/medias/images/icons/speaker.svg +0 -6
  394. data/vendor/assets/src/medias/images/icons/stop.svg +0 -4
  395. data/vendor/assets/src/medias/images/icons/tool.svg +0 -7
  396. data/vendor/assets/src/medias/images/icons/tools.svg +0 -9
  397. data/vendor/assets/src/medias/images/icons/undo.svg +0 -4
  398. data/vendor/assets/src/medias/images/icons/undo2.svg +0 -4
  399. data/vendor/assets/src/medias/images/icons/validate.svg +0 -9
  400. data/vendor/assets/src/medias/images/icons/vie.svg +0 -3
  401. data/vendor/assets/src/medias/images/icons/wave-saw.svg +0 -3
  402. data/vendor/assets/src/medias/images/icons/wave-sine.svg +0 -3
  403. data/vendor/assets/src/medias/images/icons/wave-square-.svg +0 -4
  404. data/vendor/assets/src/medias/images/icons/wave-square.svg +0 -3
  405. data/vendor/assets/src/medias/images/icons/wave-triangle.svg +0 -3
  406. data/vendor/assets/src/medias/images/icons/waveform-.svg +0 -4
  407. data/vendor/assets/src/medias/images/icons/waveform.svg +0 -7
  408. data/vendor/assets/src/medias/images/logos/Facebook.svg +0 -8
  409. data/vendor/assets/src/medias/images/logos/GitHub Black.svg +0 -7
  410. data/vendor/assets/src/medias/images/logos/GitHub.svg +0 -7
  411. data/vendor/assets/src/medias/images/logos/LinkedIn-full.svg +0 -109
  412. data/vendor/assets/src/medias/images/logos/LinkedIn.svg +0 -11
  413. data/vendor/assets/src/medias/images/logos/Orange/Facebook.svg +0 -8
  414. data/vendor/assets/src/medias/images/logos/Orange/TikTok.svg +0 -11
  415. data/vendor/assets/src/medias/images/logos/Orange/Twitter.svg +0 -8
  416. data/vendor/assets/src/medias/images/logos/Orange/instagram.svg +0 -8
  417. data/vendor/assets/src/medias/images/logos/Orange/vimeo.svg +0 -8
  418. data/vendor/assets/src/medias/images/logos/Orange/youtube.svg +0 -7
  419. data/vendor/assets/src/medias/images/logos/TikTok.svg +0 -11
  420. data/vendor/assets/src/medias/images/logos/Twitter.svg +0 -35
  421. data/vendor/assets/src/medias/images/logos/X.svg +0 -5
  422. data/vendor/assets/src/medias/images/logos/YouTube.svg +0 -1
  423. data/vendor/assets/src/medias/images/logos/apple.svg +0 -4
  424. data/vendor/assets/src/medias/images/logos/atome.svg +0 -12
  425. data/vendor/assets/src/medias/images/logos/freebsd.png +0 -0
  426. data/vendor/assets/src/medias/images/logos/freebsd.svg +0 -8
  427. data/vendor/assets/src/medias/images/logos/gray/Facebook.svg +0 -8
  428. data/vendor/assets/src/medias/images/logos/gray/TikTok.svg +0 -11
  429. data/vendor/assets/src/medias/images/logos/gray/Twitter.svg +0 -8
  430. data/vendor/assets/src/medias/images/logos/gray/instagram.svg +0 -8
  431. data/vendor/assets/src/medias/images/logos/gray/vimeo.svg +0 -8
  432. data/vendor/assets/src/medias/images/logos/gray/youtube.svg +0 -7
  433. data/vendor/assets/src/medias/images/logos/gray/youtube2.svg +0 -13
  434. data/vendor/assets/src/medias/images/logos/instagram.svg +0 -6
  435. data/vendor/assets/src/medias/images/logos/tiktok_back.svg +0 -1
  436. data/vendor/assets/src/medias/images/logos/vimeo.svg +0 -17
  437. data/vendor/assets/src/medias/images/noise.svg +0 -17
  438. data/vendor/assets/src/medias/images/red_planet.png +0 -0
  439. data/vendor/assets/src/medias/images/tile.png +0 -0
  440. data/vendor/assets/src/medias/texts/lorem.txt +0 -1
  441. data/vendor/assets/src/medias/utils/infos/color.rb +0 -29
  442. data/vendor/assets/src/medias/utils/infos/width.rb +0 -25
  443. data/vendor/assets/src/medias/videos/video_missing.mp4 +0 -0
  444. data/vendor/assets/src-tauri/.gitignore +0 -4
  445. data/vendor/assets/src-tauri/Cargo.toml +0 -27
  446. data/vendor/assets/src-tauri/build.rs +0 -3
  447. data/vendor/assets/src-tauri/icons/128x128.png +0 -0
  448. data/vendor/assets/src-tauri/icons/128x128@2x.png +0 -0
  449. data/vendor/assets/src-tauri/icons/32x32.png +0 -0
  450. data/vendor/assets/src-tauri/icons/Square107x107Logo.png +0 -0
  451. data/vendor/assets/src-tauri/icons/Square142x142Logo.png +0 -0
  452. data/vendor/assets/src-tauri/icons/Square150x150Logo.png +0 -0
  453. data/vendor/assets/src-tauri/icons/Square284x284Logo.png +0 -0
  454. data/vendor/assets/src-tauri/icons/Square30x30Logo.png +0 -0
  455. data/vendor/assets/src-tauri/icons/Square310x310Logo.png +0 -0
  456. data/vendor/assets/src-tauri/icons/Square44x44Logo.png +0 -0
  457. data/vendor/assets/src-tauri/icons/Square71x71Logo.png +0 -0
  458. data/vendor/assets/src-tauri/icons/Square89x89Logo.png +0 -0
  459. data/vendor/assets/src-tauri/icons/StoreLogo.png +0 -0
  460. data/vendor/assets/src-tauri/icons/icon.icns +0 -0
  461. data/vendor/assets/src-tauri/icons/icon.ico +0 -0
  462. data/vendor/assets/src-tauri/icons/icon.png +0 -0
  463. data/vendor/assets/src-tauri/src/main.rs +0 -71
  464. data/vendor/assets/src-tauri/tauri.conf.json +0 -70
  465. data/vendor/assets/src-wasm/wasm/wasi-vfs-osx_arm +0 -0
  466. data/vendor/assets/src-wasm/wasm/wasi-vfs-osx_x86 +0 -0
  467. data/vendor/assets/src-wasm/wasm/wasi-vfs-unix +0 -0
  468. data/vendor/assets/src-wasm/wasm/wasi-vfs.exe +0 -0
  469. /data/vendor/assets/{src → build}/favicon.ico +0 -0
  470. /data/vendor/assets/{src/js/third_parties → build/js}/ping.min.js +0 -0
  471. /data/vendor/assets/{src → build}/js/third_parties/interact.min.js.map +0 -0
  472. /data/vendor/assets/{src → build}/js/third_parties/sha256.min.js +0 -0
@@ -1,656 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # toolbox method here
4
- require 'json'
5
-
6
- class Atome
7
- class << self
8
- attr_accessor :initialized
9
-
10
- def sanitize_data_for_json(data)
11
- data = data.gsub('"', '\\"')
12
- # case data
13
- # when String
14
- # data.gsub('"', '\\"')
15
- # when Hash
16
- # data.transform_values { |value| sanitize_data(value) }
17
- # when Array
18
- # data.map { |value| sanitize_data(value) }
19
- # else
20
- # data
21
- # end
22
- data
23
- end
24
-
25
- def send_localstorage_content
26
- storage = JS.global[:localStorage]
27
- storage_array = storage.to_a
28
- storage_array.each_with_index do |_i, index|
29
- key = JS.global[:localStorage].key(index)
30
- sanitize_data_for_json(storage.getItem(key))
31
- end
32
- end
33
-
34
- def server_receiver(params)
35
- callback_found = Universe.messages[params[:message_id]]
36
- callback_found.call(params) if callback_found.is_a? Proc
37
- end
38
-
39
- def file_handler(parent, content, bloc)
40
- grab(parent).instance_exec(content, &bloc)
41
- end
42
-
43
- def controller_sender(message)
44
- return if $host == :html
45
-
46
- json_msg = message.to_json
47
- js_json_msg = json_msg.inspect
48
- js_command = "atomeJS.controller_sender(#{js_json_msg})"
49
- JS.eval(js_command)
50
- end
51
-
52
- # atome builder
53
- def preset_builder(preset_name, &bloc)
54
- # Important : previously def box , def circle
55
- Universe.atome_preset << preset_name
56
- Object.define_method preset_name do |params = {}, &proc|
57
- grab(:view).send(preset_name, params, &proc)
58
- end
59
- define_method preset_name do |params|
60
- preset_to_add = instance_exec(params, &bloc) if bloc.is_a? Proc
61
- if Essentials.default_params[preset_name]
62
- Essentials.default_params[preset_name].merge(preset_to_add) if preset_to_add
63
- else
64
- Essentials.default_params[preset_name] = preset_to_add if preset_to_add
65
- end
66
- params = atome_common(preset_name, params)
67
- preset_common(params, &bloc)
68
- end
69
-
70
- end
71
-
72
- # monitoring system
73
- def monitoring(atomes_to_monitor, particles_to_monitor, &bloc)
74
- atomes_to_monitor.each do |atome_to_monitor|
75
- particles_to_monitor.each do |monitored_particle|
76
- # Store original method
77
- original_method = atome_to_monitor.method(monitored_particle)
78
-
79
- # redefine method
80
- atome_to_monitor.define_singleton_method(monitored_particle) do |*args, &proc|
81
-
82
- # Monitor before calling original method
83
- value_before = atome_to_monitor.instance_variable_get("@#{monitored_particle}")
84
- if args.empty?
85
- args = nil
86
- else
87
- if monitored_particle == :touch
88
- instance_variable_set("@#{monitored_particle}", { tap: args[0] })
89
- instance_variable_set("@#{monitored_particle}_code", { touch: proc })
90
-
91
- args = { tap: args[0] }
92
- else
93
- instance_variable_set("@#{monitored_particle}", args[0])
94
- end
95
- args = args[0]
96
- end
97
- instance_exec({ original: value_before, altered: args, particle: monitored_particle }, &bloc) if bloc.is_a?(Proc)
98
- original_method.call(*args)
99
- end
100
- end
101
- end
102
- end
103
-
104
- def controller_listener
105
- return if $host == :html
106
- atome_js.JS.controller_listener() # js folder atome/helipers/atome/communication
107
- end
108
-
109
- def handleSVGContent(svg_content, target)
110
- puts svg_content
111
- atome_content = A.vectorizer(svg_content)
112
- target_vector = grab(target)
113
- target_vector.data(atome_content)
114
- end
115
-
116
-
117
-
118
- end
119
-
120
- @initialized = {}
121
-
122
- def help(particle, &doc)
123
- if doc
124
- Universe.set_help(particle, &doc)
125
- else
126
- doc_found = Universe.get_help(particle)
127
- instance_exec(&doc_found) if doc_found.is_a?(Proc)
128
- end
129
- end
130
-
131
- def example(particle, &example)
132
- if example
133
- Universe.set_example(particle, &example)
134
- else
135
- example_found = Universe.get_example(particle)
136
- instance_exec(&example_found) if example_found.is_a?(Proc)
137
- end
138
- end
139
-
140
- # local server messaging
141
- def file_for_opal(parent, bloc)
142
- JS.eval("fileForOpal('#{parent}', #{bloc})")
143
- end
144
-
145
- def response_listener(hashed_msg)
146
- js_action = hashed_msg.JS[:action]
147
- js_body = hashed_msg.JS[:body]
148
- send(js_action, js_body)
149
- end
150
-
151
- def collapse(new_atome)
152
- initialized_procs = []
153
- initialized = Atome.initialized
154
-
155
- new_atome.each do |element, value|
156
- send(element, value)
157
- initialized_proc = initialized[element]
158
- initialized_procs << { value => initialized_proc } if initialized_proc.is_a?(Proc)
159
- end
160
-
161
- initialized_procs.each do |value|
162
- value.each do |val, proc|
163
- instance_exec(val, &proc)
164
- end
165
- end
166
-
167
- end
168
- def add_text_visual(params)
169
- html.add_font_to_css(params)
170
- end
171
- def particle_main(element, params, &user_proc)
172
- # TODO : optimise below removing all conditions if possible
173
- if Atome.instance_variable_get("@main_#{element}").is_a?(Proc) # post is before rendering and broadcasting
174
- result = instance_exec(params, user_proc, self, &Atome.instance_variable_get("@main_#{element}"))
175
- params = result if result && !result.instance_of?(Atome)
176
- end
177
- params
178
- end
179
-
180
- def particle_read(element, params, &user_proc)
181
- if Atome.instance_variable_get("@read_#{element}").is_a?(Proc) # post is before rendering and broadcasting
182
- params = instance_exec(params, user_proc, self, &Atome.instance_variable_get("@read_#{element}"))
183
- end
184
- params
185
- end
186
-
187
- def particle_sanitizer(element, params, &user_proc)
188
-
189
- bloc_found = Universe.get_sanitizer_method(element)
190
- # sanitizer occurs before any treatment
191
- # it's call at the very start when a new atome is created : in genesis.rb /new_atome
192
- # it's also call when creating a new particle in genesis/ new_particle befre creating the particle
193
- # and also before creating additional method in genesis/ additional_particle_methods
194
- params = instance_exec(params, user_proc, &bloc_found) if bloc_found.is_a?(Proc)
195
- params
196
- end
197
-
198
- def particle_pre(element, params, &user_proc)
199
- if Atome.instance_variable_get("@pre_#{element}").is_a?(Proc) # post is before rendering and broadcasting
200
- params = instance_exec(params, user_proc, self, &Atome.instance_variable_get("@pre_#{element}"))
201
- end
202
- params
203
- end
204
-
205
- def particle_post(element, params, &user_proc)
206
- if Atome.instance_variable_get("@post_#{element}").is_a?(Proc) # post is after rendering and broadcasting
207
- params = instance_exec(params, user_proc, self, &Atome.instance_variable_get("@post_#{element}"))
208
- end
209
- params
210
- end
211
-
212
- def particle_after(element, params, &user_proc)
213
- if Atome.instance_variable_get("@after_#{element}").is_a?(Proc) # after is post saving
214
- params = instance_exec(params, user_proc, self, &Atome.instance_variable_get("@after_#{element}"))
215
- end
216
- params
217
- end
218
-
219
- def atome_pre_process(element, params, &user_proc)
220
- if Atome.instance_variable_get("@pre_#{element}").is_a?(Proc)
221
- params = instance_exec(params, self, user_proc, &Atome.instance_variable_get("@pre_#{element}"))
222
- end
223
- params
224
- end
225
-
226
- def atome_sanitizer(element, params, &user_proc)
227
- # Attention: the method is the same as the one used for the particle
228
- particle_sanitizer(element, params)
229
- end
230
-
231
- def atome_post_process(element, params, new_atome, &user_proc)
232
-
233
- return unless Atome.instance_variable_get("@post_#{element}").is_a?(Proc)
234
-
235
- new_atome.instance_exec(params, user_proc, &Atome.instance_variable_get("@post_#{element}"))
236
-
237
- end
238
-
239
- def atome_processor(element, params, &user_proc)
240
- # TODO: replace with the line below but need extensive testing as it crash some demos ex: animation
241
- params = atome_common(element, params)
242
-
243
- atome_pre_process(element, params, &user_proc)
244
-
245
- new_atome = send("set_#{element}", params, &user_proc) # it call Atome.define_method "set_#{element}" in new_atome method
246
- # TODO : check if we don't have a security issue allowing atome modification after creation
247
- # if we have one find another solution the keep this facility
248
- atome_post_process(element, params, new_atome, &user_proc)
249
-
250
- new_atome
251
- end
252
-
253
- # def store(params)
254
- # params.each do |particle_to_save, data|
255
- # # @!atome[particle_to_save]=data
256
- # # instance_variable_set(particle_to_save,data)
257
- # end
258
- #
259
- # end
260
-
261
- # def history(filter = {})
262
- #
263
- # filter[:id] = @id
264
- # Universe.story(filter)
265
- # end
266
-
267
- def history
268
- Universe.story
269
- end
270
-
271
- # def broadcasting(element)
272
- # params = instance_variable_get("@#{element}")
273
- # @broadcast.each_value do |particle_monitored|
274
- # if particle_monitored[:particles].include?(element)
275
- # code_found = particle_monitored[:code]
276
- # instance_exec(self, element, params, &code_found) if code_found.is_a?(Proc)
277
- # end
278
- # end
279
- # end
280
-
281
- def store_proc(element, params = true, &user_proc)
282
- instance_variable_set("@#{element}_code", {}) unless instance_variable_get("@#{element}_code")
283
- # TODO : we may have to change this code if we need multiple proc for an particle
284
- # FIXME : find a better algorithm can be found to avoid test if option is a Hash
285
- Object.attr_accessor "#{element}_code"
286
- elem_code = "@#{element}_code"
287
- # if params.instance_of? Hash
288
- # option_found = params.values[0]
289
- # instance_variable_get(elem_code)["#{option_found}_code"] = user_proc
290
- # else
291
- instance_variable_get(elem_code)[element] = user_proc
292
- # end
293
- end
294
-
295
- # ###################### new 1
296
- # def store_proc(element, params = true, &user_proc)
297
- # instance_variable_set("@#{element}_code", {}) unless instance_variable_get("@#{element}_code")
298
- # # TODO : we may have to change this code if we need multiple proc for an particle
299
- # # FIXME : find a better algorithm can be found to avoid test if option is a Hash
300
- # Object.attr_accessor "#{element}_code"
301
- # elem_code = "@#{element}_code"
302
- # if params.instance_of? Hash
303
- # option_found = params.values[0]
304
- # puts "#{instance_variable_get(elem_code)["#{option_found}_code"]}"
305
- # proc_stored= instance_variable_get(elem_code)["#{option_found}_code"] = []
306
- # # proc_stored=[]
307
- # else
308
- # proc_stored= instance_variable_get(elem_code)[element] = []
309
- # end
310
- # proc_stored << user_proc
311
- # # the commented line below will automatically execute the callback method
312
- # # we keep it commented because sometime the execution is conditioned, ex : run callbck on a touch
313
- # # send("#{element}_callback")
314
- # end
315
- # ##################### new 1
316
-
317
- # This method is used to automatically create a callback method suffixed by '_callback'. For example: shell => shell_callback.
318
- # it can be override if you create a method like:
319
- # new({callback: :shell}) do |params, bloc|
320
- # # …write what you want …
321
- # end
322
- def particle_callback(element)
323
- Atome.define_method("#{element}_callback") do |return_params|
324
- # we test if instance_variable_get("@#{element}_code") is a hash for the can se the particle value is a hash
325
- proc_found = if instance_variable_get("@#{element}_code").instance_of? Hash
326
- # Then we get the first item of the hash because the proc is attached to it
327
- instance_variable_get("@#{element}_code").values.first
328
- # instance_exec(@callback[element], proc_found)if proc_found.is_a? Proc
329
- else
330
- instance_variable_get("@#{element}_code")[element]
331
- # instance_exec(@callback[element], proc_found)if proc_found.is_a? Proc
332
- end
333
- # array_of_proc_found.each do |proc_found|
334
- proc_found.call(return_params) if proc_found.is_a? Proc
335
- # end if array_of_proc_found
336
-
337
- # if array_of_proc_found
338
- # proc_found= array_of_proc_found.shift
339
- # proc_found.call(return_params) if proc_found.is_a? Proc
340
- # end
341
-
342
- end
343
- end
344
-
345
- # this method generate the method accessible for end developers
346
- # it's the send the method define in "particle_callback"
347
- def callback(element, return_params = nil)
348
- send("#{element}_callback", return_params)
349
- end
350
-
351
- def js_callback(id, particle, value,sub=nil )
352
- current_atome= grab(id)
353
- # # alert current_atome.instance_variable_get('@record_code')
354
- proc_found= current_atome.instance_variable_get("@#{particle}_code")[particle.to_sym]
355
- # proc_found= current_atome.instance_variable_get("@record_code")[:record]
356
- # # alert particle.class
357
- # # alert proc_found.class
358
- # proc_found.call
359
- instance_exec(value, &proc_found) if proc_found.is_a?(Proc)
360
- # # # puts "params to be exec #{id}, #{particle}, #{value}, #{sub}"
361
- # alpha= grab(:the_big_box)
362
- # proc_found= alpha.instance_variable_get("@record_code")[:record]
363
- # proc_found.call
364
-
365
- end
366
-
367
-
368
- # def callback(data)
369
- # @callback[data.keys[0]] = data[data.keys[0]]
370
- # end
371
-
372
- def particles(particles_found = nil)
373
- if particles_found
374
- particles_found.each do |particle_found, value_found|
375
- atome[particle_found] = value_found
376
- end
377
- else
378
- atome
379
- end
380
- end
381
-
382
- def atome
383
- # allow to get all atomes instance variables available as a Hash
384
- instance_variables.each_with_object({}) do |var, hash|
385
- hash[var[1..-1].to_sym] = instance_variable_get(var) # var[1..-1] enlève le '@' au début
386
- end
387
- end
388
-
389
- def particles_to_hash
390
- hash = {}
391
- instance_variables.each do |var|
392
- next if %i[@html_object @history, @initialized].include?(var)
393
-
394
- hash[var.to_s.delete('@').to_sym] = instance_variable_get(var)
395
- end
396
- hash
397
- end
398
-
399
- def refresh
400
- # we get the current color because they will be removed
401
- particles_found = particles_to_hash
402
- particles_found.each do |particle_found, value_found|
403
- send(particle_found, value_found)
404
- end
405
- color.each do |col|
406
- apply(col)
407
- end
408
- end
409
-
410
- def each(&proc)
411
- collect.each do |val|
412
- instance_exec(val, &proc) if proc.is_a?(Proc)
413
- end
414
- end
415
-
416
- def each_with_index(&proc)
417
- index = 0
418
- collect.each do |val|
419
- instance_exec(val, index, &proc) if proc.is_a?(Proc)
420
- index += 1
421
- end
422
- end
423
-
424
- def <<(item)
425
- collect << item
426
- end
427
-
428
- def include?(value)
429
- include?(value)
430
- end
431
-
432
- def set(params)
433
- params.each do |particle, value|
434
- send(particle, value)
435
- end
436
- end
437
-
438
- def detach_atome(atome_id_to_detach)
439
- atome_to_detach = grab(atome_id_to_detach)
440
- # TODO: remove the condition below and find why it try to detach an atome that doesn't exist
441
- nil unless atome_to_detach
442
- end
443
-
444
- def debug(msg)
445
- puts msg
446
- end
447
-
448
- def set_current_user(user_id)
449
- if Universe.users[user_id]
450
- Universe.current_user = user_id
451
- else
452
- debug "#{user_id} not found"
453
- end
454
- end
455
-
456
- def remove_layout
457
- display(:default)
458
- # we get the current parent (the previous layout)
459
- parent_found = grab(attach)
460
- # we get the parent of the parent
461
- grand_parent = parent_found.attach
462
- # and attach the item to the grand parent
463
- # we remove the parent category and restore atome category
464
- remove({ category: attach })
465
- category(:atome)
466
- attach(grand_parent)
467
- # we delete the parent (the layout) if it no more children attached
468
- if parent_found.attached.length == 0
469
- parent_found.delete(true)
470
- end
471
- end
472
-
473
- def server(server_params = nil)
474
- if server_params
475
- @current_server = server_params
476
- else
477
- @current_server
478
- end
479
- end
480
-
481
- def init_websocket
482
- connection(@current_server)
483
- end
484
-
485
- def encrypt(string)
486
- # if RUBY_ENGINE.downcase == 'opal' || 'wasm32-wasi'
487
- # `sha256(#{string})`
488
- js_code = "sha256('#{string}')"
489
- JS.eval(js_code)
490
- # else
491
- # Digest::SHA256.hexdigest(string)
492
- # end
493
- end
494
-
495
- def get_localstorage_content
496
- storage = JS.global[:localStorage]
497
- storage_array = storage.to_a
498
- storage_items = {}
499
- storage_array.each_with_index do |_i, index|
500
- key = JS.global[:localStorage].key(index)
501
- value = JS.global[:localStorage].getItem(key)
502
- storage_items[key] = value
503
- end
504
- storage_items
505
- end
506
-
507
- # def to_sym
508
- # puts "sanitizer temp patch when an atome is passed instead of an id"
509
- # @id
510
- # end
511
-
512
- def sync(params, &bloc)
513
- params = { data: params } unless params.instance_of? Hash
514
- message_id = "msg_#{Universe.messages.length}"
515
- params[:message_id] = message_id
516
- Universe.store_messages({ msg_nb: message_id, proc: bloc })
517
- html.send_message(params)
518
- end
519
-
520
- def alternate(*states)
521
- @alternate ||= { state: 0 }
522
- @alternate[:data] = states
523
- if @alternate[:state] < states.length - 1
524
- @alternate[:state] += 1
525
- else
526
- @alternate[:state] = 0
527
- end
528
-
529
- current_state = @alternate[:data][@alternate[:state] - 1]
530
- if current_state.instance_of?(Hash)
531
- current_state.each do |state, value|
532
- send(state, value)
533
- end
534
- end
535
- current_state
536
- end
537
-
538
- def vectorizer(svg_content)
539
- atome_content = []
540
-
541
- # circle_regex = /<circle\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)"\s+cx\s*=\s*"(\d+)"\s+cy\s*=\s*"(\d+)"\s+r\s*=\s*"(\d+)".*?\/>/
542
- circle_regex = /<circle\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)"\s+cx\s*=\s*"(\d+(?:\.\d+)?)"\s+cy\s*=\s*"(\d+(?:\.\d+)?)"\s+r\s*=\s*"(\d+(?:\.\d+)?)"\s*.*?\/>/
543
-
544
- svg_content.scan(circle_regex) do |id, stroke, stroke_width, fill, cx, cy, r|
545
- stroke = stroke || 'none'
546
- stroke_width = stroke_width || '0'
547
- fill = fill || 'none'
548
- circle_def = { circle: { cx: cx, cy: cy, r: r, id: id, stroke: stroke, "stroke-width" => stroke_width, fill: fill } }
549
- atome_content << circle_def
550
- end
551
-
552
- # path_regex = /<path\s+.*?d\s*=\s*"([^"]+)"\s+(?:id\s*=\s*"(.*?)"\s+)?(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)".*?\/>/
553
- path_regex = /<path\s+.*?d\s*=\s*"([^"]+)"\s+(?:id\s*=\s*"(.*?)"\s+)?(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)".*?\/>/
554
-
555
- svg_content.scan(path_regex) do |d, id, stroke, stroke_width, fill|
556
- id = id || 'path_id'
557
- stroke = stroke || 'none'
558
- stroke_width = stroke_width || '0'
559
- fill = fill || 'none'
560
- path_def = { path: { d: d, id: id, stroke: stroke, 'stroke-width' => stroke_width, fill: fill } }
561
- atome_content << path_def
562
- end
563
-
564
- # rect_regex = /<rect\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)"\s+x\s*=\s*"(\d+)"\s+y\s*=\s*"(\d+)"\s+width\s*=\s*"(\d+)"\s+height\s*=\s*"(\d+)".*?\/>/
565
- rect_regex = /<rect\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)"\s+x\s*=\s*"(\d+(?:\.\d+)?)"\s+y\s*=\s*"(\d+(?:\.\d+)?)"\s+width\s*=\s*"(\d+(?:\.\d+)?)"\s+height\s*=\s*"(\d+(?:\.\d+)?)"\s*.*?\/>/
566
-
567
- svg_content.scan(rect_regex) do |id, stroke, stroke_width, fill, x, y, width, height|
568
- id = id || 'rect_id'
569
- stroke = stroke || 'none'
570
- stroke_width = stroke_width || '0'
571
- fill = fill || 'none'
572
- rect_def = { rect: { x: x, y: y, width: width, height: height, id: id, stroke: stroke, 'stroke-width' => stroke_width, fill: fill } }
573
- atome_content << rect_def
574
- end
575
-
576
- # line_regex = /<line\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?x1\s*=\s*"(\d+)"\s+y1\s*=\s*"(\d+)"\s+x2\s*=\s*"(\d+)"\s+y2\s*=\s*"(\d+)".*?\/>/
577
- line_regex = /<line\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?x1\s*=\s*"(\d+(?:\.\d+)?)"\s+y1\s*=\s*"(\d+(?:\.\d+)?)"\s+x2\s*=\s*"(\d+(?:\.\d+)?)"\s+y2\s*=\s*"(\d+(?:\.\d+)?)"\s*.*?\/>/
578
-
579
- svg_content.scan(line_regex) do |id, stroke, stroke_width, x1, y1, x2, y2|
580
- id = id || 'line_id'
581
- stroke = stroke || 'none'
582
- stroke_width = stroke_width || '0'
583
- line_def = { line: { x1: x1, y1: y1, x2: x2, y2: y2, id: id, stroke: stroke, 'stroke-width' => stroke_width } }
584
- atome_content << line_def
585
- end
586
-
587
- # ellipse_regex = /<ellipse\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)"\s+cx\s*=\s*"(\d+)"\s+cy\s*=\s*"(\d+)"\s+rx\s*=\s*"(\d+)"\s+ry\s*=\s*"(\d+)".*?\/>/
588
- ellipse_regex = /<ellipse\s+.*?id\s*=\s*"(.*?)"\s+(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?fill\s*=\s*"(.*?)"\s+cx\s*=\s*"(\d+(?:\.\d+)?)"\s+cy\s*=\s*"(\d+(?:\.\d+)?)"\s+rx\s*=\s*"(\d+(?:\.\d+)?)"\s+ry\s*=\s*"(\d+(?:\.\d+)?)"\s*.*?\/>/
589
-
590
- svg_content.scan(ellipse_regex) do |id, stroke, stroke_width, fill, cx, cy, rx, ry|
591
- id = id || 'ellipse_id'
592
- stroke = stroke || 'none'
593
- stroke_width = stroke_width || '0'
594
- fill = fill || 'none'
595
- ellipse_def = { ellipse: { cx: cx, cy: cy, rx: rx, ry: ry, id: id, stroke: stroke, 'stroke-width' => stroke_width, fill: fill } }
596
- atome_content << ellipse_def
597
- end
598
-
599
- # polygon_regex = /<polygon\s+(?:id\s*=\s*"(.*?)"\s+)?(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?(?:fill\s*=\s*"(.*?)"\s+)?points\s*=\s*"([^"]+)".*?\/>/
600
- polygon_regex = /<polygon\s+(?:id\s*=\s*"(.*?)"\s+)?(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?(?:fill\s*=\s*"(.*?)"\s+)?points\s*=\s*"([^"]+)".*?\/>/
601
- svg_content.scan(polygon_regex) do |id, stroke, stroke_width, fill, points|
602
- id ||= 'polygon_id'
603
- stroke ||= 'none'
604
- stroke_width ||= '0'
605
- fill ||= 'none'
606
- polygon_def = { polygon: { points: points, id: id, stroke: stroke, 'stroke-width' => stroke_width, fill: fill } }
607
- atome_content << polygon_def
608
- end
609
-
610
- polyline_regex = /<polyline\s+.*?points\s*=\s*"([^"]+)"\s+(?:id\s*=\s*"(.*?)"\s+)?(?:stroke\s*=\s*"(.*?)"\s+)?(?:stroke-width\s*=\s*"(.*?)"\s+)?(?:fill\s*=\s*"(.*?)")?.*?\/>/
611
- svg_content.scan(polyline_regex) do |points, id, stroke, stroke_width, fill|
612
- id ||= 'polyline_id'
613
- stroke ||= 'none'
614
- stroke_width ||= '0'
615
- fill ||= 'none'
616
- polyline_def = { polyline: { points: points, id: id, stroke: stroke, 'stroke-width' => stroke_width, fill: fill } }
617
- atome_content << polyline_def
618
- end
619
-
620
- atome_content
621
- end
622
-
623
- def b64_to_tag(params)
624
- unless params[:target]
625
- new_img = image({ left: 0, top: 0 })
626
- params[:target] = new_img.id
627
- end
628
- new_tag = <<STRR
629
- var serializer = new XMLSerializer();
630
- var svg_string = serializer.serializeToString(document.getElementById('#{params[:id]}'));
631
- var encoded_svg = btoa(unescape(encodeURIComponent(svg_string)));
632
- var img = document.getElementById('#{params[:target]}');
633
- img.src = "data:image/svg+xml;base64," + encoded_svg;
634
- var parent = document.getElementById('#{id}');
635
- parent.appendChild(img);
636
- STRR
637
- JS.eval(new_tag)
638
- new_atome = grab(params[:target])
639
- html_obj = new_atome.html.object
640
- obj_src = html_obj[:src]
641
- new_atome.path(obj_src)
642
- new_atome
643
- end
644
-
645
- def fetch_svg(params)
646
- source = params[:source]
647
- img_element = JS.global[:document].getElementById(source.to_s)
648
- svg_path = img_element.getAttribute("src")
649
- target = params[:target]
650
- JS.eval("fetchSVGContent('#{svg_path}', '#{target}')")
651
- end
652
-
653
- end
654
-
655
-
656
-
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
- # relative is needed when using ruby wasm
3
- require 'fileutils'
4
- require 'securerandom'
5
- require_relative './atome/version'
6
- require_relative './atome/genesis/genesis'
7
- require_relative 'atome/kernel/black_matter'
8
- require_relative './atome/kernel/universe'
9
- require_relative './atome/utilities/essentials'
10
- require_relative './renderers/renderer'
11
- require_relative './atome/utilities/color_helper/color'
12
- require_relative './atome/extensions/atome'
13
- require_relative './atome/extensions/mathematics'
14
- require_relative './atome/atome'
15
- require_relative './atome/genesis/atomes'
16
- require_relative './atome/presets/atome'
17
- require_relative './atome/utilities/utilities'
18
- require_relative './atome/genesis/particles/atome'
19
- require_relative './atome/genesis/particles/communication'
20
- require_relative './atome/genesis/particles/effect'
21
- require_relative './atome/genesis/particles/event'
22
- require_relative './atome/genesis/particles/geometry'
23
- require_relative './atome/genesis/particles/hierarchy'
24
- require_relative './atome/genesis/particles/identity'
25
- require_relative './atome/genesis/particles/material'
26
- require_relative './atome/genesis/particles/property'
27
- require_relative './atome/genesis/particles/security'
28
- require_relative './atome/genesis/particles/spatial'
29
- require_relative './atome/genesis/particles/time'
30
- require_relative './atome/genesis/particles/utility'
31
- require_relative './atome/utilities/security'
32
- require_relative './renderers/html/index_relative'
33
- require_relative './renderers/headless/index_relative'
34
- require_relative './renderers/server/index_relative'
35
- require_relative './atome/utilities/sanitizer'
36
- require_relative './atome/genesis/presets'
37
- require_relative './atome/genesis/sparkle'
38
- require_relative './molecules/init'
39
- require_relative './molecules/intuition/utillities'