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,217 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # now let's get the default render engine
4
-
5
- # Lets create the U.I.
6
- default_render = Essentials.default_params[:render_engines]
7
- Atome.new(
8
- { renderers: [], aid: :eDen, type: :element, tag: { system: true } }
9
- )
10
- Atome.new(
11
- { renderers: [], aid: :user_view, type: :element, tag: { system: true },
12
- attach: :eDen }
13
- )
14
-
15
- # color creation
16
- Atome.new(
17
- { renderers: default_render, id: :view_color, type: :color, tag: ({ system: true, persistent: true }),
18
- red: 0.15, green: 0.15, blue: 0.15, alpha: 1, top: 12, left: 12, diffusion: :linear }
19
- )
20
-
21
- Atome.new(
22
- { renderers: default_render, id: :shape_color, type: :color, tag: ({ system: true, persistent: true }),
23
- red: 0.4, green: 0.4, blue: 0.4, alpha: 1 }
24
- )
25
-
26
- Atome.new(
27
- { renderers: default_render, id: :box_color, type: :color, tag: ({ system: true, persistent: true }),
28
- red: 0.5, green: 0.5, blue: 0.5, alpha: 1 }
29
- )
30
-
31
- Atome.new(
32
- { renderers: default_render, id: :invisible_color, type: :color, tag: ({ system: true, persistent: true }),
33
- red: 0, green: 0, blue: 0, alpha: 1 }
34
- )
35
-
36
- Atome.new(
37
- { renderers: default_render, id: :text_color, type: :color, tag: ({ system: true, persistent: true }),
38
- red: 0.9, green: 0.9, blue: 0.9, alpha: 1 }
39
- )
40
-
41
- Atome.new(
42
- { renderers: default_render, id: :circle_color, type: :color, tag: ({ system: true, persistent: true }),
43
- red: 0.6, green: 0.6, blue: 0.6, alpha: 1 }
44
- )
45
-
46
- Atome.new(
47
- { renderers: default_render, id: :back_selection, type: :color, tag: ({ system: true, persistent: true }),
48
- red: 0.6, green: 0.6, blue: 0.1, alpha: 0.7 }
49
- )
50
-
51
- Atome.new(
52
- { renderers: default_render, id: :text_selection, type: :color, tag: ({ system: true, persistent: true }),
53
- red: 0.3, green: 0.3, blue: 0.3, alpha: 0.9 }
54
- )
55
-
56
- # system object creation
57
- # the black_matter is used to store un materialized atomes
58
- Atome.new(
59
- { renderers: default_render, aid: :black_matter, type: :shape, attach: :user_view,
60
- left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0, overflow: :hidden, tag: { system: true }
61
- })
62
-
63
- # view port
64
- Atome.new(
65
- { renderers: default_render, aid: :view,type: :shape, attach: :user_view, apply: [:view_color],
66
- tag: { system: true }, left: 0, right: 0, top: 0, bottom: 0, width: :auto, height: :auto, overflow: :auto,
67
- }
68
-
69
- )
70
-
71
- # unreal port, hold system object and tools
72
- Atome.new(
73
- { renderers: default_render, aid: :intuition, type: :shape, attach: :user_view,data: {}, tag: { system: true },
74
- left: 0, top: 0, bottom: 0, width: 0, height: :auto, overflow: :visible
75
- }
76
- )
77
-
78
- machine_id = :dummy_machine
79
- # attention we must used two separate pass to avoid the password to be encode twice
80
- machine_password = { read: { atome: :star_wars }, write: { atome: :star_wars } }
81
-
82
- # copy basket
83
- Atome.new({ renderers: [:html], aid: :copy, collect: [], type: :group, tag: { system: true } })
84
-
85
- # machine
86
- Atome.new({ renderers: default_render, id: machine_id, type: :machine, password: machine_password,
87
- name: :macAir, data: { date: '10090717' }, tag: { system: true } })
88
-
89
-
90
-
91
- # user
92
- user_password = { global: :star_win, read: { atome: :star_wars }, write: { atome: :star_wars } }
93
-
94
- # human({ id: :anonymous, login: true, password: user_password, data: { birthday: '10/05/1996' }, selection: [], attach: :user_view })
95
- human({ id: identity_generator, login: true, password: user_password, data: { birthday: '10/05/1996' }, selection: [], attach: :user_view })
96
-
97
- Universe.current_machine = machine_id
98
- # the constant A is used to access alla atomes methods
99
- A = Atome.new(
100
- { renderers: default_render, id: :atome, type: :element, tag: { system: true } }
101
- )
102
- # atome selector / collector
103
- Atome.new({ renderers: [:html], aid: :selector, collect: [], type: :group, tag: { system: true } })
104
-
105
- # atome infos
106
- def atome_infos
107
- puts "atome version: #{Atome::VERSION}"
108
- puts "device identity: #{Atome::aui}"
109
- puts "application identity: #{Universe.app_identity}"
110
- puts "host framework: #{Atome::host}"
111
- puts "engine: #{Universe.engine}"
112
- puts "users: #{Universe.users}"
113
- puts "current user: #{Universe.current_user}"
114
- puts "machine: #{Universe.current_machine}"
115
- puts "connected: #{Universe.connected}"
116
- end
117
-
118
- # help and example below :
119
-
120
- A.example(:left) do
121
- english = 'here is an example, touch me to get some help, or click the code to exec'
122
- french = "voici un example, click moi pour de l'aide, ou clicker le code pour l'executer"
123
- code = <<STR
124
- b=box
125
- puts b.left
126
- b.left(155)
127
- puts b.left
128
- STR
129
- example = text({ int8: { english: english, french: french }, language: :english, width: 666 })
130
- code_text = text({ int8: { english: code }, language: :english, width: 666, top: 33 })
131
- example.touch(true) do
132
- example.delete(true)
133
- help(:left)
134
- end
135
- code_text.touch(true) do
136
- eval(code)
137
- end
138
- end
139
-
140
- # the method below init the user
141
- def atome_genesis
142
- atome_infos
143
- server = Universe.current_server
144
- server ||= 'disconnected'
145
- puts "server: #{server}"
146
-
147
- if server.start_with?('http')
148
- Universe.connected = true
149
- A.server({ address: 'localhost:9292', type: 'ws' })
150
- A.init_websocket do |msg|
151
- puts "websocket initialised #{msg}"
152
- end
153
- Universe.allow_sync = true
154
- end
155
- end
156
-
157
- def init_database # this method is call from JS (atome/communication) at WS connection
158
- # we init the db file eDen
159
- A.sync({ action: :init_db, data: { database: :eDen } }) do |data|
160
- Universe.database_ready = data[:data][:message] == 'database_ready'
161
- end
162
- # authentication : email, pass
163
- # atome : date, particles
164
- # history : aid, particle, value, date
165
-
166
- particles = Universe.particle_list
167
- # now we populate the DB
168
- A.sync({ action: :crate_db_table, data: { table: :user, type: :string } }) do |_db_state|
169
- # puts "===> #{_db_state}"
170
- end
171
-
172
- A.sync({ action: :create_db_column, data: { table: :user, column: :email, type: :string, unique: true } }) do |_db_state|
173
- end
174
-
175
- A.sync({ action: :create_db_column, data: { table: :user, column: :password, type: :string } }) do |_db_state|
176
- end
177
-
178
- A.sync({ action: :crate_db_table, data: { table: :history } }) do |_db_state|
179
- end
180
- A.sync({ action: :create_db_column, data: { table: :history, column: :aid, type: :string } }) do |_db_state|
181
- end
182
- A.sync({ action: :create_db_column, data: { table: :history, column: :particle, type: :string } }) do |_db_state|
183
- end
184
- A.sync({ action: :create_db_column, data: { table: :history, column: :value, type: :string } }) do |_db_state|
185
- end
186
- A.sync({ action: :create_db_column, data: { table: :history, column: :date, type: :datetime } }) do |_db_state|
187
- end
188
-
189
- A.sync({ action: :crate_db_table, data: { table: :atome } }) do |_db_state|
190
- end
191
- particles.each do |particle, infos|
192
- type = infos[:type]
193
- A.sync({ action: :create_db_column, data: { table: :atome, column: particle, type: type } }) do |_db_state|
194
- end
195
- end
196
-
197
- # now we send localstorage content to the server
198
- puts "sending localstorage"
199
- Atome.send_localstorage_content
200
-
201
- end
202
-
203
- def user_login
204
- # user = Universe.current_user
205
- password = Black_matter.password
206
- sync({ action: :authentication, data: { email: 'jeezs@atome.one' } }) do |email|
207
- puts "email received : #{email}"
208
- end
209
- sync({ action: :authorization, data: { password: password } }) do |pass|
210
- puts "password received : #{pass}"
211
- end
212
-
213
- end
214
-
215
- # Universe.allow_localstorage = true # to stop data to be stored in localstorage
216
- # Universe.allow_sync= false # to stop data to be sync on server
217
- touch_allow(false) # this lock the system right click in web view
@@ -1,22 +0,0 @@
1
- class Black_matter
2
- class << self
3
- def encode(string)
4
- JS.global.sha256(string.to_s)
5
- end
6
-
7
- def check_password(input_password, stored_hash)
8
- input_hash = encode(input_password)
9
- input_hash == stored_hash
10
- end
11
-
12
- def set_password(hashed_pass)
13
- @password = hashed_pass
14
- end
15
-
16
- def password
17
- @password
18
- end
19
-
20
- end
21
-
22
- end
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # TODO: params shouldn't be merge but they must respect the order
4
- # TODO: Add default value for each methods below
5
- # TODO: Factorise codes below
6
- # TODO we must clarified/unified the usage of presets and sanitizer it is not clear
7
-
8
- # additional Atome methods
9
- class Atome
10
- def atome_common(atome_preset, params)
11
-
12
- basic_params = { renderers: [] }
13
- # TODO : remove Essentials.default_params[atome_preset] || {} as it is
14
- # applied twice because preset is now a particle
15
- preset_params = Essentials.default_params[atome_preset] || {}
16
- # preset_params = {preset: atome_preset}
17
- basic_params[:type] = preset_params[:type] || :element
18
- # basic_params[:aid] = identity_generator(:a)
19
- basic_params[:id] = params[:id]|| identity_generator
20
- basic_params[:renderers] = @renderers || preset_params[:renderers]
21
- essential_params = basic_params.merge(preset_params)
22
- #
23
- reordered_params = essential_params.reject { |key, _| params.has_key?(key) }
24
- params = reordered_params.merge(params)
25
- params[:id]=params[:id].to_sym
26
- # condition to handle color/shadow/paint atomes that shouldn't be attach to view
27
- # TODO : add category for atome( material/physical vs modifier : color, shadow, .. vs shape, image ..)
28
- # then add condition same things fo code in genesis new_atome
29
- if %i[color shadow paint border].include?(atome_preset)
30
- unless params[:affect]
31
- params[:affect] = if @id == :view
32
- [:black_matter]
33
- else
34
- [@id]
35
- end
36
- end
37
- else
38
- params[:attach] = params[:attach] || @id || :view
39
- end
40
- # we reorder the hash
41
- reorder_particles(params)
42
- end
43
-
44
- def preset_common(params, &bloc)
45
-
46
- ## if an atome with current id exist we update the ID in the params
47
- # params[:id] = "#{params[:id]}_#{Universe.atomes.length}" if grab(params[:id])
48
- # if Universe.atomes[params[:id]]
49
- # alert "atome found : #{ grab(params[:id])}"
50
- # grab(params[:id])
51
- # else
52
-
53
- Atome.new(params, &bloc)
54
- # end
55
- end
56
-
57
-
58
-
59
- # def box(params = {}, &bloc)
60
- # atome_preset = :box
61
- # params = atome_common(atome_preset, params)
62
- # preset_common(params, &bloc)
63
- # end
64
- #
65
- # # def intuition(params = {}, &bloc)
66
- # # atome_preset = :intuition
67
- # # params = atome_common(atome_preset, params)
68
- # # preset_common(params, &bloc)
69
- # # end
70
- #
71
- # def circle(params = {}, &bloc)
72
- # atome_preset = :circle
73
- # params = atome_common(atome_preset, params)
74
- # preset_common(params, &bloc)
75
- # end
76
- end
77
-
78
-
79
-
@@ -1,263 +0,0 @@
1
- # An CMYK colour object. CMYK (cyan, magenta, yellow, and black) colours are
2
- # based on additive percentages of ink. A CMYK colour of (0.3, 0, 0.8, 0.3)
3
- # would be mixed from 30% cyan, 0% magenta, 80% yellow, and 30% black.
4
- # Primarily used in four-colour printing processes.
5
- class Color::CMYK
6
- include Color
7
-
8
- # The format of a DeviceCMYK colour for PDF. In color-tools 2.0 this will
9
- # be removed from this package and added back as a modification by the
10
- # PDF::Writer package.
11
- PDF_FORMAT_STR = "%.3f %.3f %.3f %.3f %s"
12
-
13
- # Coerces the other Color object into CMYK.
14
- def coerce(other)
15
- other.to_cmyk
16
- end
17
-
18
- class << self
19
- # Creates a CMYK colour object from fractional values 0..1.
20
- #
21
- # Color::CMYK.from_fraction(0.3, 0, 0.8, 0.3)
22
- def from_fraction(c = 0, m = 0, y = 0, k = 0, &block)
23
- new(c, m, y, k, 1.0, &block)
24
- end
25
-
26
- # Creates a CMYK colour object from percentages. Internally, the colour is
27
- # managed as fractional values 0..1.
28
- #
29
- # Color::CMYK.new(30, 0, 80, 30)
30
- def from_percent(c = 0, m = 0, y = 0, k = 0, &block)
31
- new(c, m, y, k, &block)
32
- end
33
- end
34
-
35
- # Creates a CMYK colour object from percentages. Internally, the colour is
36
- # managed as fractional values 0..1.
37
- #
38
- # Color::CMYK.new(30, 0, 80, 30)
39
- def initialize(c = 0, m = 0, y = 0, k = 0, radix = 100.0, &block) # :yields self:
40
- @c, @m, @y, @k = [ c, m, y, k ].map { |v| Color.normalize(v / radix) }
41
- block.call(self) if block
42
- end
43
-
44
- # Present the colour as a DeviceCMYK fill colour string for PDF. This will
45
- # be removed from the default package in color-tools 2.0.
46
- def pdf_fill
47
- PDF_FORMAT_STR % [ @c, @m, @y, @k, "k" ]
48
- end
49
-
50
- # Present the colour as a DeviceCMYK stroke colour string for PDF. This
51
- # will be removed from the default package in color-tools 2.0.
52
- def pdf_stroke
53
- PDF_FORMAT_STR % [ @c, @m, @y, @k, "K" ]
54
- end
55
-
56
- # Present the colour as an RGB HTML/CSS colour string (e.g., "#aabbcc").
57
- # Note that this will perform a #to_rgb operation using the default
58
- # conversion formula.
59
- def html
60
- to_rgb.html
61
- end
62
-
63
- # Present the colour as an RGB HTML/CSS colour string (e.g., "rgb(0%, 50%,
64
- # 100%)"). Note that this will perform a #to_rgb operation using the
65
- # default conversion formula.
66
- def css_rgb
67
- to_rgb.css_rgb
68
- end
69
-
70
- # Present the colour as an RGBA (with alpha) HTML/CSS colour string (e.g.,
71
- # "rgb(0%, 50%, 100%, 1)"). Note that this will perform a #to_rgb
72
- # operation using the default conversion formula.
73
- def css_rgba(alpha = 1)
74
- to_rgb.css_rgba(alpha)
75
- end
76
-
77
- # Present the colour as an HSL HTML/CSS colour string (e.g., "hsl(180,
78
- # 25%, 35%)"). Note that this will perform a #to_hsl operation using the
79
- # default conversion formula.
80
- def css_hsl
81
- to_hsl.css_hsl
82
- end
83
-
84
- # Present the colour as an HSLA (with alpha) HTML/CSS colour string (e.g.,
85
- # "hsla(180, 25%, 35%, 1)"). Note that this will perform a #to_hsl
86
- # operation using the default conversion formula.
87
- def css_hsla
88
- to_hsl.css_hsla
89
- end
90
-
91
- # Converts the CMYK colour to RGB. Most colour experts strongly suggest
92
- # that this is not a good idea (some even suggesting that it's a very bad
93
- # idea). CMYK represents additive percentages of inks on white paper,
94
- # whereas RGB represents mixed colour intensities on a black screen.
95
- #
96
- # However, the colour conversion can be done, and there are two different
97
- # methods for the conversion that provide slightly different results.
98
- # Adobe PDF conversions are done with the first form.
99
- #
100
- # # Adobe PDF Display Formula
101
- # r = 1.0 - min(1.0, c + k)
102
- # g = 1.0 - min(1.0, m + k)
103
- # b = 1.0 - min(1.0, y + k)
104
- #
105
- # # Other
106
- # r = 1.0 - (c * (1.0 - k) + k)
107
- # g = 1.0 - (m * (1.0 - k) + k)
108
- # b = 1.0 - (y * (1.0 - k) + k)
109
- #
110
- # If we have a CMYK colour of [33% 66% 83% 25%], the first method will
111
- # give an approximate RGB colour of (107, 23, 0) or #6b1700. The second
112
- # method will give an approximate RGB colour of (128, 65, 33) or #804121.
113
- # Which is correct? Although the colours may seem to be drastically
114
- # different in the RGB colour space, they are very similar colours,
115
- # differing mostly in intensity. The first is a darker, slightly redder
116
- # brown; the second is a lighter brown.
117
- #
118
- # Because of this subtlety, both methods are now offered for conversion.
119
- # The Adobe method is not used by default; to enable it, pass +true+ to
120
- # #to_rgb.
121
- #
122
- # Future versions of Color may offer other conversion mechanisms that
123
- # offer greater colour fidelity, including recognition of ICC colour
124
- # profiles.
125
- def to_rgb(use_adobe_method = false)
126
- if use_adobe_method
127
- Color::RGB.from_fraction(*adobe_cmyk_rgb)
128
- else
129
- Color::RGB.from_fraction(*standard_cmyk_rgb)
130
- end
131
- end
132
-
133
- # Converts the CMYK colour to a single greyscale value. There are
134
- # undoubtedly multiple methods for this conversion, but only a minor
135
- # variant of the Adobe conversion method will be used:
136
- #
137
- # g = 1.0 - min(1.0, 0.299 * c + 0.587 * m + 0.114 * y + k)
138
- #
139
- # This treats the CMY values similarly to YIQ (NTSC) values and then adds
140
- # the level of black. This is a variant of the Adobe version because it
141
- # uses the more precise YIQ (NTSC) conversion values for Y (intensity)
142
- # rather than the approximates provided by Adobe (0.3, 0.59, and 0.11).
143
- def to_grayscale
144
- c = 0.299 * @c.to_f
145
- m = 0.587 * @m.to_f
146
- y = 0.114 * @y.to_f
147
- g = 1.0 - [1.0, c + m + y + @k].min
148
- Color::GrayScale.from_fraction(g)
149
- end
150
- alias to_greyscale to_grayscale
151
-
152
- def to_cmyk
153
- self
154
- end
155
-
156
- def inspect
157
- "CMYK [%.2f%%, %.2f%%, %.2f%%, %.2f%%]" % [ cyan, magenta, yellow, black ]
158
- end
159
-
160
- # Converts to RGB then YIQ.
161
- def to_yiq
162
- to_rgb.to_yiq
163
- end
164
-
165
- # Converts to RGB then HSL.
166
- def to_hsl
167
- to_rgb.to_hsl
168
- end
169
-
170
- # Returns the cyan (C) component of the CMYK colour as a percentage value.
171
- def cyan
172
- @c * 100.0
173
- end
174
- # Returns the cyan (C) component of the CMYK colour as a value in the
175
- # range 0.0 .. 1.0.
176
- def c
177
- @c
178
- end
179
- # Sets the cyan (C) component of the CMYK colour as a percentage value.
180
- def cyan=(cc)
181
- @c = Color.normalize(cc / 100.0)
182
- end
183
- # Sets the cyan (C) component of the CMYK colour as a value in the range
184
- # 0.0 .. 1.0.
185
- def c=(cc)
186
- @c = Color.normalize(cc)
187
- end
188
-
189
- # Returns the magenta (M) component of the CMYK colour as a percentage
190
- # value.
191
- def magenta
192
- @m * 100.0
193
- end
194
- # Returns the magenta (M) component of the CMYK colour as a value in the
195
- # range 0.0 .. 1.0.
196
- def m
197
- @m
198
- end
199
- # Sets the magenta (M) component of the CMYK colour as a percentage value.
200
- def magenta=(mm)
201
- @m = Color.normalize(mm / 100.0)
202
- end
203
- # Sets the magenta (M) component of the CMYK colour as a value in the
204
- # range 0.0 .. 1.0.
205
- def m=(mm)
206
- @m = Color.normalize(mm)
207
- end
208
-
209
- # Returns the yellow (Y) component of the CMYK colour as a percentage
210
- # value.
211
- def yellow
212
- @y * 100.0
213
- end
214
- # Returns the yellow (Y) component of the CMYK colour as a value in the
215
- # range 0.0 .. 1.0.
216
- def y
217
- @y
218
- end
219
- # Sets the yellow (Y) component of the CMYK colour as a percentage value.
220
- def yellow=(yy)
221
- @y = Color.normalize(yy / 100.0)
222
- end
223
- # Sets the yellow (Y) component of the CMYK colour as a value in the range
224
- # 0.0 .. 1.0.
225
- def y=(kk)
226
- @y = Color.normalize(kk)
227
- end
228
-
229
- # Returns the black (K) component of the CMYK colour as a percentage
230
- # value.
231
- def black
232
- @k * 100.0
233
- end
234
- # Returns the black (K) component of the CMYK colour as a value in the
235
- # range 0.0 .. 1.0.
236
- def k
237
- @k
238
- end
239
- # Sets the black (K) component of the CMYK colour as a percentage value.
240
- def black=(kk)
241
- @k = Color.normalize(kk / 100.0)
242
- end
243
- # Sets the black (K) component of the CMYK colour as a value in the range
244
- # 0.0 .. 1.0.
245
- def k=(kk)
246
- @k = Color.normalize(kk)
247
- end
248
-
249
- def to_a
250
- [ c, m, y, k ]
251
- end
252
-
253
- private
254
- # Implements the Adobe PDF conversion of CMYK to RGB.
255
- def adobe_cmyk_rgb
256
- [ @c, @m, @y ].map { |v| 1.0 - [ 1.0, v + @k ].min }
257
- end
258
-
259
- # Implements the standard conversion of CMYK to RGB.
260
- def standard_cmyk_rgb
261
- [ @c, @m, @y ].map { |v| 1.0 - (v * (1.0 - k) + k) }
262
- end
263
- end
@@ -1,7 +0,0 @@
1
- # This namespace contains some CSS colour names.
2
- module Color::CSS
3
- # Returns the RGB colour for name or +nil+ if the name is not valid.
4
- def self.[](name)
5
- Color::RGB.by_name(name) { nil }
6
- end
7
- end