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,197 +0,0 @@
1
- # A colour object representing shades of grey. Used primarily in PDF
2
- # document creation.
3
- class Color::GrayScale
4
- include Color
5
-
6
- # The format of a DeviceGrey colour for PDF. In color-tools 2.0 this will
7
- # be removed from this package and added back as a modification by the
8
- # PDF::Writer package.
9
- PDF_FORMAT_STR = "%.3f %s"
10
-
11
- class << self
12
- # Creates a greyscale colour object from fractional values 0..1.
13
- #
14
- # Color::GreyScale.from_fraction(0.5)
15
- def from_fraction(g = 0, &block)
16
- new(g, 1.0, &block)
17
- end
18
-
19
- # Creates a greyscale colour object from percentages 0..100.
20
- #
21
- # Color::GrayScale.from_percent(50)
22
- def from_percent(g = 0, &block)
23
- new(g, &block)
24
- end
25
- end
26
-
27
- # Creates a greyscale colour object from percentages 0..100.
28
- #
29
- # Color::GrayScale.new(50)
30
- def initialize(g = 0, radix = 100.0, &block) # :yields self:
31
- @g = Color.normalize(g / radix)
32
- block.call if block
33
- end
34
-
35
- # Coerces the other Color object to grayscale.
36
- def coerce(other)
37
- other.to_grayscale
38
- end
39
-
40
- # Present the colour as a DeviceGrey fill colour string for PDF. This will
41
- # be removed from the default package in color-tools 2.0.
42
- def pdf_fill
43
- PDF_FORMAT_STR % [ @g, "g" ]
44
- end
45
-
46
- # Present the colour as a DeviceGrey stroke colour string for PDF. This
47
- # will be removed from the default package in color-tools 2.0.
48
- def pdf_stroke
49
- PDF_FORMAT_STR % [ @g, "G" ]
50
- end
51
-
52
- def to_255
53
- [(@g * 255).round, 255].min
54
- end
55
- private :to_255
56
-
57
- # Present the colour as an HTML/CSS colour string.
58
- def html
59
- gs = "%02x" % to_255
60
- "##{gs * 3}"
61
- end
62
-
63
- # Present the colour as an RGB HTML/CSS colour string (e.g., "rgb(0%, 50%,
64
- # 100%)").
65
- def css_rgb
66
- "rgb(%3.2f%%, %3.2f%%, %3.2f%%)" % [ gray, gray, gray ]
67
- end
68
-
69
- # Present the colour as an RGBA (with alpha) HTML/CSS colour string (e.g.,
70
- # "rgb(0%, 50%, 100%, 1)").
71
- def css_rgba(alpha = 1)
72
- "rgba(%3.2f%%, %3.2f%%, %3.2f%%, %1.2f)" % [ gray, gray, gray, alpha ]
73
- end
74
-
75
- # Present the colour as an HSL HTML/CSS colour string (e.g., "hsl(180,
76
- # 25%, 35%)"). Note that this will perform a #to_hsl operation.
77
- def css_hsl
78
- to_hsl.css_hsl
79
- end
80
-
81
- # Present the colour as an HSLA (with alpha) HTML/CSS colour string (e.g.,
82
- # "hsla(180, 25%, 35%, 1)"). Note that this will perform a #to_hsl
83
- # operation.
84
- def css_hsla
85
- to_hsl.css_hsla
86
- end
87
-
88
- # Convert the greyscale colour to CMYK.
89
- def to_cmyk
90
- k = 1.0 - @g.to_f
91
- Color::CMYK.from_fraction(0, 0, 0, k)
92
- end
93
-
94
- # Convert the greyscale colour to RGB.
95
- def to_rgb(ignored = true)
96
- Color::RGB.from_fraction(g, g, g)
97
- end
98
-
99
- # Reflexive conversion.
100
- def to_grayscale
101
- self
102
- end
103
- alias to_greyscale to_grayscale
104
-
105
- # Lightens the greyscale colour by the stated percent.
106
- def lighten_by(percent)
107
- g = [@g + (@g * (percent / 100.0)), 1.0].min
108
- Color::GrayScale.from_fraction(g)
109
- end
110
-
111
- # Darken the greyscale colour by the stated percent.
112
- def darken_by(percent)
113
- g = [@g - (@g * (percent / 100.0)), 0.0].max
114
- Color::GrayScale.from_fraction(g)
115
- end
116
-
117
- # Returns the YIQ (NTSC) colour encoding of the greyscale value. This is
118
- # an approximation, as the values for I and Q are calculated by treating
119
- # the greyscale value as an RGB value. The Y (intensity or brightness)
120
- # value is the same as the greyscale value.
121
- def to_yiq
122
- y = @g
123
- i = (@g * 0.596) + (@g * -0.275) + (@g * -0.321)
124
- q = (@g * 0.212) + (@g * -0.523) + (@g * 0.311)
125
- Color::YIQ.from_fraction(y, i, q)
126
- end
127
-
128
- # Returns the HSL colour encoding of the greyscale value.
129
- def to_hsl
130
- Color::HSL.from_fraction(0, 0, @g)
131
- end
132
-
133
- # Returns the brightness value for this greyscale value; this is the
134
- # greyscale value itself.
135
- def brightness
136
- @g
137
- end
138
-
139
- # Returns the grayscale value as a percentage of white (100% gray is
140
- # white).
141
- def gray
142
- @g * 100.0
143
- end
144
- alias grey gray
145
- # Returns the grayscale value as a fractional value of white in the range
146
- # 0.0 .. 1.0.
147
- def g
148
- @g
149
- end
150
- # Sets the grayscale value as a percentage of white.
151
- def gray=(gg)
152
- @g = Color.normalize(gg / 100.0)
153
- end
154
- alias grey= gray= ;
155
- # Returns the grayscale value as a fractional value of white in the range
156
- # 0.0 .. 1.0.
157
- def g=(gg)
158
- @g = Color.normalize(gg)
159
- end
160
-
161
- # Adds another colour to the current colour. The other colour will be
162
- # converted to grayscale before addition. This conversion depends upon a
163
- # #to_grayscale method on the other colour.
164
- #
165
- # The addition is done using the grayscale accessor methods to ensure a
166
- # valid colour in the result.
167
- def +(other)
168
- self.class.from_fraction(g + other.to_grayscale.g)
169
- end
170
-
171
- # Subtracts another colour to the current colour. The other colour will be
172
- # converted to grayscale before subtraction. This conversion depends upon
173
- # a #to_grayscale method on the other colour.
174
- #
175
- # The subtraction is done using the grayscale accessor methods to ensure a
176
- # valid colour in the result.
177
- def -(other)
178
- self + (-other)
179
- end
180
-
181
- def inspect
182
- "Gray [%.2f%%]" % [ gray ]
183
- end
184
-
185
- def to_a
186
- [ g ]
187
- end
188
-
189
- def -@
190
- gs = self.dup
191
- gs.instance_variable_set(:@g, -g)
192
- gs
193
- end
194
- end
195
-
196
- # A synonym for Color::GrayScale.
197
- Color::GreyScale = Color::GrayScale
@@ -1,240 +0,0 @@
1
- # -*- ruby encoding: utf-8 -*-
2
-
3
- # An HSL colour object. Internally, the hue (#h), saturation (#s), and
4
- # luminosity/lightness (#l) values are dealt with as fractional values in
5
- # the range 0..1.
6
- class Color::HSL
7
- include Color
8
-
9
- class << self
10
- # Creates an HSL colour object from fractional values 0..1.
11
- def from_fraction(h = 0.0, s = 0.0, l = 0.0, &block)
12
- new(h, s, l, 1.0, 1.0, &block)
13
- end
14
- end
15
-
16
- # Coerces the other Color object into HSL.
17
- def coerce(other)
18
- other.to_hsl
19
- end
20
-
21
- # Creates an HSL colour object from the standard values of degrees and
22
- # percentages (e.g., 145 deg, 30%, 50%).
23
- def initialize(h = 0, s = 0, l = 0, radix1 = 360.0, radix2 = 100.0, &block) # :yields self:
24
- @h = Color.normalize(h / radix1)
25
- @s = Color.normalize(s / radix2)
26
- @l = Color.normalize(l / radix2)
27
- block.call if block
28
- end
29
-
30
- # Present the colour as an HTML/CSS colour string.
31
- def html
32
- to_rgb.html
33
- end
34
-
35
- # Present the colour as an RGB HTML/CSS colour string (e.g., "rgb(0%, 50%,
36
- # 100%)"). Note that this will perform a #to_rgb operation using the
37
- # default conversion formula.
38
- def css_rgb
39
- to_rgb.css_rgb
40
- end
41
-
42
- # Present the colour as an RGBA (with alpha) HTML/CSS colour string (e.g.,
43
- # "rgb(0%, 50%, 100%, 1)"). Note that this will perform a #to_rgb
44
- # operation using the default conversion formula.
45
- def css_rgba(alpha = 1)
46
- to_rgb.css_rgba(alpha)
47
- end
48
-
49
- # Present the colour as an HSL HTML/CSS colour string (e.g., "hsl(180,
50
- # 25%, 35%)").
51
- def css_hsl
52
- "hsl(%3.2f, %3.2f%%, %3.2f%%)" % [ hue, saturation, luminosity ]
53
- end
54
-
55
- # Present the colour as an HSLA (with alpha) HTML/CSS colour string (e.g.,
56
- # "hsla(180, 25%, 35%, 1)").
57
- def css_hsla
58
- "hsla(%3.2f, %3.2f%%, %3.2f%%, %3.2f)" % [ hue, saturation, luminosity, 1 ]
59
- end
60
-
61
- # Converting from HSL to RGB. As with all colour conversions, this is
62
- # approximate at best. The code here is adapted from fvd and van Dam,
63
- # originally found at [1] (implemented similarly at [2]).
64
- #
65
- # This simplifies the calculations with the following assumptions:
66
- # - Luminance values <= 0 always translate to Color::RGB::Black.
67
- # - Luminance values >= 1 always translate to Color::RGB::White.
68
- # - Saturation values <= 0 always translate to a shade of gray using
69
- # luminance as a percentage of gray.
70
- #
71
- # [1] http://bobpowell.net/RGBHSB.aspx
72
- # [2] http://support.microsoft.com/kb/29240
73
- def to_rgb(*)
74
- if Color.near_zero_or_less?(l)
75
- Color::RGB::Black
76
- elsif Color.near_one_or_more?(l)
77
- Color::RGB::White
78
- elsif Color.near_zero?(s)
79
- Color::RGB.from_grayscale_fraction(l)
80
- else
81
- # Only needed for Ruby 1.8. For Ruby 1.9+, we can do:
82
- # Color::RGB.new(*compute_fvd_rgb, 1.0)
83
- Color::RGB.new(*(compute_fvd_rgb + [ 1.0 ]))
84
- end
85
- end
86
-
87
- # Converts to RGB then YIQ.
88
- def to_yiq
89
- to_rgb.to_yiq
90
- end
91
-
92
- # Converts to RGB then CMYK.
93
- def to_cmyk
94
- to_rgb.to_cmyk
95
- end
96
-
97
- # Returns the luminosity (#l) of the colour.
98
- def brightness
99
- @l
100
- end
101
- def to_greyscale
102
- Color::GrayScale.from_fraction(@l)
103
- end
104
- alias to_grayscale to_greyscale
105
-
106
- # Returns the hue of the colour in degrees.
107
- def hue
108
- @h * 360.0
109
- end
110
- # Returns the hue of the colour in the range 0.0 .. 1.0.
111
- def h
112
- @h
113
- end
114
- # Sets the hue of the colour in degrees. Colour is perceived as a wheel,
115
- # so values should be set properly even with negative degree values.
116
- def hue=(hh)
117
- hh = hh / 360.0
118
-
119
- hh += 1.0 if hh < 0.0
120
- hh -= 1.0 if hh > 1.0
121
-
122
- @h = Color.normalize(hh)
123
- end
124
- # Sets the hue of the colour in the range 0.0 .. 1.0.
125
- def h=(hh)
126
- @h = Color.normalize(hh)
127
- end
128
- # Returns the percentage of saturation of the colour.
129
- def saturation
130
- @s * 100.0
131
- end
132
- # Returns the saturation of the colour in the range 0.0 .. 1.0.
133
- def s
134
- @s
135
- end
136
- # Sets the percentage of saturation of the colour.
137
- def saturation=(ss)
138
- @s = Color.normalize(ss / 100.0)
139
- end
140
- # Sets the saturation of the colour in the ragne 0.0 .. 1.0.
141
- def s=(ss)
142
- @s = Color.normalize(ss)
143
- end
144
-
145
- # Returns the percentage of luminosity of the colour.
146
- def luminosity
147
- @l * 100.0
148
- end
149
- alias lightness luminosity
150
- # Returns the luminosity of the colour in the range 0.0 .. 1.0.
151
- def l
152
- @l
153
- end
154
- # Sets the percentage of luminosity of the colour.
155
- def luminosity=(ll)
156
- @l = Color.normalize(ll / 100.0)
157
- end
158
- alias lightness= luminosity= ;
159
- # Sets the luminosity of the colour in the ragne 0.0 .. 1.0.
160
- def l=(ll)
161
- @l = Color.normalize(ll)
162
- end
163
-
164
- def to_hsl
165
- self
166
- end
167
-
168
- def inspect
169
- "HSL [%.2f deg, %.2f%%, %.2f%%]" % [ hue, saturation, luminosity ]
170
- end
171
-
172
- # Mix the mask colour (which will be converted to an HSL colour) with the
173
- # current colour at the stated mix percentage as a decimal value.
174
- #
175
- # NOTE:: This differs from Color::RGB#mix_with.
176
- def mix_with(color, mix_percent = 0.5)
177
- v = to_a.zip(coerce(color).to_a).map { |(x, y)|
178
- ((y - x) * mix_percent) + x
179
- }
180
- self.class.from_fraction(*v)
181
- end
182
-
183
- def to_a
184
- [ h, s, l ]
185
- end
186
-
187
- private
188
-
189
- # This algorithm calculates based on a mixture of the saturation and
190
- # luminance, and then takes the RGB values from the hue + 1/3, hue, and
191
- # hue - 1/3 positions in a circular representation of colour divided into
192
- # four parts (confusing, I know, but it's the way that it works). See
193
- # #hue_to_rgb for more information.
194
- def compute_fvd_rgb
195
- t1, t2 = fvd_mix_sat_lum
196
- [ h + (1 / 3.0), h, h - (1 / 3.0) ].map { |v|
197
- hue_to_rgb(rotate_hue(v), t1, t2)
198
- }
199
- end
200
-
201
- # Mix saturation and luminance for use in hue_to_rgb. The base value is
202
- # different depending on whether luminance is <= 50% or > 50%.
203
- def fvd_mix_sat_lum
204
- t = if Color.near_zero_or_less?(l - 0.5)
205
- l * (1.0 + s.to_f)
206
- else
207
- l + s - (l * s.to_f)
208
- end
209
- [ 2.0 * l - t, t ]
210
- end
211
-
212
- # In HSL, hues are referenced as degrees in a colour circle. The flow
213
- # itself is endless; therefore, we can rotate around. The only thing our
214
- # implementation restricts is that you should not be > 1.0.
215
- def rotate_hue(h)
216
- h += 1.0 if Color.near_zero_or_less?(h)
217
- h -= 1.0 if Color.near_one_or_more?(h)
218
- h
219
- end
220
-
221
- # We calculate the interaction of the saturation/luminance mix (calculated
222
- # earlier) based on the position of the hue in the circular colour space
223
- # divided into quadrants. Our hue range is [0, 1), not [0, 360º).
224
- #
225
- # - The first quadrant covers the first 60º [0, 60º].
226
- # - The second quadrant covers the next 120º (60º, 180º].
227
- # - The third quadrant covers the next 60º (180º, 240º].
228
- # - The fourth quadrant covers the final 120º (240º, 360º).
229
- def hue_to_rgb(h, t1, t2)
230
- if Color.near_zero_or_less?((6.0 * h) - 1.0)
231
- t1 + ((t2 - t1) * h * 6.0)
232
- elsif Color.near_zero_or_less?((2.0 * h) - 1.0)
233
- t2
234
- elsif Color.near_zero_or_less?((3.0 * h) - 2.0)
235
- t1 + (t2 - t1) * ((2 / 3.0) - h) * 6.0
236
- else
237
- t1
238
- end
239
- end
240
- end
@@ -1,260 +0,0 @@
1
- require 'color/palette'
2
-
3
- # A class that can read an Adobe Color palette file (used for Photoshop
4
- # swatches) and provide a Hash-like interface to the contents. Not all
5
- # colour formats in ACO files are supported. Based largely off the
6
- # information found by Larry Tesler[http://www.nomodes.com/aco.html].
7
- #
8
- # Not all Adobe Color files have named colours; all named entries are
9
- # returned as an array.
10
- #
11
- # pal = Color::Palette::AdobeColor.from_file(my_aco_palette)
12
- # pal[0] => Color::RGB<...>
13
- # pal["white"] => [ Color::RGB<...> ]
14
- # pal["unknown"] => [ Color::RGB<...>, Color::RGB<...>, ... ]
15
- #
16
- # AdobeColor palettes are always indexable by insertion order (an integer
17
- # key).
18
- #
19
- # Version 2 palettes use UTF-16 colour names.
20
- class Color::Palette::AdobeColor
21
- include Enumerable
22
-
23
- class << self
24
- # Create an AdobeColor palette object from the named file.
25
- def from_file(filename)
26
- File.open(filename, "rb") { |io| Color::Palette::AdobeColor.from_io(io) }
27
- end
28
-
29
- # Create an AdobeColor palette object from the provided IO.
30
- def from_io(io)
31
- Color::Palette::AdobeColor.new(io.read)
32
- end
33
- end
34
-
35
- # Returns statistics about the nature of the colours loaded.
36
- attr_reader :statistics
37
- # Contains the "lost" colours in the palette. These colours could not be
38
- # properly loaded (e.g., L*a*b* is not supported by Color, so it is
39
- # "lost") or are not understood by the algorithms.
40
- attr_reader :lost
41
-
42
- # Use this to convert the unsigned word to the signed word, if necessary.
43
- UwToSw = proc { |n| (n >= (2 ** 16)) ? n - (2 ** 32) : n } #:nodoc:
44
-
45
- # Create a new AdobeColor palette from the palette file as a string.
46
- def initialize(palette)
47
- @colors = []
48
- @names = {}
49
- @statistics = Hash.new(0)
50
- @lost = []
51
- @order = []
52
- @version = nil
53
-
54
- class << palette
55
- def readwords(count = 1)
56
- @offset ||= 0
57
- raise IndexError if @offset >= self.size
58
- val = self[@offset, count * 2]
59
- raise IndexError if val.nil? or val.size < (count * 2)
60
- val = val.unpack("n" * count)
61
- @offset += count * 2
62
- val
63
- end
64
-
65
- def readutf16(count = 1)
66
- @offset ||= 0
67
- raise IndexError if @offset >= self.size
68
- val = self[@offset, count * 2]
69
- raise IndexError if val.nil? or val.size < (count * 2)
70
- @offset += count * 2
71
- val
72
- end
73
- end
74
-
75
- @version, count = palette.readwords 2
76
-
77
- raise "Unknown AdobeColor palette version #@version." unless @version.between?(1, 2)
78
-
79
- count.times do
80
- space, w, x, y, z = palette.readwords 5
81
- name = nil
82
- if @version == 2
83
- raise IndexError unless palette.readwords == [ 0 ]
84
- len = palette.readwords
85
- name = palette.readutf16(len[0] - 1)
86
- raise IndexError unless palette.readwords == [ 0 ]
87
- end
88
-
89
- color = case space
90
- when 0 then # RGB
91
- @statistics[:rgb] += 1
92
-
93
- Color::RGB.new(w / 256, x / 256, y / 256)
94
- when 1 then # HS[BV] -- Convert to RGB
95
- @statistics[:hsb] += 1
96
-
97
- h = w / 65535.0
98
- s = x / 65535.0
99
- v = y / 65535.0
100
-
101
- if defined?(Color::HSB)
102
- Color::HSB.from_fraction(h, s, v)
103
- else
104
- @statistics[:converted] += 1
105
- if Color.near_zero_or_less?(s)
106
- Color::RGB.from_fraction(v, v, v)
107
- else
108
- if Color.near_one_or_more?(h)
109
- vh = 0
110
- else
111
- vh = h * 6.0
112
- end
113
-
114
- vi = vh.floor
115
- v1 = v.to_f * (1 - s.to_f)
116
- v2 = v.to_f * (1 - s.to_f * (vh - vi))
117
- v3 = v.to_f * (1 - s.to_f * (1 - (vh - vi)))
118
-
119
- case vi
120
- when 0 then Color::RGB.from_fraction(v, v3, v1)
121
- when 1 then Color::RGB.from_fraction(v2, v, v1)
122
- when 2 then Color::RGB.from_fraction(v1, v, v3)
123
- when 3 then Color::RGB.from_fraction(v1, v2, v)
124
- when 4 then Color::RGB.from_fraction(v3, v1, v)
125
- else Color::RGB.from_fraction(v, v1, v2)
126
- end
127
- end
128
- end
129
- when 2 then # CMYK
130
- @statistics[:cmyk] += 1
131
- Color::CMYK.from_percent(100 - (w / 655.35),
132
- 100 - (x / 655.35),
133
- 100 - (y / 655.35),
134
- 100 - (z / 655.35))
135
- when 7 then # L*a*b*
136
- @statistics[:lab] += 1
137
-
138
- l = [w, 10000].min / 100.0
139
- a = [[-12800, UwToSw[x]].max, 12700].min / 100.0
140
- b = [[-12800, UwToSw[x]].max, 12700].min / 100.0
141
-
142
- if defined? Color::Lab
143
- Color::Lab.new(l, a, b)
144
- else
145
- [ space, w, x, y, z ]
146
- end
147
- when 8 then # Grayscale
148
- @statistics[:gray] += 1
149
-
150
- g = [w, 10000].min / 100.0
151
- Color::GrayScale.new(g)
152
- when 9 then # Wide CMYK
153
- @statistics[:wcmyk] += 1
154
-
155
- c = [w, 10000].min / 100.0
156
- m = [x, 10000].min / 100.0
157
- y = [y, 10000].min / 100.0
158
- k = [z, 10000].min / 100.0
159
- Color::CMYK.from_percent(c, m, y, k)
160
- else
161
- @statistics[space] += 1
162
- [ space, w, x, y, z ]
163
- end
164
-
165
- @order << [ color, name ]
166
-
167
- if color.kind_of? Array
168
- @lost << color
169
- else
170
- @colors << color
171
-
172
- if name
173
- @names[name] ||= []
174
- @names[name] << color
175
- end
176
- end
177
- end
178
- end
179
-
180
- # Provides the colour or colours at the provided selectors.
181
- def values_at(*selectors)
182
- @colors.values_at(*selectors)
183
- end
184
-
185
- # If a Numeric +key+ is provided, the single colour value at that position
186
- # will be returned. If a String +key+ is provided, the colour set (an
187
- # array) for that colour name will be returned.
188
- def [](key)
189
- if key.kind_of?(Numeric)
190
- @colors[key]
191
- else
192
- @names[key]
193
- end
194
- end
195
-
196
- # Loops through each colour.
197
- def each
198
- @colors.each { |el| yield el }
199
- end
200
-
201
- # Loops through each named colour set.
202
- def each_name #:yields color_name, color_set:#
203
- @names.each { |color_name, color_set| yield color_name, color_set }
204
- end
205
-
206
- def size
207
- @colors.size
208
- end
209
-
210
- attr_reader :version
211
-
212
- def to_aco(version = @version) #:nodoc:
213
- res = ""
214
-
215
- res << [ version, @order.size ].pack("nn")
216
-
217
- @order.each do |cnpair|
218
- color, name = *cnpair
219
-
220
- # Note: HSB and CMYK formats are lost by the conversions performed on
221
- # import. They are turned into RGB and WCMYK, respectively.
222
-
223
- cstr = case color
224
- when Array
225
- color
226
- when Color::RGB
227
- r = [(color.red * 256).round, 65535].min
228
- g = [(color.green * 256).round, 65535].min
229
- b = [(color.blue * 256).round, 65535].min
230
- [ 0, r, g, b, 0 ]
231
- when Color::GrayScale
232
- g = [(color.gray * 100).round, 10000].min
233
- [ 8, g, 0, 0, 0 ]
234
- when Color::CMYK
235
- c = [(color.cyan * 100).round, 10000].min
236
- m = [(color.magenta * 100).round, 10000].min
237
- y = [(color.yellow * 100).round, 10000].min
238
- k = [(color.black * 100).round, 10000].min
239
- [ 9, c, m, y, k ]
240
- end
241
- cstr = cstr.pack("nnnnn")
242
-
243
- nstr = ""
244
-
245
- if version == 2
246
- if (name.size / 2 * 2) == name.size # only where s[0] == byte!
247
- nstr << [ 0, (name.size / 2) + 1 ].pack("nn")
248
- nstr << name
249
- nstr << [ 0 ].pack("n")
250
- else
251
- nstr << [ 0, 1, 0 ].pack("nnn")
252
- end
253
- end
254
-
255
- res << cstr << nstr
256
- end
257
-
258
- res
259
- end
260
- end