lacci 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +79 -0
  4. data/Rakefile +1 -4
  5. data/lib/lacci/scarpe_cli.rb +71 -0
  6. data/lib/lacci/scarpe_core.rb +22 -0
  7. data/lib/lacci/version.rb +13 -0
  8. data/lib/scarpe/niente/app.rb +23 -0
  9. data/lib/scarpe/niente/display_service.rb +62 -0
  10. data/lib/scarpe/niente/drawable.rb +57 -0
  11. data/lib/scarpe/niente/logger.rb +29 -0
  12. data/lib/scarpe/niente/shoes_spec.rb +87 -0
  13. data/lib/scarpe/niente.rb +20 -0
  14. data/lib/shoes/app.rb +165 -43
  15. data/lib/{scarpe → shoes}/background.rb +2 -2
  16. data/lib/{scarpe → shoes}/border.rb +2 -2
  17. data/lib/shoes/builtins.rb +63 -0
  18. data/lib/shoes/changelog.rb +52 -0
  19. data/lib/{scarpe → shoes}/colors.rb +3 -1
  20. data/lib/shoes/constants.rb +24 -3
  21. data/lib/{scarpe → shoes}/display_service.rb +45 -23
  22. data/lib/{scarpe → shoes}/download.rb +7 -7
  23. data/lib/shoes/drawable.rb +380 -0
  24. data/lib/shoes/drawables/arc.rb +49 -0
  25. data/lib/shoes/drawables/arrow.rb +41 -0
  26. data/lib/shoes/drawables/button.rb +73 -0
  27. data/lib/shoes/drawables/check.rb +29 -0
  28. data/lib/{scarpe → shoes/drawables}/document_root.rb +5 -5
  29. data/lib/{scarpe → shoes/drawables}/edit_box.rb +6 -6
  30. data/lib/{scarpe → shoes/drawables}/edit_line.rb +6 -6
  31. data/lib/shoes/drawables/flow.rb +22 -0
  32. data/lib/{scarpe → shoes/drawables}/image.rb +7 -13
  33. data/lib/shoes/drawables/line.rb +20 -0
  34. data/lib/shoes/drawables/link.rb +34 -0
  35. data/lib/shoes/drawables/list_box.rb +56 -0
  36. data/lib/shoes/drawables/para.rb +118 -0
  37. data/lib/shoes/drawables/progress.rb +14 -0
  38. data/lib/shoes/drawables/radio.rb +33 -0
  39. data/lib/shoes/drawables/rect.rb +17 -0
  40. data/lib/shoes/drawables/shape.rb +36 -0
  41. data/lib/shoes/drawables/slot.rb +87 -0
  42. data/lib/{scarpe → shoes/drawables}/span.rb +8 -7
  43. data/lib/{scarpe → shoes/drawables}/stack.rb +10 -4
  44. data/lib/shoes/drawables/star.rb +50 -0
  45. data/lib/shoes/drawables/subscription_item.rb +93 -0
  46. data/lib/shoes/drawables/text_drawable.rb +63 -0
  47. data/lib/shoes/drawables/video.rb +16 -0
  48. data/lib/shoes/drawables/widget.rb +69 -0
  49. data/lib/shoes/drawables.rb +31 -0
  50. data/lib/shoes/errors.rb +28 -0
  51. data/lib/shoes/log.rb +71 -0
  52. data/lib/shoes/ruby_extensions.rb +15 -0
  53. data/lib/shoes/spacing.rb +9 -0
  54. data/lib/shoes-spec.rb +93 -0
  55. data/lib/shoes.rb +93 -11
  56. metadata +67 -557
  57. data/.rubocop.yml +0 -85
  58. data/.ruby-version +0 -1
  59. data/.vscode/extensions.json +0 -5
  60. data/.yardopts +0 -12
  61. data/CHANGELOG.md +0 -19
  62. data/CODE_OF_CONDUCT.md +0 -84
  63. data/CONTRIBUTING.md +0 -20
  64. data/LICENSE.txt +0 -21
  65. data/README.md +0 -178
  66. data/bin/console +0 -15
  67. data/bin/setup +0 -8
  68. data/dev.yml +0 -7
  69. data/docs/static/PKGBUILD +0 -47
  70. data/docs/static/Shoes.icns +0 -0
  71. data/docs/static/avatar.png +0 -0
  72. data/docs/static/code_highlighter.js +0 -188
  73. data/docs/static/code_highlighter_ruby.js +0 -26
  74. data/docs/static/icon-debug.png +0 -0
  75. data/docs/static/icon-error.png +0 -0
  76. data/docs/static/icon-info.png +0 -0
  77. data/docs/static/icon-warn.png +0 -0
  78. data/docs/static/listbox_button1.png +0 -0
  79. data/docs/static/listbox_button2.png +0 -0
  80. data/docs/static/man-app.png +0 -0
  81. data/docs/static/man-builds.png +0 -0
  82. data/docs/static/man-builds1.png +0 -0
  83. data/docs/static/man-editor-notepad.png +0 -0
  84. data/docs/static/man-editor-osx.png +0 -0
  85. data/docs/static/man-ele-background.png +0 -0
  86. data/docs/static/man-ele-border.png +0 -0
  87. data/docs/static/man-ele-button.png +0 -0
  88. data/docs/static/man-ele-check.png +0 -0
  89. data/docs/static/man-ele-editbox.png +0 -0
  90. data/docs/static/man-ele-editline.png +0 -0
  91. data/docs/static/man-ele-image.png +0 -0
  92. data/docs/static/man-ele-listbox.png +0 -0
  93. data/docs/static/man-ele-progress.png +0 -0
  94. data/docs/static/man-ele-radio.png +0 -0
  95. data/docs/static/man-ele-shape.png +0 -0
  96. data/docs/static/man-ele-textblock.png +0 -0
  97. data/docs/static/man-ele-video.png +0 -0
  98. data/docs/static/man-intro-dmg.png +0 -0
  99. data/docs/static/man-intro-exe.png +0 -0
  100. data/docs/static/man-look-tiger.png +0 -0
  101. data/docs/static/man-look-ubuntu.png +0 -0
  102. data/docs/static/man-look-vista.png +0 -0
  103. data/docs/static/man-run-osx.png +0 -0
  104. data/docs/static/man-run-vista.png +0 -0
  105. data/docs/static/man-run-xp.png +0 -0
  106. data/docs/static/man-shot1.png +0 -0
  107. data/docs/static/manual-en.txt +0 -3529
  108. data/docs/static/manual-ja.txt +0 -2829
  109. data/docs/static/manual.css +0 -171
  110. data/docs/static/manual.md +0 -3528
  111. data/docs/static/menu-corner1.png +0 -0
  112. data/docs/static/menu-corner2.png +0 -0
  113. data/docs/static/menu-gray.png +0 -0
  114. data/docs/static/menu-left.png +0 -0
  115. data/docs/static/menu-right.png +0 -0
  116. data/docs/static/menu-top.png +0 -0
  117. data/docs/static/shoes-dmg.jpg +0 -0
  118. data/docs/static/shoes-icon-blue.png +0 -0
  119. data/docs/static/shoes-icon.png +0 -0
  120. data/docs/static/shoes-manual-apps.gif +0 -0
  121. data/docs/static/shoes_main_window.png +0 -0
  122. data/docs/static/stripe.png +0 -0
  123. data/docs/static/stubs/blank.exe +0 -0
  124. data/docs/static/stubs/blank.hfz +0 -0
  125. data/docs/static/stubs/blank.run +0 -375
  126. data/docs/static/stubs/cocoa-install +0 -0
  127. data/docs/static/stubs/sh-install +0 -49
  128. data/docs/static/stubs/shoes-stub-inject.exe +0 -0
  129. data/docs/static/stubs/shoes-stub.exe +0 -0
  130. data/docs/static/tutor-back.png +0 -0
  131. data/docs/yard/catscradle.md +0 -44
  132. data/docs/yard/template/default/fulldoc/html/setup.rb +0 -13
  133. data/docs/yard/template/default/layout/html/setup.rb +0 -9
  134. data/examples/backdround_with_image.rb +0 -16
  135. data/examples/bloopsaphone/working/1901_by_Aanand_Prasad.rb +0 -478
  136. data/examples/bloopsaphone/working/b1.rb +0 -64
  137. data/examples/bloopsaphone/working/b2.rb +0 -36
  138. data/examples/bloopsaphone/working/bloops_test.rb +0 -41
  139. data/examples/bloopsaphone/working/bloopsaphone_theme_song_by_why.rb +0 -31
  140. data/examples/bloopsaphone/working/feepogram.rb +0 -67
  141. data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +0 -14
  142. data/examples/bloopsaphone/working/tune_cheeky_drat.rb +0 -210
  143. data/examples/button.rb +0 -10
  144. data/examples/button_alert.rb +0 -6
  145. data/examples/button_go_away.rb +0 -6
  146. data/examples/button_with_position_and_size.rb +0 -7
  147. data/examples/coffee.rb +0 -14
  148. data/examples/download.rb +0 -5
  149. data/examples/download_and_show_image.rb +0 -28
  150. data/examples/edit_box.rb +0 -8
  151. data/examples/edit_line.rb +0 -8
  152. data/examples/fill.rb +0 -25
  153. data/examples/flow.rb +0 -11
  154. data/examples/fonts.rb +0 -6
  155. data/examples/gen.rb +0 -140
  156. data/examples/get_headers.rb +0 -10
  157. data/examples/hello_world.rb +0 -3
  158. data/examples/highlander.rb +0 -87
  159. data/examples/image/clickable_image.rb +0 -5
  160. data/examples/image/image.rb +0 -3
  161. data/examples/image/image_size.rb +0 -7
  162. data/examples/image/image_with_position_and_size.rb +0 -3
  163. data/examples/info.rb +0 -9
  164. data/examples/legacy/not_checked/expert/colours.rb +0 -105
  165. data/examples/legacy/not_checked/expert/curve-animation.rb +0 -31
  166. data/examples/legacy/not_checked/expert/curve-control-point.rb +0 -51
  167. data/examples/legacy/not_checked/expert/custom-list-box.rb +0 -53
  168. data/examples/legacy/not_checked/expert/definr.rb +0 -23
  169. data/examples/legacy/not_checked/expert/funnies.rb +0 -56
  170. data/examples/legacy/not_checked/expert/minesweeper.rb +0 -267
  171. data/examples/legacy/not_checked/expert/othello.rb +0 -318
  172. data/examples/legacy/not_checked/expert/pong.rb +0 -62
  173. data/examples/legacy/not_checked/expert/tankspank.rb +0 -385
  174. data/examples/legacy/not_checked/expert/tooltips.rb +0 -45
  175. data/examples/legacy/not_checked/expert/url.rb +0 -37
  176. data/examples/legacy/not_checked/expert/video-player.rb +0 -256
  177. data/examples/legacy/not_checked/good/_why-stories.rb +0 -44
  178. data/examples/legacy/not_checked/good/_why-stories.yaml +0 -387
  179. data/examples/legacy/not_checked/good/arc.rb +0 -37
  180. data/examples/legacy/not_checked/good/cardflip.rb +0 -141
  181. data/examples/legacy/not_checked/good/clock.rb +0 -51
  182. data/examples/legacy/not_checked/good/console.rb +0 -21
  183. data/examples/legacy/not_checked/good/follow.rb +0 -26
  184. data/examples/legacy/not_checked/good/image-rotate.rb +0 -14
  185. data/examples/legacy/not_checked/good/paris.svg +0 -7236
  186. data/examples/legacy/not_checked/good/path-animation.rb +0 -46
  187. data/examples/legacy/not_checked/good/plots.rb +0 -100
  188. data/examples/legacy/not_checked/good/reminder.rb +0 -174
  189. data/examples/legacy/not_checked/good/svgview.rb +0 -113
  190. data/examples/legacy/not_checked/good/vjot.rb +0 -56
  191. data/examples/legacy/not_checked/shoes-contrib/.gitignore +0 -2
  192. data/examples/legacy/not_checked/shoes-contrib/README.md +0 -34
  193. data/examples/legacy/not_checked/shoes-contrib/animation/animate-ovals.rb +0 -21
  194. data/examples/legacy/not_checked/shoes-contrib/animation/flowers.rb +0 -59
  195. data/examples/legacy/not_checked/shoes-contrib/animation/happy-trails.rb +0 -31
  196. data/examples/legacy/not_checked/shoes-contrib/animation/mice-satellites.rb +0 -27
  197. data/examples/legacy/not_checked/shoes-contrib/animation/oval-motion.rb +0 -12
  198. data/examples/legacy/not_checked/shoes-contrib/animation/pink-bubbles.rb +0 -34
  199. data/examples/legacy/not_checked/shoes-contrib/animation/pulsate.rb +0 -18
  200. data/examples/legacy/not_checked/shoes-contrib/animation/rotating-star.rb +0 -18
  201. data/examples/legacy/not_checked/shoes-contrib/app/download-and-save.rb +0 -11
  202. data/examples/legacy/not_checked/shoes-contrib/app/download.rb +0 -10
  203. data/examples/legacy/not_checked/shoes-contrib/app/get-google.rb +0 -11
  204. data/examples/legacy/not_checked/shoes-contrib/app/mouse-detection.rb +0 -7
  205. data/examples/legacy/not_checked/shoes-contrib/app/resizeable-false.rb +0 -6
  206. data/examples/legacy/not_checked/shoes-contrib/art/bubble-bullseye.rb +0 -23
  207. data/examples/legacy/not_checked/shoes-contrib/art/faded.rb +0 -17
  208. data/examples/legacy/not_checked/shoes-contrib/art/fill-oval.rb +0 -5
  209. data/examples/legacy/not_checked/shoes-contrib/art/mask.rb +0 -15
  210. data/examples/legacy/not_checked/shoes-contrib/art/oval-gradient.rb +0 -6
  211. data/examples/legacy/not_checked/shoes-contrib/art/star-gradient.rb +0 -4
  212. data/examples/legacy/not_checked/shoes-contrib/basic/basic-edit-box.rb +0 -8
  213. data/examples/legacy/not_checked/shoes-contrib/basic/basic-new-window.rb +0 -8
  214. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-image.rb +0 -8
  215. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-shape.rb +0 -8
  216. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval.rb +0 -6
  217. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.rb +0 -43
  218. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +0 -387
  219. data/examples/legacy/not_checked/shoes-contrib/basic/clock.rb +0 -6
  220. data/examples/legacy/not_checked/shoes-contrib/basic/edit-stack +0 -14
  221. data/examples/legacy/not_checked/shoes-contrib/basic/gradient-shoes.rb +0 -7
  222. data/examples/legacy/not_checked/shoes-contrib/basic/list_box-shape-report.rb +0 -19
  223. data/examples/legacy/not_checked/shoes-contrib/basic/rect-arrow.rb +0 -7
  224. data/examples/legacy/not_checked/shoes-contrib/basic/scribble.rb +0 -8
  225. data/examples/legacy/not_checked/shoes-contrib/basic/search.rb +0 -32
  226. data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +0 -16
  227. data/examples/legacy/not_checked/shoes-contrib/basic/url-shoes-subclassing.rb +0 -24
  228. data/examples/legacy/not_checked/shoes-contrib/browser.rb +0 -21
  229. data/examples/legacy/not_checked/shoes-contrib/elements/background-column.rb +0 -3
  230. data/examples/legacy/not_checked/shoes-contrib/elements/background.rb +0 -4
  231. data/examples/legacy/not_checked/shoes-contrib/elements/basic-fps.rb +0 -6
  232. data/examples/legacy/not_checked/shoes-contrib/elements/border-cat.rb +0 -6
  233. data/examples/legacy/not_checked/shoes-contrib/elements/button-block.rb +0 -8
  234. data/examples/legacy/not_checked/shoes-contrib/elements/check-mate.rb +0 -15
  235. data/examples/legacy/not_checked/shoes-contrib/elements/common-styles.rb +0 -13
  236. data/examples/legacy/not_checked/shoes-contrib/elements/displace-animation.rb +0 -13
  237. data/examples/legacy/not_checked/shoes-contrib/elements/edit_box-character-count.rb +0 -7
  238. data/examples/legacy/not_checked/shoes-contrib/elements/edit_line-character-count.rb +0 -7
  239. data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +0 -3
  240. data/examples/legacy/not_checked/shoes-contrib/elements/list_box-select-class.rb +0 -13
  241. data/examples/legacy/not_checked/shoes-contrib/elements/list_box.rb +0 -6
  242. data/examples/legacy/not_checked/shoes-contrib/elements/move-flow-animate.rb +0 -13
  243. data/examples/legacy/not_checked/shoes-contrib/elements/phat-button.rb +0 -7
  244. data/examples/legacy/not_checked/shoes-contrib/elements/popup.rb +0 -7
  245. data/examples/legacy/not_checked/shoes-contrib/elements/progress-bar.rb +0 -10
  246. data/examples/legacy/not_checked/shoes-contrib/elements/radio-dreamcast-favs.rb +0 -17
  247. data/examples/legacy/not_checked/shoes-contrib/elements/timer.rb +0 -6
  248. data/examples/legacy/not_checked/shoes-contrib/elements/width-introspec.rb +0 -8
  249. data/examples/legacy/not_checked/shoes-contrib/events/background-hover.rb +0 -11
  250. data/examples/legacy/not_checked/shoes-contrib/events/motion-detect.rb +0 -9
  251. data/examples/legacy/not_checked/shoes-contrib/events/pressed-key.rb +0 -6
  252. data/examples/legacy/not_checked/shoes-contrib/expert/expert-funnies.rb +0 -51
  253. data/examples/legacy/not_checked/shoes-contrib/expert/expert-irb.rb +0 -112
  254. data/examples/legacy/not_checked/shoes-contrib/expert/expert-othello.rb +0 -319
  255. data/examples/legacy/not_checked/shoes-contrib/good/good-arc.rb +0 -37
  256. data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +0 -51
  257. data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +0 -26
  258. data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +0 -174
  259. data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +0 -56
  260. data/examples/legacy/not_checked/shoes-contrib/kernel/ask.rb +0 -4
  261. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_color.rb +0 -4
  262. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_open_file.rb +0 -4
  263. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_save_file.rb +0 -7
  264. data/examples/legacy/not_checked/shoes-contrib/kernel/confirm.rb +0 -3
  265. data/examples/legacy/not_checked/shoes-contrib/kernel/debug.rb +0 -4
  266. data/examples/legacy/not_checked/shoes-contrib/kernel/exit.rb +0 -5
  267. data/examples/legacy/not_checked/shoes-contrib/kernel/font.rb +0 -5
  268. data/examples/legacy/not_checked/shoes-contrib/kernel/fonts.rb +0 -3
  269. data/examples/legacy/not_checked/shoes-contrib/manipulation/append-slot.rb +0 -9
  270. data/examples/legacy/not_checked/shoes-contrib/manipulation/clear-slot.rb +0 -6
  271. data/examples/legacy/not_checked/shoes-contrib/manipulation/prepend-slot.rb +0 -6
  272. data/examples/legacy/not_checked/shoes-contrib/manipulation/roll.rb +0 -17
  273. data/examples/legacy/not_checked/shoes-contrib/position/gutter-margin.rb +0 -5
  274. data/examples/legacy/not_checked/shoes-contrib/position/stack-width.rb +0 -3
  275. data/examples/legacy/not_checked/shoes-contrib/simple/simple-accordion.rb +0 -75
  276. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-shapes.rb +0 -17
  277. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-text.rb +0 -13
  278. data/examples/legacy/not_checked/shoes-contrib/simple/simple-arc.rb +0 -23
  279. data/examples/legacy/not_checked/shoes-contrib/simple/simple-bounce.rb +0 -24
  280. data/examples/legacy/not_checked/shoes-contrib/simple/simple-calc.rb +0 -70
  281. data/examples/legacy/not_checked/shoes-contrib/simple/simple-chipmunk.rb +0 -26
  282. data/examples/legacy/not_checked/shoes-contrib/simple/simple-control-sizes.rb +0 -24
  283. data/examples/legacy/not_checked/shoes-contrib/simple/simple-curve.rb +0 -26
  284. data/examples/legacy/not_checked/shoes-contrib/simple/simple-dialogs.rb +0 -29
  285. data/examples/legacy/not_checked/shoes-contrib/simple/simple-downloader.rb +0 -27
  286. data/examples/legacy/not_checked/shoes-contrib/simple/simple-draw.rb +0 -13
  287. data/examples/legacy/not_checked/shoes-contrib/simple/simple-editor.rb +0 -28
  288. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.rb +0 -28
  289. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.shy +0 -0
  290. data/examples/legacy/not_checked/shoes-contrib/simple/simple-mask.rb +0 -21
  291. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu.rb +0 -31
  292. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu1.rb +0 -35
  293. data/examples/legacy/not_checked/shoes-contrib/simple/simple-rubygems.rb +0 -29
  294. data/examples/legacy/not_checked/shoes-contrib/simple/simple-slide.rb +0 -45
  295. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sphere.rb +0 -28
  296. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sqlite3.rb +0 -13
  297. data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +0 -13
  298. data/examples/legacy/not_checked/shoes-contrib/simple/simple-video.rb +0 -13
  299. data/examples/legacy/not_checked/shoes-contrib/styles/alignment.rb +0 -4
  300. data/examples/legacy/not_checked/shoes-contrib/styles/attachment.rb +0 -5
  301. data/examples/legacy/not_checked/shoes-contrib/styles/emphasis.rb +0 -3
  302. data/examples/legacy/not_checked/shoes-contrib/styles/gradient-angle.rb +0 -3
  303. data/examples/legacy/not_checked/shoes-contrib/styles/para-methods.rb +0 -5
  304. data/examples/legacy/not_checked/shoes-contrib/styles/para-red-underlined.rb +0 -3
  305. data/examples/legacy/not_checked/shoes-contrib/styles/para-style-method.rb +0 -4
  306. data/examples/legacy/not_checked/shoes-dep-samples/expert-game-of-life.rb +0 -243
  307. data/examples/legacy/not_checked/shoes-dep-samples/expert-othello.rb +0 -319
  308. data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +0 -51
  309. data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +0 -26
  310. data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +0 -174
  311. data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +0 -56
  312. data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +0 -75
  313. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +0 -17
  314. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +0 -13
  315. data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +0 -23
  316. data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +0 -24
  317. data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +0 -70
  318. data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +0 -26
  319. data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +0 -24
  320. data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +0 -26
  321. data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +0 -29
  322. data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +0 -13
  323. data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +0 -28
  324. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +0 -28
  325. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
  326. data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +0 -21
  327. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +0 -31
  328. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +0 -35
  329. data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +0 -29
  330. data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +0 -45
  331. data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +0 -28
  332. data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +0 -13
  333. data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +0 -13
  334. data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +0 -13
  335. data/examples/legacy/not_checked/shoes3-tests/AnemicCinema1926marcelDuchampCut.mp4 +0 -0
  336. data/examples/legacy/not_checked/shoes3-tests/button/button.rb +0 -53
  337. data/examples/legacy/not_checked/shoes3-tests/cache/cache.rb +0 -41
  338. data/examples/legacy/not_checked/shoes3-tests/combo/combo.rb +0 -24
  339. data/examples/legacy/not_checked/shoes3-tests/curl/bare.rb +0 -34
  340. data/examples/legacy/not_checked/shoes3-tests/curl/downloader.rb +0 -40
  341. data/examples/legacy/not_checked/shoes3-tests/curl/m1.rb +0 -11
  342. data/examples/legacy/not_checked/shoes3-tests/curl/m2.rb +0 -12
  343. data/examples/legacy/not_checked/shoes3-tests/curl/m3.rb +0 -11
  344. data/examples/legacy/not_checked/shoes3-tests/curl/m4.rb +0 -5
  345. data/examples/legacy/not_checked/shoes3-tests/curl/typ.rb +0 -30
  346. data/examples/legacy/not_checked/shoes3-tests/cursor/c1.rb +0 -21
  347. data/examples/legacy/not_checked/shoes3-tests/decoration.rb +0 -14
  348. data/examples/legacy/not_checked/shoes3-tests/dialogs/ask.rb +0 -6
  349. data/examples/legacy/not_checked/shoes3-tests/dialogs/confirm.rb +0 -6
  350. data/examples/legacy/not_checked/shoes3-tests/editbox/editbox.rb +0 -36
  351. data/examples/legacy/not_checked/shoes3-tests/editline/editline.rb +0 -27
  352. data/examples/legacy/not_checked/shoes3-tests/events/button.rb +0 -32
  353. data/examples/legacy/not_checked/shoes3-tests/events/button.yaml +0 -40
  354. data/examples/legacy/not_checked/shoes3-tests/events/capture.rb +0 -57
  355. data/examples/legacy/not_checked/shoes3-tests/events/chipmunk.yaml +0 -47
  356. data/examples/legacy/not_checked/shoes3-tests/events/event0.rb +0 -8
  357. data/examples/legacy/not_checked/shoes3-tests/events/event1.rb +0 -51
  358. data/examples/legacy/not_checked/shoes3-tests/events/event1.yaml +0 -26
  359. data/examples/legacy/not_checked/shoes3-tests/events/event2.rb +0 -46
  360. data/examples/legacy/not_checked/shoes3-tests/events/event3.rb +0 -44
  361. data/examples/legacy/not_checked/shoes3-tests/events/event4.rb +0 -65
  362. data/examples/legacy/not_checked/shoes3-tests/events/event5.rb +0 -17
  363. data/examples/legacy/not_checked/shoes3-tests/events/event6.rb +0 -51
  364. data/examples/legacy/not_checked/shoes3-tests/events/replay.rb +0 -60
  365. data/examples/legacy/not_checked/shoes3-tests/gapp/fullscreen.rb +0 -38
  366. data/examples/legacy/not_checked/shoes3-tests/gapp/icon.rb +0 -56
  367. data/examples/legacy/not_checked/shoes3-tests/gapp/mon1.rb +0 -46
  368. data/examples/legacy/not_checked/shoes3-tests/gapp/settings1.rb +0 -22
  369. data/examples/legacy/not_checked/shoes3-tests/gapp/title1.rb +0 -34
  370. data/examples/legacy/not_checked/shoes3-tests/indian.m4a +0 -0
  371. data/examples/legacy/not_checked/shoes3-tests/menus/event.rb +0 -33
  372. data/examples/legacy/not_checked/shoes3-tests/menus/menu1.rb +0 -8
  373. data/examples/legacy/not_checked/shoes3-tests/menus/menu2.rb +0 -25
  374. data/examples/legacy/not_checked/shoes3-tests/menus/menu3.rb +0 -103
  375. data/examples/legacy/not_checked/shoes3-tests/menus/menu4.rb +0 -41
  376. data/examples/legacy/not_checked/shoes3-tests/menus/tests.txt +0 -42
  377. data/examples/legacy/not_checked/shoes3-tests/opacity.rb +0 -13
  378. data/examples/legacy/not_checked/shoes3-tests/plot/^IRX.R +0 -5219
  379. data/examples/legacy/not_checked/shoes3-tests/plot/^SPX +0 -5219
  380. data/examples/legacy/not_checked/shoes3-tests/plot/cstest.rb +0 -51
  381. data/examples/legacy/not_checked/shoes3-tests/plot/gr1.rb +0 -73
  382. data/examples/legacy/not_checked/shoes3-tests/plot/gr2.rb +0 -40
  383. data/examples/legacy/not_checked/shoes3-tests/plot/gr3.rb +0 -47
  384. data/examples/legacy/not_checked/shoes3-tests/plot/gr4.rb +0 -35
  385. data/examples/legacy/not_checked/shoes3-tests/plot/gr5.rb +0 -31
  386. data/examples/legacy/not_checked/shoes3-tests/plot/gr6.rb +0 -35
  387. data/examples/legacy/not_checked/shoes3-tests/plot/gr7.rb +0 -37
  388. data/examples/legacy/not_checked/shoes3-tests/plot/grcsv.rb +0 -219
  389. data/examples/legacy/not_checked/shoes3-tests/plot/manual.rb +0 -40
  390. data/examples/legacy/not_checked/shoes3-tests/progress/progress.rb +0 -29
  391. data/examples/legacy/not_checked/shoes3-tests/radio/clear.rb +0 -20
  392. data/examples/legacy/not_checked/shoes3-tests/radio/group.rb +0 -18
  393. data/examples/legacy/not_checked/shoes3-tests/radio/multiple.rb +0 -32
  394. data/examples/legacy/not_checked/shoes3-tests/radio/nogroup.rb +0 -9
  395. data/examples/legacy/not_checked/shoes3-tests/simpletest.svg +0 -14
  396. data/examples/legacy/not_checked/shoes3-tests/spinner.rb +0 -15
  397. data/examples/legacy/not_checked/shoes3-tests/svg.rb +0 -208
  398. data/examples/legacy/not_checked/shoes3-tests/switch/switch.rb +0 -28
  399. data/examples/legacy/not_checked/shoes3-tests/systray/back.rb +0 -20
  400. data/examples/legacy/not_checked/shoes3-tests/systray/note.rb +0 -17
  401. data/examples/legacy/not_checked/shoes3-tests/terminal/cursor.rb +0 -27
  402. data/examples/legacy/not_checked/shoes3-tests/terminal/ed.rb +0 -65
  403. data/examples/legacy/not_checked/shoes3-tests/terminal/el.rb +0 -50
  404. data/examples/legacy/not_checked/shoes3-tests/terminal/logattr.rb +0 -31
  405. data/examples/legacy/not_checked/shoes3-tests/tests_color.rb +0 -138
  406. data/examples/legacy/not_checked/shoes3-tests/tests_svg.rb +0 -228
  407. data/examples/legacy/not_checked/shoes3-tests/tests_video_vlc.rb +0 -186
  408. data/examples/legacy/not_checked/shoes3-tests/tooltips.rb +0 -20
  409. data/examples/legacy/not_checked/shoes3-tests/video_vlc.rb +0 -242
  410. data/examples/legacy/not_checked/shoes3-tests/wheel/wheel1.rb +0 -21
  411. data/examples/legacy/not_checked/simple/accordion.rb +0 -81
  412. data/examples/legacy/not_checked/simple/anim-shapes.rb +0 -17
  413. data/examples/legacy/not_checked/simple/anim-text.rb +0 -13
  414. data/examples/legacy/not_checked/simple/arc.rb +0 -23
  415. data/examples/legacy/not_checked/simple/bounce.rb +0 -24
  416. data/examples/legacy/not_checked/simple/chipmunk.rb +0 -26
  417. data/examples/legacy/not_checked/simple/control-sizes.rb +0 -24
  418. data/examples/legacy/not_checked/simple/curve-control-points.rb +0 -24
  419. data/examples/legacy/not_checked/simple/curve.rb +0 -26
  420. data/examples/legacy/not_checked/simple/dialogs.rb +0 -29
  421. data/examples/legacy/not_checked/simple/downloader.rb +0 -40
  422. data/examples/legacy/not_checked/simple/downloader1.rb +0 -31
  423. data/examples/legacy/not_checked/simple/draw.rb +0 -13
  424. data/examples/legacy/not_checked/simple/editor.rb +0 -28
  425. data/examples/legacy/not_checked/simple/form.rb +0 -30
  426. data/examples/legacy/not_checked/simple/image.rb +0 -21
  427. data/examples/legacy/not_checked/simple/info.rb +0 -78
  428. data/examples/legacy/not_checked/simple/mask.rb +0 -21
  429. data/examples/legacy/not_checked/simple/mask2.rb +0 -27
  430. data/examples/legacy/not_checked/simple/menu.rb +0 -31
  431. data/examples/legacy/not_checked/simple/menu1.rb +0 -35
  432. data/examples/legacy/not_checked/simple/slide.rb +0 -45
  433. data/examples/legacy/not_checked/simple/sphere.rb +0 -28
  434. data/examples/legacy/not_checked/superleg.rb +0 -244
  435. data/examples/legacy/working/shoes-contrib/basic/a-poem.rb +0 -24
  436. data/examples/legacy/working/shoes-contrib/basic/basic-blocks-instances.rb +0 -7
  437. data/examples/legacy/working/shoes-contrib/basic/basic-blocks.rb +0 -7
  438. data/examples/legacy/working/shoes-contrib/basic/basic-slot.rb +0 -8
  439. data/examples/legacy/working/shoes-contrib/basic/intro.rb +0 -20
  440. data/examples/legacy/working/shoes-contrib/basic/two-column.rb +0 -12
  441. data/examples/legacy/working/shoes-contrib/elements/edit_box.rb +0 -6
  442. data/examples/legacy/working/shoes-contrib/kernel/alert.rb +0 -3
  443. data/examples/legacy/working/simple/calc.rb +0 -71
  444. data/examples/legacy/working/simple/sqlite3.rb +0 -27
  445. data/examples/legacy/working/simple/timer.rb +0 -13
  446. data/examples/line.rb +0 -5
  447. data/examples/link.rb +0 -20
  448. data/examples/list_box.rb +0 -8
  449. data/examples/local_fonts.rb +0 -4
  450. data/examples/local_images.rb +0 -4
  451. data/examples/motion_events.rb +0 -20
  452. data/examples/para/collection_of_arguments.rb +0 -9
  453. data/examples/para/hello_world.rb +0 -5
  454. data/examples/para/hide_and_show.rb +0 -9
  455. data/examples/para/rainbow.rb +0 -11
  456. data/examples/para/rainbow_2.rb +0 -11
  457. data/examples/para/sizes.rb +0 -11
  458. data/examples/para/sizes_2.rb +0 -12
  459. data/examples/para/strong.rb +0 -3
  460. data/examples/para_text_widgets.rb +0 -4
  461. data/examples/parse_xl_funnies.rb +0 -58
  462. data/examples/pirate.png +0 -0
  463. data/examples/raw_flow.rb +0 -11
  464. data/examples/ruby_racer.rb +0 -50
  465. data/examples/selfitude.rb +0 -18
  466. data/examples/shapes/arc.rb +0 -8
  467. data/examples/shapes/shapes.rb +0 -8
  468. data/examples/shapes/shapes_fill.rb +0 -10
  469. data/examples/shapes/star.rb +0 -5
  470. data/examples/shoes_school.rb +0 -66
  471. data/examples/shoes_splorer.rb +0 -150
  472. data/examples/simple_slides.rb +0 -73
  473. data/examples/skip_ci/parrot.rb +0 -22
  474. data/examples/skip_ci/say.rb +0 -20
  475. data/examples/sleepless.rb +0 -26
  476. data/examples/slots.rb +0 -10
  477. data/examples/spacing.rb +0 -18
  478. data/examples/span.rb +0 -6
  479. data/examples/stack/background.rb +0 -35
  480. data/examples/stack/border.rb +0 -11
  481. data/examples/stack/gradients.rb +0 -6
  482. data/examples/stack/raw_stack.rb +0 -8
  483. data/examples/stack/stack.rb +0 -27
  484. data/examples/text_change.rb +0 -4
  485. data/examples/text_sizes.rb +0 -10
  486. data/examples/timmy.rb +0 -109
  487. data/examples/title_and_resize.rb +0 -3
  488. data/examples/video.rb +0 -10
  489. data/exe/scarpe +0 -107
  490. data/fonts/Pacifico.ttf +0 -0
  491. data/lib/scarpe/alert.rb +0 -19
  492. data/lib/scarpe/arc.rb +0 -49
  493. data/lib/scarpe/base64.rb +0 -27
  494. data/lib/scarpe/button.rb +0 -35
  495. data/lib/scarpe/cats_cradle.rb +0 -255
  496. data/lib/scarpe/fill.rb +0 -23
  497. data/lib/scarpe/flow.rb +0 -18
  498. data/lib/scarpe/font.rb +0 -14
  499. data/lib/scarpe/glibui/README.md +0 -34
  500. data/lib/scarpe/glibui/alert.rb +0 -65
  501. data/lib/scarpe/glibui/app.rb +0 -27
  502. data/lib/scarpe/glibui/background.rb +0 -18
  503. data/lib/scarpe/glibui/border.rb +0 -22
  504. data/lib/scarpe/glibui/button.rb +0 -38
  505. data/lib/scarpe/glibui/dimensions.rb +0 -22
  506. data/lib/scarpe/glibui/document_root.rb +0 -33
  507. data/lib/scarpe/glibui/edit_box.rb +0 -44
  508. data/lib/scarpe/glibui/edit_line.rb +0 -43
  509. data/lib/scarpe/glibui/flow.rb +0 -33
  510. data/lib/scarpe/glibui/html.rb +0 -77
  511. data/lib/scarpe/glibui/image.rb +0 -36
  512. data/lib/scarpe/glibui/link.rb +0 -29
  513. data/lib/scarpe/glibui/local_display.rb +0 -62
  514. data/lib/scarpe/glibui/para.rb +0 -84
  515. data/lib/scarpe/glibui/spacing.rb +0 -41
  516. data/lib/scarpe/glibui/stack.rb +0 -33
  517. data/lib/scarpe/glibui/text_widget.rb +0 -30
  518. data/lib/scarpe/glibui/widget.rb +0 -81
  519. data/lib/scarpe/glibui.rb +0 -29
  520. data/lib/scarpe/libui/alert.rb +0 -9
  521. data/lib/scarpe/libui/button.rb +0 -18
  522. data/lib/scarpe/libui/colors.rb +0 -157
  523. data/lib/scarpe/libui/core.rb +0 -66
  524. data/lib/scarpe/libui/flow.rb +0 -16
  525. data/lib/scarpe/libui/libui.rb +0 -45
  526. data/lib/scarpe/libui/notepad.md +0 -26
  527. data/lib/scarpe/libui/para.rb +0 -154
  528. data/lib/scarpe/libui/stack.rb +0 -34
  529. data/lib/scarpe/line.rb +0 -25
  530. data/lib/scarpe/link.rb +0 -25
  531. data/lib/scarpe/list_box.rb +0 -25
  532. data/lib/scarpe/logger.rb +0 -159
  533. data/lib/scarpe/para.rb +0 -92
  534. data/lib/scarpe/promises.rb +0 -405
  535. data/lib/scarpe/shape.rb +0 -20
  536. data/lib/scarpe/slot.rb +0 -7
  537. data/lib/scarpe/spacing.rb +0 -9
  538. data/lib/scarpe/star.rb +0 -47
  539. data/lib/scarpe/subscription_item.rb +0 -60
  540. data/lib/scarpe/unit_test_helpers.rb +0 -236
  541. data/lib/scarpe/version.rb +0 -5
  542. data/lib/scarpe/video.rb +0 -15
  543. data/lib/scarpe/widgets.rb +0 -35
  544. data/lib/scarpe/wv/alert.rb +0 -65
  545. data/lib/scarpe/wv/app.rb +0 -104
  546. data/lib/scarpe/wv/arc.rb +0 -57
  547. data/lib/scarpe/wv/background.rb +0 -27
  548. data/lib/scarpe/wv/border.rb +0 -24
  549. data/lib/scarpe/wv/button.rb +0 -50
  550. data/lib/scarpe/wv/control_interface.rb +0 -147
  551. data/lib/scarpe/wv/control_interface_test.rb +0 -234
  552. data/lib/scarpe/wv/dimensions.rb +0 -22
  553. data/lib/scarpe/wv/document_root.rb +0 -8
  554. data/lib/scarpe/wv/edit_box.rb +0 -44
  555. data/lib/scarpe/wv/edit_line.rb +0 -43
  556. data/lib/scarpe/wv/fill.rb +0 -30
  557. data/lib/scarpe/wv/flow.rb +0 -24
  558. data/lib/scarpe/wv/font.rb +0 -36
  559. data/lib/scarpe/wv/html.rb +0 -108
  560. data/lib/scarpe/wv/image.rb +0 -41
  561. data/lib/scarpe/wv/line.rb +0 -38
  562. data/lib/scarpe/wv/link.rb +0 -29
  563. data/lib/scarpe/wv/list_box.rb +0 -50
  564. data/lib/scarpe/wv/para.rb +0 -90
  565. data/lib/scarpe/wv/shape.rb +0 -35
  566. data/lib/scarpe/wv/shape_helper.rb +0 -44
  567. data/lib/scarpe/wv/slot.rb +0 -81
  568. data/lib/scarpe/wv/spacing.rb +0 -41
  569. data/lib/scarpe/wv/span.rb +0 -66
  570. data/lib/scarpe/wv/stack.rb +0 -24
  571. data/lib/scarpe/wv/star.rb +0 -64
  572. data/lib/scarpe/wv/subscription_item.rb +0 -50
  573. data/lib/scarpe/wv/text_widget.rb +0 -30
  574. data/lib/scarpe/wv/video.rb +0 -42
  575. data/lib/scarpe/wv/web_wrangler.rb +0 -683
  576. data/lib/scarpe/wv/webview_local_display.rb +0 -73
  577. data/lib/scarpe/wv/webview_relay_display.rb +0 -185
  578. data/lib/scarpe/wv/widget.rb +0 -185
  579. data/lib/scarpe/wv/wv_display_worker.rb +0 -65
  580. data/lib/scarpe/wv.rb +0 -43
  581. data/lib/scarpe/wv_local.rb +0 -6
  582. data/lib/scarpe/wv_relay.rb +0 -6
  583. data/lib/scarpe.rb +0 -29
  584. data/lib/shoes/text_widget.rb +0 -52
  585. data/lib/shoes/widget.rb +0 -209
  586. data/logger/debug_web_wrangler.json +0 -4
  587. data/logger/scarpe_wv_test.json +0 -4
  588. data/scarpe-0.2.0.gem +0 -0
  589. data/scarpe.gemspec +0 -44
  590. data/scarpegen.rb +0 -193
  591. data/sig/scarpe.rbs +0 -4
  592. data/templates/basic_class_template.erb +0 -38
  593. data/templates/class_template_with_event_bind.erb +0 -27
  594. data/templates/class_template_with_shapes.erb +0 -43
  595. data/templates/example_template.erb +0 -3
  596. data/templates/module_template.erb +0 -12
  597. data/templates/webview_template.erb +0 -27
@@ -1,236 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "tempfile"
4
- require "json"
5
- require "fileutils"
6
-
7
- module Scarpe::Test; end
8
-
9
- # We want test failures set up once *total*, not per Minitest::Test. So an instance var
10
- # doesn't do it.
11
- ALREADY_SET_UP_LOGGED_TEST_FAILURES = { setup: false }
12
-
13
- # General helpers for general usage
14
- # Helpers here should *not* use Webview-specific functionality.
15
- # The intention is that these are helpers for various Scarpe display
16
- # services that do *not* use Webview.
17
- module Scarpe::Test::Helpers
18
- def with_tempfile(prefix, contents, dir: Dir.tmpdir)
19
- t = Tempfile.new(prefix, dir)
20
- t.write(contents)
21
- t.flush # Make sure the contents are written out
22
-
23
- yield(t.path)
24
- ensure
25
- t.close
26
- t.unlink
27
- end
28
-
29
- # Pass an array of arrays, where each array is of the form:
30
- # [prefix, contents, (optional)dir]
31
- #
32
- # I don't love inlining with_tempfile's contents into here.
33
- # But calling it iteratively or recursively was difficult
34
- # when I tried it the obvious ways.
35
- def with_tempfiles(tf_specs, &block)
36
- tempfiles = []
37
- tf_specs.each do |prefix, contents, dir|
38
- dir ||= Dir.tmpdir
39
- t = Tempfile.new(prefix, dir)
40
- tempfiles << t
41
- t.write(contents)
42
- t.flush # Make sure the contents are written out
43
- end
44
-
45
- args = tempfiles.map(&:path)
46
- yield(args)
47
- ensure
48
- tempfiles.each do |t|
49
- t.close
50
- t.unlink
51
- end
52
- end
53
-
54
- # Temporarily set env vars for the block of code inside
55
- def with_env_vars(envs)
56
- old_env = {}
57
- envs.each do |k, v|
58
- old_env[k] = ENV[k]
59
- ENV[k] = v
60
- end
61
- yield
62
- ensure
63
- old_env.each { |k, v| ENV[k] = v }
64
- end
65
-
66
- def assert_include(text, subtext, msg = nil)
67
- msg ||= "Expected #{text.inspect} to include #{subtext.inspect}"
68
- assert text.include?(subtext), msg
69
- end
70
-
71
- def assert_not_include(text, subtext, msg = nil)
72
- msg ||= "Expected #{text.inspect} not to include #{subtext.inspect}"
73
- assert !text.include?(subtext), msg
74
- end
75
-
76
- def assert_html(actual_html, expected_tag, **opts, &block)
77
- expected_html = Scarpe::HTML.render do |h|
78
- h.public_send(expected_tag, opts, &block)
79
- end
80
-
81
- assert_equal expected_html, actual_html
82
- end
83
-
84
- # This does a final return of results. If it gets called
85
- # multiple times, the test fails because that's not okay.
86
- def return_results(result_bool, msg, data = {})
87
- result_file = ENV["SCARPE_TEST_RESULTS"] || "./scarpe_results.txt"
88
-
89
- result_structs = [result_bool, msg, data.merge(test_metadata)]
90
- if File.exist?(result_file)
91
- results_returned = JSON.parse File.read(result_file)
92
- end
93
-
94
- # Multiple different sets of results is bad, even if both are passing.
95
- if results_returned && results_returned[0..1] != result_structs[0..1]
96
- # Just raising here doesn't reliably fail the test.
97
- # See: https://github.com/scarpe-team/scarpe/issues/212
98
- Scarpe::Logger.logger("Test Results").error("Writing multi-result failure file to #{result_file.inspect}!")
99
-
100
- new_res_data = { first_result: results_returned, second_result: result_structs }.merge(test_metadata)
101
- bad_result = [false, "Returned two sets of results!", new_res_data]
102
- File.write(result_file, JSON.pretty_generate(bad_result))
103
-
104
- return
105
- elsif results_returned
106
- Scarpe::Logger.logger("Test Results").warn "Returning identical results twice: #{results_returned.inspect}"
107
- end
108
-
109
- Scarpe::Logger.logger("Test Results").debug("Writing results file #{result_file.inspect} to disk!")
110
- File.write(result_file, JSON.pretty_generate(result_structs))
111
- end
112
- end
113
-
114
- # This test will save extensive logs in case of test failure.
115
- # Note that it defines setup/teardown methods. If you want
116
- # multiple setup/teardowns from multiple places to happen you
117
- # may need to explictly call (e.g. with logged_test_setup/teardown)
118
- # to ensure everything you want happens.
119
- module Scarpe::Test::LoggedTest
120
- LOGGER_DIR = File.expand_path("#{__dir__}/../../logger")
121
-
122
- def file_id
123
- "#{self.class.name}_#{self.name}"
124
- end
125
-
126
- def logged_test_setup
127
- # Make sure test failures will be saved at the end of the run.
128
- # Delete stale test failures and logging only the *first* time this is called.
129
- set_up_test_failures
130
-
131
- @normal_log_config = Scarpe::Logger.current_log_config
132
- Scarpe::Logger.configure_logger(log_config_for_test)
133
-
134
- Scarpe::Logger.logger("LoggedScarpeTest").info("Test: #{self.class.name}##{self.name}")
135
- end
136
-
137
- # If you include this module and don't override setup/teardown, everything will
138
- # work fine. But if you need more setup/teardown steps, you can do that too.
139
- def setup
140
- logged_test_setup
141
- end
142
-
143
- def logged_test_teardown
144
- # Restore previous log config
145
- Scarpe::Logger.configure_logger(@normal_log_config)
146
-
147
- if self.failure
148
- save_failure_logs
149
- else
150
- remove_unsaved_logs
151
- end
152
- end
153
-
154
- def teardown
155
- logged_test_teardown
156
- end
157
-
158
- def log_config_for_test
159
- {
160
- "default" => ["debug", "logger/test_failure_#{file_id}.log"],
161
-
162
- "WebviewAPI" => ["debug", "logger/test_failure_wv_api_#{file_id}.log"],
163
-
164
- "CatsCradle" => ["debug", "logger/test_failure_catscradle_#{file_id}.log"],
165
-
166
- "DisplayService" => ["debug", "logger/test_failure_events_#{file_id}.log"],
167
- "WV::RelayDisplayService" => ["debug", "logger/test_failure_events_#{file_id}.log"],
168
- "WV::WebviewDisplayService" => ["debug", "logger/test_failure_events_#{file_id}.log"],
169
- "WV::ControlInterface" => ["debug", "logger/test_failure_events_#{file_id}.log"],
170
- }
171
- end
172
-
173
- # This could be a lot simpler except I want to only update the file list in one place,
174
- # log_config_for_test(). Having a single spot should (I hope) make it a lot friendlier to
175
- # add more logfiles for different components, logged API objects, etc.
176
- def saved_log_files
177
- lc = log_config_for_test
178
- log_outfiles = lc.values.map { |_level, loc| loc }
179
- log_outfiles.select { |s| s.start_with?("logger/") }.map { |s| s.delete_prefix("logger/") }
180
- end
181
-
182
- def set_up_test_failures
183
- return if ALREADY_SET_UP_LOGGED_TEST_FAILURES[:setup]
184
-
185
- ALREADY_SET_UP_LOGGED_TEST_FAILURES[:setup] = true
186
- # Delete stale test failures, if any, before starting the first failure-logged test
187
- Dir["#{LOGGER_DIR}/test_failure*.log"].each { |fn| File.unlink(fn) }
188
-
189
- Minitest.after_run do
190
- # Print test failure notice to console
191
- unless Dir["#{LOGGER_DIR}/test_failure*.out.log"].empty?
192
- puts "Some tests have failed! See #{LOGGER_DIR}/test_failure*.out.log for test logs!"
193
- end
194
-
195
- # Remove un-saved test logs
196
- Dir["#{LOGGER_DIR}/test_failure*.log"].each do |f|
197
- next if f.include?(".out.log")
198
-
199
- File.unlink(f) if File.exist?(f)
200
- end
201
- end
202
- end
203
-
204
- def logfail_out_loc(filepath)
205
- # Add a .out prefix before final .log
206
- out_loc = filepath.gsub(%r{.log\Z}, ".out.log")
207
-
208
- if out_loc == filepath
209
- raise "Something is wrong! Could not figure out failure-log output path for #{filepath.inspect}!"
210
- end
211
-
212
- if File.exist?(out_loc)
213
- raise "Duplicate test file #{out_loc.inspect}? This file should *not* already exist!"
214
- end
215
-
216
- out_loc
217
- end
218
-
219
- def save_failure_logs
220
- saved_log_files.each do |log_file|
221
- full_loc = File.expand_path("#{LOGGER_DIR}/#{log_file}")
222
- # TODO: we'd like to skip 0-length logfiles. But also Logging doesn't flush. For now, ignore.
223
- next unless File.exist?(full_loc)
224
-
225
- FileUtils.mv full_loc, logfail_out_loc(full_loc)
226
- end
227
- end
228
-
229
- def remove_unsaved_logs
230
- Dir["#{LOGGER_DIR}/test_failure*.log"].each do |f|
231
- next if f.include?(".out.log") # Don't delete saved logs
232
-
233
- File.unlink(f)
234
- end
235
- end
236
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Scarpe
4
- VERSION = "0.2.1"
5
- end
data/lib/scarpe/video.rb DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Scarpe
4
- class Video < Shoes::Widget
5
- display_properties :url
6
-
7
- def initialize(url)
8
- @url = url
9
- super
10
- create_display_widget
11
- end
12
-
13
- # other methods
14
- end
15
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "colors"
4
- require "shoes/widget"
5
- require "shoes/app"
6
-
7
- require_relative "spacing"
8
- require_relative "background"
9
- require_relative "border"
10
- require_relative "star"
11
-
12
- require_relative "fill"
13
- require_relative "font"
14
-
15
- require_relative "slot"
16
- require_relative "para"
17
- require_relative "stack"
18
- require_relative "flow"
19
- require_relative "document_root"
20
- require_relative "download"
21
- require_relative "subscription_item"
22
- require_relative "button"
23
- require_relative "image"
24
- require_relative "edit_box"
25
- require_relative "edit_line"
26
- require_relative "list_box"
27
- require_relative "alert"
28
- require_relative "span"
29
- require_relative "shape"
30
- require_relative "arc"
31
-
32
- require "shoes/text_widget"
33
- require_relative "link"
34
- require_relative "line"
35
- require_relative "video"
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Scarpe
4
- class WebviewAlert < WebviewWidget
5
- def initialize(properties)
6
- super
7
-
8
- bind("click") do
9
- send_self_event(event_name: "click")
10
- end
11
- end
12
-
13
- def element
14
- onclick = handler_js_code("click")
15
-
16
- HTML.render do |h|
17
- h.div(id: html_id, style: overlay_style) do
18
- h.div(style: modal_style) do
19
- h.div(style: text_style) { @text }
20
- h.button(style: button_style, onclick: onclick) { "OK" }
21
- end
22
- end
23
- end
24
- end
25
-
26
- private
27
-
28
- def overlay_style
29
- {
30
- position: "fixed",
31
- top: "0",
32
- left: "0",
33
- width: "100%",
34
- height: "100%",
35
- overflow: "auto",
36
- "z-index": "1",
37
- background: "rgba(0,0,0,0.4)",
38
- display: "flex",
39
- "align-items": "center",
40
- "justify-content": "center",
41
- }
42
- end
43
-
44
- def modal_style
45
- {
46
- "min-width": "200px",
47
- "min-height": "50px",
48
- padding: "10px",
49
- display: "flex",
50
- background: "#fefefe",
51
- "flex-direction": "column",
52
- "justify-content": "space-between",
53
- "border-radius": "9px",
54
- }
55
- end
56
-
57
- def text_style
58
- {}
59
- end
60
-
61
- def button_style
62
- {}
63
- end
64
- end
65
- end
data/lib/scarpe/wv/app.rb DELETED
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Scarpe
4
- # Scarpe::WebviewApp must only be used from the main thread, due to GTK+ limitations.
5
- class WebviewApp < WebviewWidget
6
- attr_reader :debug
7
- attr_reader :control_interface
8
-
9
- attr_writer :shoes_linkable_id
10
-
11
- def initialize(properties)
12
- super
13
-
14
- # It's possible to provide a Ruby script by setting
15
- # SCARPE_TEST_CONTROL to its file path. This can
16
- # allow pre-setting test options or otherwise
17
- # performing additional actions not written into
18
- # the Shoes app itself.
19
- #
20
- # The control interface is what lets these files see
21
- # events, specify overrides and so on.
22
- @control_interface = ControlInterface.new
23
- if ENV["SCARPE_TEST_CONTROL"]
24
- require "scarpe/unit_test_helpers"
25
- @control_interface.instance_eval File.read(ENV["SCARPE_TEST_CONTROL"])
26
- end
27
-
28
- # TODO: rename @view
29
- @view = Scarpe::WebWrangler.new title: @title,
30
- width: @width,
31
- height: @height,
32
- resizable: @resizable,
33
- debug: @debug
34
-
35
- @callbacks = {}
36
-
37
- # The control interface has to exist to get callbacks like "override Scarpe app opts".
38
- # But the Scarpe App needs those options to be created. So we can't pass these to
39
- # ControlInterface.new.
40
- @control_interface.set_system_components app: self, doc_root: nil, wrangler: @view
41
-
42
- bind_shoes_event(event_name: "init") { init }
43
- bind_shoes_event(event_name: "run") { run }
44
- bind_shoes_event(event_name: "destroy") { destroy }
45
- end
46
-
47
- attr_writer :document_root
48
-
49
- def init
50
- scarpe_app = self
51
-
52
- @view.init_code("scarpeInit") do
53
- request_redraw!
54
- end
55
-
56
- @view.bind("scarpeHandler") do |*args|
57
- handle_callback(*args)
58
- end
59
-
60
- @view.bind("scarpeExit") do
61
- scarpe_app.destroy
62
- end
63
- end
64
-
65
- def run
66
- @control_interface.dispatch_event(:init)
67
-
68
- # This takes control of the main thread and never returns. And it *must* be run from
69
- # the main thread. And it stops any Ruby background threads.
70
- # That's totally cool and normal, right?
71
- @view.run
72
- end
73
-
74
- def destroy
75
- if @document_root || @view
76
- @control_interface.dispatch_event :shutdown
77
- end
78
- @document_root = nil
79
- if @view
80
- @view.destroy
81
- @view = nil
82
- end
83
- end
84
-
85
- # All JS callbacks to Scarpe widgets are dispatched
86
- # via this handler
87
- def handle_callback(name, *args)
88
- @callbacks[name].call(*args)
89
- end
90
-
91
- # Bind a Scarpe callback name; see handle_callback above.
92
- # See Scarpe::Widget for how the naming is set up
93
- def bind(name, &block)
94
- @callbacks[name] = block
95
- end
96
-
97
- def request_redraw!
98
- wrangler = WebviewDisplayService.instance.wrangler
99
- if wrangler.is_running
100
- wrangler.replace(@document_root.to_html)
101
- end
102
- end
103
- end
104
- end
data/lib/scarpe/wv/arc.rb DELETED
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "shape_helper"
4
-
5
- class Scarpe
6
- class WebviewArc < Scarpe::WebviewWidget
7
- include ShapeHelper
8
- def initialize(properties)
9
- super(properties)
10
- end
11
-
12
- def element(&block)
13
- HTML.render do |h|
14
- h.div(id: html_id, style: style) do
15
- h.svg(width: @width, height: @height) do
16
- h.path(d: arc_path)
17
- end
18
- block.call(h) if block_given?
19
- end
20
- end
21
- end
22
-
23
- private
24
-
25
- def style
26
- {
27
- left: "#{@left}px",
28
- top: "#{@top}px",
29
- width: "#{@width}px",
30
- height: "#{@height}px",
31
- }
32
- end
33
-
34
- def arc_path
35
- center_x = @width / 2
36
- center_y = @height / 2
37
- radius_x = @width / 2
38
- radius_y = @height / 2
39
- start_angle_degrees = radians_to_degrees(@angle1) % 360
40
- end_angle_degrees = radians_to_degrees(@angle2) % 360
41
- large_arc_flag = (end_angle_degrees - start_angle_degrees) % 360 > 180 ? 1 : 0
42
-
43
- "M#{center_x} #{center_y} L#{@width} #{center_y} " \
44
- "A#{radius_x} #{radius_y} 0 #{large_arc_flag} 0 " \
45
- "#{center_x + radius_x * Math.cos(degrees_to_radians(end_angle_degrees))} " \
46
- "#{center_y + radius_y * Math.sin(degrees_to_radians(end_angle_degrees))} Z"
47
- end
48
-
49
- def degrees_to_radians(degrees)
50
- degrees * Math::PI / 180
51
- end
52
-
53
- def radians_to_degrees(radians)
54
- radians * (180.0 / Math::PI)
55
- end
56
- end
57
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "scarpe/base64"
4
-
5
- class Scarpe
6
- module WebviewBackground
7
- include Base64
8
-
9
- def style
10
- styles = (super if defined?(super)) || {}
11
- return styles unless @background_color
12
-
13
- color = case @background_color
14
- when Array
15
- "rgba(#{@background_color.join(", ")})"
16
- when Range
17
- "linear-gradient(45deg, #{@background_color.first}, #{@background_color.last})"
18
- when ->(value) { File.exist?(value) }
19
- "url(data:image/png;base64,#{encode_file_to_base64(@background_color)})"
20
- else
21
- @background_color
22
- end
23
-
24
- styles.merge(background: color)
25
- end
26
- end
27
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Scarpe
4
- module WebviewBorder
5
- def style
6
- styles = (super if defined?(super)) || {}
7
- return styles unless @border_color
8
-
9
- border_color = case @border_color
10
- when Range
11
- { "border-image": "linear-gradient(45deg, #{@border_color.first}, #{@border_color.last})" }
12
- when Array
13
- { "border-color": "rgba(#{@border_color.join(", ")})" }
14
- else
15
- { "border-color": @border_color }
16
- end
17
- styles.merge(
18
- "border-style": "solid",
19
- "border-width": "#{@options[:strokewidth] || 1}px",
20
- "border-radius": "#{@options[:curve] || 0}px",
21
- ).merge(border_color)
22
- end
23
- end
24
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Scarpe
4
- class WebviewButton < WebviewWidget
5
- def initialize(properties)
6
- super
7
-
8
- # Bind to display-side handler for "click"
9
- bind("click") do
10
- # This will be sent to the bind_self_event in Button
11
- send_self_event(event_name: "click")
12
- end
13
- end
14
-
15
- def element
16
- HTML.render do |h|
17
- h.button(id: html_id, onclick: handler_js_code("click"), style: style) do
18
- @text
19
- end
20
- end
21
- end
22
-
23
- private
24
-
25
- def style
26
- styles = {}
27
- styles["background-color"] = @color
28
- styles["padding-top"] = @padding_top
29
- styles["padding-bottom"] = @padding_bottom
30
- styles[:color] = @text_color
31
- styles[:width] = Dimensions.length(@width) if @width
32
- styles[:height] = Dimensions.length(@height) if @height
33
- styles["font-size"] = @font_size
34
-
35
- styles[:top] = Dimensions.length(@top) if @top
36
- styles[:left] = Dimensions.length(@left) if @left
37
- styles[:position] = "absolute" if @top || @left
38
- styles["font-size"] = Dimensions.length(font_size) if @size
39
- styles["font-family"] = @font if @font
40
- styles["color"] = rgb_to_hex(@stroke) if @stroke
41
- styles
42
- end
43
-
44
- def font_size
45
- font_size = @size.is_a?(Symbol) ? SIZES[@size] : @size
46
-
47
- Dimensions.length(font_size)
48
- end
49
- end
50
- end