lacci 0.2.1 → 0.2.2

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 (570) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -2
  3. data/Gemfile.lock +72 -0
  4. data/Rakefile +1 -4
  5. data/lib/lacci/scarpe_cli.rb +70 -0
  6. data/lib/lacci/scarpe_core.rb +21 -0
  7. data/lib/lacci/version.rb +13 -0
  8. data/lib/shoes/app.rb +91 -14
  9. data/lib/{scarpe → shoes}/background.rb +1 -1
  10. data/lib/{scarpe → shoes}/border.rb +1 -1
  11. data/lib/{scarpe → shoes}/colors.rb +1 -1
  12. data/lib/shoes/constants.rb +5 -2
  13. data/lib/{scarpe → shoes}/display_service.rb +8 -9
  14. data/lib/{scarpe → shoes}/download.rb +5 -5
  15. data/lib/shoes/log.rb +71 -0
  16. data/lib/{scarpe → shoes}/spacing.rb +1 -1
  17. data/lib/shoes/widget.rb +28 -19
  18. data/lib/{scarpe → shoes/widgets}/alert.rb +2 -2
  19. data/lib/{scarpe → shoes/widgets}/arc.rb +6 -4
  20. data/lib/{scarpe → shoes/widgets}/button.rb +2 -2
  21. data/lib/shoes/widgets/check.rb +28 -0
  22. data/lib/{scarpe → shoes/widgets}/document_root.rb +3 -3
  23. data/lib/{scarpe → shoes/widgets}/edit_box.rb +1 -1
  24. data/lib/{scarpe → shoes/widgets}/edit_line.rb +1 -1
  25. data/lib/{scarpe → shoes/widgets}/flow.rb +6 -2
  26. data/lib/{scarpe → shoes/widgets}/font.rb +1 -1
  27. data/lib/{scarpe → shoes/widgets}/image.rb +2 -8
  28. data/lib/shoes/widgets/line.rb +18 -0
  29. data/lib/{scarpe → shoes/widgets}/link.rb +1 -1
  30. data/lib/{scarpe → shoes/widgets}/list_box.rb +1 -1
  31. data/lib/{scarpe → shoes/widgets}/para.rb +1 -25
  32. data/lib/shoes/widgets/radio.rb +35 -0
  33. data/lib/shoes/widgets/shape.rb +37 -0
  34. data/lib/shoes/widgets/slot.rb +75 -0
  35. data/lib/{scarpe → shoes/widgets}/span.rb +1 -1
  36. data/lib/{scarpe → shoes/widgets}/stack.rb +5 -1
  37. data/lib/{scarpe → shoes/widgets}/star.rb +5 -8
  38. data/lib/{scarpe → shoes/widgets}/subscription_item.rb +1 -1
  39. data/lib/shoes/{text_widget.rb → widgets/text_widget.rb} +2 -3
  40. data/lib/{scarpe → shoes/widgets}/video.rb +1 -1
  41. data/lib/shoes/widgets.rb +29 -0
  42. data/lib/shoes.rb +71 -9
  43. metadata +38 -555
  44. data/.rubocop.yml +0 -85
  45. data/.ruby-version +0 -1
  46. data/.vscode/extensions.json +0 -5
  47. data/.yardopts +0 -12
  48. data/CHANGELOG.md +0 -19
  49. data/CODE_OF_CONDUCT.md +0 -84
  50. data/CONTRIBUTING.md +0 -20
  51. data/LICENSE.txt +0 -21
  52. data/README.md +0 -178
  53. data/bin/console +0 -15
  54. data/bin/setup +0 -8
  55. data/dev.yml +0 -7
  56. data/docs/static/PKGBUILD +0 -47
  57. data/docs/static/Shoes.icns +0 -0
  58. data/docs/static/avatar.png +0 -0
  59. data/docs/static/code_highlighter.js +0 -188
  60. data/docs/static/code_highlighter_ruby.js +0 -26
  61. data/docs/static/icon-debug.png +0 -0
  62. data/docs/static/icon-error.png +0 -0
  63. data/docs/static/icon-info.png +0 -0
  64. data/docs/static/icon-warn.png +0 -0
  65. data/docs/static/listbox_button1.png +0 -0
  66. data/docs/static/listbox_button2.png +0 -0
  67. data/docs/static/man-app.png +0 -0
  68. data/docs/static/man-builds.png +0 -0
  69. data/docs/static/man-builds1.png +0 -0
  70. data/docs/static/man-editor-notepad.png +0 -0
  71. data/docs/static/man-editor-osx.png +0 -0
  72. data/docs/static/man-ele-background.png +0 -0
  73. data/docs/static/man-ele-border.png +0 -0
  74. data/docs/static/man-ele-button.png +0 -0
  75. data/docs/static/man-ele-check.png +0 -0
  76. data/docs/static/man-ele-editbox.png +0 -0
  77. data/docs/static/man-ele-editline.png +0 -0
  78. data/docs/static/man-ele-image.png +0 -0
  79. data/docs/static/man-ele-listbox.png +0 -0
  80. data/docs/static/man-ele-progress.png +0 -0
  81. data/docs/static/man-ele-radio.png +0 -0
  82. data/docs/static/man-ele-shape.png +0 -0
  83. data/docs/static/man-ele-textblock.png +0 -0
  84. data/docs/static/man-ele-video.png +0 -0
  85. data/docs/static/man-intro-dmg.png +0 -0
  86. data/docs/static/man-intro-exe.png +0 -0
  87. data/docs/static/man-look-tiger.png +0 -0
  88. data/docs/static/man-look-ubuntu.png +0 -0
  89. data/docs/static/man-look-vista.png +0 -0
  90. data/docs/static/man-run-osx.png +0 -0
  91. data/docs/static/man-run-vista.png +0 -0
  92. data/docs/static/man-run-xp.png +0 -0
  93. data/docs/static/man-shot1.png +0 -0
  94. data/docs/static/manual-en.txt +0 -3529
  95. data/docs/static/manual-ja.txt +0 -2829
  96. data/docs/static/manual.css +0 -171
  97. data/docs/static/manual.md +0 -3528
  98. data/docs/static/menu-corner1.png +0 -0
  99. data/docs/static/menu-corner2.png +0 -0
  100. data/docs/static/menu-gray.png +0 -0
  101. data/docs/static/menu-left.png +0 -0
  102. data/docs/static/menu-right.png +0 -0
  103. data/docs/static/menu-top.png +0 -0
  104. data/docs/static/shoes-dmg.jpg +0 -0
  105. data/docs/static/shoes-icon-blue.png +0 -0
  106. data/docs/static/shoes-icon.png +0 -0
  107. data/docs/static/shoes-manual-apps.gif +0 -0
  108. data/docs/static/shoes_main_window.png +0 -0
  109. data/docs/static/stripe.png +0 -0
  110. data/docs/static/stubs/blank.exe +0 -0
  111. data/docs/static/stubs/blank.hfz +0 -0
  112. data/docs/static/stubs/blank.run +0 -375
  113. data/docs/static/stubs/cocoa-install +0 -0
  114. data/docs/static/stubs/sh-install +0 -49
  115. data/docs/static/stubs/shoes-stub-inject.exe +0 -0
  116. data/docs/static/stubs/shoes-stub.exe +0 -0
  117. data/docs/static/tutor-back.png +0 -0
  118. data/docs/yard/catscradle.md +0 -44
  119. data/docs/yard/template/default/fulldoc/html/setup.rb +0 -13
  120. data/docs/yard/template/default/layout/html/setup.rb +0 -9
  121. data/examples/backdround_with_image.rb +0 -16
  122. data/examples/bloopsaphone/working/1901_by_Aanand_Prasad.rb +0 -478
  123. data/examples/bloopsaphone/working/b1.rb +0 -64
  124. data/examples/bloopsaphone/working/b2.rb +0 -36
  125. data/examples/bloopsaphone/working/bloops_test.rb +0 -41
  126. data/examples/bloopsaphone/working/bloopsaphone_theme_song_by_why.rb +0 -31
  127. data/examples/bloopsaphone/working/feepogram.rb +0 -67
  128. data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +0 -14
  129. data/examples/bloopsaphone/working/tune_cheeky_drat.rb +0 -210
  130. data/examples/button.rb +0 -10
  131. data/examples/button_alert.rb +0 -6
  132. data/examples/button_go_away.rb +0 -6
  133. data/examples/button_with_position_and_size.rb +0 -7
  134. data/examples/coffee.rb +0 -14
  135. data/examples/download.rb +0 -5
  136. data/examples/download_and_show_image.rb +0 -28
  137. data/examples/edit_box.rb +0 -8
  138. data/examples/edit_line.rb +0 -8
  139. data/examples/fill.rb +0 -25
  140. data/examples/flow.rb +0 -11
  141. data/examples/fonts.rb +0 -6
  142. data/examples/gen.rb +0 -140
  143. data/examples/get_headers.rb +0 -10
  144. data/examples/hello_world.rb +0 -3
  145. data/examples/highlander.rb +0 -87
  146. data/examples/image/clickable_image.rb +0 -5
  147. data/examples/image/image.rb +0 -3
  148. data/examples/image/image_size.rb +0 -7
  149. data/examples/image/image_with_position_and_size.rb +0 -3
  150. data/examples/info.rb +0 -9
  151. data/examples/legacy/not_checked/expert/colours.rb +0 -105
  152. data/examples/legacy/not_checked/expert/curve-animation.rb +0 -31
  153. data/examples/legacy/not_checked/expert/curve-control-point.rb +0 -51
  154. data/examples/legacy/not_checked/expert/custom-list-box.rb +0 -53
  155. data/examples/legacy/not_checked/expert/definr.rb +0 -23
  156. data/examples/legacy/not_checked/expert/funnies.rb +0 -56
  157. data/examples/legacy/not_checked/expert/minesweeper.rb +0 -267
  158. data/examples/legacy/not_checked/expert/othello.rb +0 -318
  159. data/examples/legacy/not_checked/expert/pong.rb +0 -62
  160. data/examples/legacy/not_checked/expert/tankspank.rb +0 -385
  161. data/examples/legacy/not_checked/expert/tooltips.rb +0 -45
  162. data/examples/legacy/not_checked/expert/url.rb +0 -37
  163. data/examples/legacy/not_checked/expert/video-player.rb +0 -256
  164. data/examples/legacy/not_checked/good/_why-stories.rb +0 -44
  165. data/examples/legacy/not_checked/good/_why-stories.yaml +0 -387
  166. data/examples/legacy/not_checked/good/arc.rb +0 -37
  167. data/examples/legacy/not_checked/good/cardflip.rb +0 -141
  168. data/examples/legacy/not_checked/good/clock.rb +0 -51
  169. data/examples/legacy/not_checked/good/console.rb +0 -21
  170. data/examples/legacy/not_checked/good/follow.rb +0 -26
  171. data/examples/legacy/not_checked/good/image-rotate.rb +0 -14
  172. data/examples/legacy/not_checked/good/paris.svg +0 -7236
  173. data/examples/legacy/not_checked/good/path-animation.rb +0 -46
  174. data/examples/legacy/not_checked/good/plots.rb +0 -100
  175. data/examples/legacy/not_checked/good/reminder.rb +0 -174
  176. data/examples/legacy/not_checked/good/svgview.rb +0 -113
  177. data/examples/legacy/not_checked/good/vjot.rb +0 -56
  178. data/examples/legacy/not_checked/shoes-contrib/.gitignore +0 -2
  179. data/examples/legacy/not_checked/shoes-contrib/README.md +0 -34
  180. data/examples/legacy/not_checked/shoes-contrib/animation/animate-ovals.rb +0 -21
  181. data/examples/legacy/not_checked/shoes-contrib/animation/flowers.rb +0 -59
  182. data/examples/legacy/not_checked/shoes-contrib/animation/happy-trails.rb +0 -31
  183. data/examples/legacy/not_checked/shoes-contrib/animation/mice-satellites.rb +0 -27
  184. data/examples/legacy/not_checked/shoes-contrib/animation/oval-motion.rb +0 -12
  185. data/examples/legacy/not_checked/shoes-contrib/animation/pink-bubbles.rb +0 -34
  186. data/examples/legacy/not_checked/shoes-contrib/animation/pulsate.rb +0 -18
  187. data/examples/legacy/not_checked/shoes-contrib/animation/rotating-star.rb +0 -18
  188. data/examples/legacy/not_checked/shoes-contrib/app/download-and-save.rb +0 -11
  189. data/examples/legacy/not_checked/shoes-contrib/app/download.rb +0 -10
  190. data/examples/legacy/not_checked/shoes-contrib/app/get-google.rb +0 -11
  191. data/examples/legacy/not_checked/shoes-contrib/app/mouse-detection.rb +0 -7
  192. data/examples/legacy/not_checked/shoes-contrib/app/resizeable-false.rb +0 -6
  193. data/examples/legacy/not_checked/shoes-contrib/art/bubble-bullseye.rb +0 -23
  194. data/examples/legacy/not_checked/shoes-contrib/art/faded.rb +0 -17
  195. data/examples/legacy/not_checked/shoes-contrib/art/fill-oval.rb +0 -5
  196. data/examples/legacy/not_checked/shoes-contrib/art/mask.rb +0 -15
  197. data/examples/legacy/not_checked/shoes-contrib/art/oval-gradient.rb +0 -6
  198. data/examples/legacy/not_checked/shoes-contrib/art/star-gradient.rb +0 -4
  199. data/examples/legacy/not_checked/shoes-contrib/basic/basic-edit-box.rb +0 -8
  200. data/examples/legacy/not_checked/shoes-contrib/basic/basic-new-window.rb +0 -8
  201. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-image.rb +0 -8
  202. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-shape.rb +0 -8
  203. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval.rb +0 -6
  204. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.rb +0 -43
  205. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +0 -387
  206. data/examples/legacy/not_checked/shoes-contrib/basic/clock.rb +0 -6
  207. data/examples/legacy/not_checked/shoes-contrib/basic/edit-stack +0 -14
  208. data/examples/legacy/not_checked/shoes-contrib/basic/gradient-shoes.rb +0 -7
  209. data/examples/legacy/not_checked/shoes-contrib/basic/list_box-shape-report.rb +0 -19
  210. data/examples/legacy/not_checked/shoes-contrib/basic/rect-arrow.rb +0 -7
  211. data/examples/legacy/not_checked/shoes-contrib/basic/scribble.rb +0 -8
  212. data/examples/legacy/not_checked/shoes-contrib/basic/search.rb +0 -32
  213. data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +0 -16
  214. data/examples/legacy/not_checked/shoes-contrib/basic/url-shoes-subclassing.rb +0 -24
  215. data/examples/legacy/not_checked/shoes-contrib/browser.rb +0 -21
  216. data/examples/legacy/not_checked/shoes-contrib/elements/background-column.rb +0 -3
  217. data/examples/legacy/not_checked/shoes-contrib/elements/background.rb +0 -4
  218. data/examples/legacy/not_checked/shoes-contrib/elements/basic-fps.rb +0 -6
  219. data/examples/legacy/not_checked/shoes-contrib/elements/border-cat.rb +0 -6
  220. data/examples/legacy/not_checked/shoes-contrib/elements/button-block.rb +0 -8
  221. data/examples/legacy/not_checked/shoes-contrib/elements/check-mate.rb +0 -15
  222. data/examples/legacy/not_checked/shoes-contrib/elements/common-styles.rb +0 -13
  223. data/examples/legacy/not_checked/shoes-contrib/elements/displace-animation.rb +0 -13
  224. data/examples/legacy/not_checked/shoes-contrib/elements/edit_box-character-count.rb +0 -7
  225. data/examples/legacy/not_checked/shoes-contrib/elements/edit_line-character-count.rb +0 -7
  226. data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +0 -3
  227. data/examples/legacy/not_checked/shoes-contrib/elements/list_box-select-class.rb +0 -13
  228. data/examples/legacy/not_checked/shoes-contrib/elements/list_box.rb +0 -6
  229. data/examples/legacy/not_checked/shoes-contrib/elements/move-flow-animate.rb +0 -13
  230. data/examples/legacy/not_checked/shoes-contrib/elements/phat-button.rb +0 -7
  231. data/examples/legacy/not_checked/shoes-contrib/elements/popup.rb +0 -7
  232. data/examples/legacy/not_checked/shoes-contrib/elements/progress-bar.rb +0 -10
  233. data/examples/legacy/not_checked/shoes-contrib/elements/radio-dreamcast-favs.rb +0 -17
  234. data/examples/legacy/not_checked/shoes-contrib/elements/timer.rb +0 -6
  235. data/examples/legacy/not_checked/shoes-contrib/elements/width-introspec.rb +0 -8
  236. data/examples/legacy/not_checked/shoes-contrib/events/background-hover.rb +0 -11
  237. data/examples/legacy/not_checked/shoes-contrib/events/motion-detect.rb +0 -9
  238. data/examples/legacy/not_checked/shoes-contrib/events/pressed-key.rb +0 -6
  239. data/examples/legacy/not_checked/shoes-contrib/expert/expert-funnies.rb +0 -51
  240. data/examples/legacy/not_checked/shoes-contrib/expert/expert-irb.rb +0 -112
  241. data/examples/legacy/not_checked/shoes-contrib/expert/expert-othello.rb +0 -319
  242. data/examples/legacy/not_checked/shoes-contrib/good/good-arc.rb +0 -37
  243. data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +0 -51
  244. data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +0 -26
  245. data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +0 -174
  246. data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +0 -56
  247. data/examples/legacy/not_checked/shoes-contrib/kernel/ask.rb +0 -4
  248. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_color.rb +0 -4
  249. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_open_file.rb +0 -4
  250. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_save_file.rb +0 -7
  251. data/examples/legacy/not_checked/shoes-contrib/kernel/confirm.rb +0 -3
  252. data/examples/legacy/not_checked/shoes-contrib/kernel/debug.rb +0 -4
  253. data/examples/legacy/not_checked/shoes-contrib/kernel/exit.rb +0 -5
  254. data/examples/legacy/not_checked/shoes-contrib/kernel/font.rb +0 -5
  255. data/examples/legacy/not_checked/shoes-contrib/kernel/fonts.rb +0 -3
  256. data/examples/legacy/not_checked/shoes-contrib/manipulation/append-slot.rb +0 -9
  257. data/examples/legacy/not_checked/shoes-contrib/manipulation/clear-slot.rb +0 -6
  258. data/examples/legacy/not_checked/shoes-contrib/manipulation/prepend-slot.rb +0 -6
  259. data/examples/legacy/not_checked/shoes-contrib/manipulation/roll.rb +0 -17
  260. data/examples/legacy/not_checked/shoes-contrib/position/gutter-margin.rb +0 -5
  261. data/examples/legacy/not_checked/shoes-contrib/position/stack-width.rb +0 -3
  262. data/examples/legacy/not_checked/shoes-contrib/simple/simple-accordion.rb +0 -75
  263. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-shapes.rb +0 -17
  264. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-text.rb +0 -13
  265. data/examples/legacy/not_checked/shoes-contrib/simple/simple-arc.rb +0 -23
  266. data/examples/legacy/not_checked/shoes-contrib/simple/simple-bounce.rb +0 -24
  267. data/examples/legacy/not_checked/shoes-contrib/simple/simple-calc.rb +0 -70
  268. data/examples/legacy/not_checked/shoes-contrib/simple/simple-chipmunk.rb +0 -26
  269. data/examples/legacy/not_checked/shoes-contrib/simple/simple-control-sizes.rb +0 -24
  270. data/examples/legacy/not_checked/shoes-contrib/simple/simple-curve.rb +0 -26
  271. data/examples/legacy/not_checked/shoes-contrib/simple/simple-dialogs.rb +0 -29
  272. data/examples/legacy/not_checked/shoes-contrib/simple/simple-downloader.rb +0 -27
  273. data/examples/legacy/not_checked/shoes-contrib/simple/simple-draw.rb +0 -13
  274. data/examples/legacy/not_checked/shoes-contrib/simple/simple-editor.rb +0 -28
  275. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.rb +0 -28
  276. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.shy +0 -0
  277. data/examples/legacy/not_checked/shoes-contrib/simple/simple-mask.rb +0 -21
  278. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu.rb +0 -31
  279. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu1.rb +0 -35
  280. data/examples/legacy/not_checked/shoes-contrib/simple/simple-rubygems.rb +0 -29
  281. data/examples/legacy/not_checked/shoes-contrib/simple/simple-slide.rb +0 -45
  282. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sphere.rb +0 -28
  283. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sqlite3.rb +0 -13
  284. data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +0 -13
  285. data/examples/legacy/not_checked/shoes-contrib/simple/simple-video.rb +0 -13
  286. data/examples/legacy/not_checked/shoes-contrib/styles/alignment.rb +0 -4
  287. data/examples/legacy/not_checked/shoes-contrib/styles/attachment.rb +0 -5
  288. data/examples/legacy/not_checked/shoes-contrib/styles/emphasis.rb +0 -3
  289. data/examples/legacy/not_checked/shoes-contrib/styles/gradient-angle.rb +0 -3
  290. data/examples/legacy/not_checked/shoes-contrib/styles/para-methods.rb +0 -5
  291. data/examples/legacy/not_checked/shoes-contrib/styles/para-red-underlined.rb +0 -3
  292. data/examples/legacy/not_checked/shoes-contrib/styles/para-style-method.rb +0 -4
  293. data/examples/legacy/not_checked/shoes-dep-samples/expert-game-of-life.rb +0 -243
  294. data/examples/legacy/not_checked/shoes-dep-samples/expert-othello.rb +0 -319
  295. data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +0 -51
  296. data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +0 -26
  297. data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +0 -174
  298. data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +0 -56
  299. data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +0 -75
  300. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +0 -17
  301. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +0 -13
  302. data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +0 -23
  303. data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +0 -24
  304. data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +0 -70
  305. data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +0 -26
  306. data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +0 -24
  307. data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +0 -26
  308. data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +0 -29
  309. data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +0 -13
  310. data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +0 -28
  311. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +0 -28
  312. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
  313. data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +0 -21
  314. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +0 -31
  315. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +0 -35
  316. data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +0 -29
  317. data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +0 -45
  318. data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +0 -28
  319. data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +0 -13
  320. data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +0 -13
  321. data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +0 -13
  322. data/examples/legacy/not_checked/shoes3-tests/AnemicCinema1926marcelDuchampCut.mp4 +0 -0
  323. data/examples/legacy/not_checked/shoes3-tests/button/button.rb +0 -53
  324. data/examples/legacy/not_checked/shoes3-tests/cache/cache.rb +0 -41
  325. data/examples/legacy/not_checked/shoes3-tests/combo/combo.rb +0 -24
  326. data/examples/legacy/not_checked/shoes3-tests/curl/bare.rb +0 -34
  327. data/examples/legacy/not_checked/shoes3-tests/curl/downloader.rb +0 -40
  328. data/examples/legacy/not_checked/shoes3-tests/curl/m1.rb +0 -11
  329. data/examples/legacy/not_checked/shoes3-tests/curl/m2.rb +0 -12
  330. data/examples/legacy/not_checked/shoes3-tests/curl/m3.rb +0 -11
  331. data/examples/legacy/not_checked/shoes3-tests/curl/m4.rb +0 -5
  332. data/examples/legacy/not_checked/shoes3-tests/curl/typ.rb +0 -30
  333. data/examples/legacy/not_checked/shoes3-tests/cursor/c1.rb +0 -21
  334. data/examples/legacy/not_checked/shoes3-tests/decoration.rb +0 -14
  335. data/examples/legacy/not_checked/shoes3-tests/dialogs/ask.rb +0 -6
  336. data/examples/legacy/not_checked/shoes3-tests/dialogs/confirm.rb +0 -6
  337. data/examples/legacy/not_checked/shoes3-tests/editbox/editbox.rb +0 -36
  338. data/examples/legacy/not_checked/shoes3-tests/editline/editline.rb +0 -27
  339. data/examples/legacy/not_checked/shoes3-tests/events/button.rb +0 -32
  340. data/examples/legacy/not_checked/shoes3-tests/events/button.yaml +0 -40
  341. data/examples/legacy/not_checked/shoes3-tests/events/capture.rb +0 -57
  342. data/examples/legacy/not_checked/shoes3-tests/events/chipmunk.yaml +0 -47
  343. data/examples/legacy/not_checked/shoes3-tests/events/event0.rb +0 -8
  344. data/examples/legacy/not_checked/shoes3-tests/events/event1.rb +0 -51
  345. data/examples/legacy/not_checked/shoes3-tests/events/event1.yaml +0 -26
  346. data/examples/legacy/not_checked/shoes3-tests/events/event2.rb +0 -46
  347. data/examples/legacy/not_checked/shoes3-tests/events/event3.rb +0 -44
  348. data/examples/legacy/not_checked/shoes3-tests/events/event4.rb +0 -65
  349. data/examples/legacy/not_checked/shoes3-tests/events/event5.rb +0 -17
  350. data/examples/legacy/not_checked/shoes3-tests/events/event6.rb +0 -51
  351. data/examples/legacy/not_checked/shoes3-tests/events/replay.rb +0 -60
  352. data/examples/legacy/not_checked/shoes3-tests/gapp/fullscreen.rb +0 -38
  353. data/examples/legacy/not_checked/shoes3-tests/gapp/icon.rb +0 -56
  354. data/examples/legacy/not_checked/shoes3-tests/gapp/mon1.rb +0 -46
  355. data/examples/legacy/not_checked/shoes3-tests/gapp/settings1.rb +0 -22
  356. data/examples/legacy/not_checked/shoes3-tests/gapp/title1.rb +0 -34
  357. data/examples/legacy/not_checked/shoes3-tests/indian.m4a +0 -0
  358. data/examples/legacy/not_checked/shoes3-tests/menus/event.rb +0 -33
  359. data/examples/legacy/not_checked/shoes3-tests/menus/menu1.rb +0 -8
  360. data/examples/legacy/not_checked/shoes3-tests/menus/menu2.rb +0 -25
  361. data/examples/legacy/not_checked/shoes3-tests/menus/menu3.rb +0 -103
  362. data/examples/legacy/not_checked/shoes3-tests/menus/menu4.rb +0 -41
  363. data/examples/legacy/not_checked/shoes3-tests/menus/tests.txt +0 -42
  364. data/examples/legacy/not_checked/shoes3-tests/opacity.rb +0 -13
  365. data/examples/legacy/not_checked/shoes3-tests/plot/^IRX.R +0 -5219
  366. data/examples/legacy/not_checked/shoes3-tests/plot/^SPX +0 -5219
  367. data/examples/legacy/not_checked/shoes3-tests/plot/cstest.rb +0 -51
  368. data/examples/legacy/not_checked/shoes3-tests/plot/gr1.rb +0 -73
  369. data/examples/legacy/not_checked/shoes3-tests/plot/gr2.rb +0 -40
  370. data/examples/legacy/not_checked/shoes3-tests/plot/gr3.rb +0 -47
  371. data/examples/legacy/not_checked/shoes3-tests/plot/gr4.rb +0 -35
  372. data/examples/legacy/not_checked/shoes3-tests/plot/gr5.rb +0 -31
  373. data/examples/legacy/not_checked/shoes3-tests/plot/gr6.rb +0 -35
  374. data/examples/legacy/not_checked/shoes3-tests/plot/gr7.rb +0 -37
  375. data/examples/legacy/not_checked/shoes3-tests/plot/grcsv.rb +0 -219
  376. data/examples/legacy/not_checked/shoes3-tests/plot/manual.rb +0 -40
  377. data/examples/legacy/not_checked/shoes3-tests/progress/progress.rb +0 -29
  378. data/examples/legacy/not_checked/shoes3-tests/radio/clear.rb +0 -20
  379. data/examples/legacy/not_checked/shoes3-tests/radio/group.rb +0 -18
  380. data/examples/legacy/not_checked/shoes3-tests/radio/multiple.rb +0 -32
  381. data/examples/legacy/not_checked/shoes3-tests/radio/nogroup.rb +0 -9
  382. data/examples/legacy/not_checked/shoes3-tests/simpletest.svg +0 -14
  383. data/examples/legacy/not_checked/shoes3-tests/spinner.rb +0 -15
  384. data/examples/legacy/not_checked/shoes3-tests/svg.rb +0 -208
  385. data/examples/legacy/not_checked/shoes3-tests/switch/switch.rb +0 -28
  386. data/examples/legacy/not_checked/shoes3-tests/systray/back.rb +0 -20
  387. data/examples/legacy/not_checked/shoes3-tests/systray/note.rb +0 -17
  388. data/examples/legacy/not_checked/shoes3-tests/terminal/cursor.rb +0 -27
  389. data/examples/legacy/not_checked/shoes3-tests/terminal/ed.rb +0 -65
  390. data/examples/legacy/not_checked/shoes3-tests/terminal/el.rb +0 -50
  391. data/examples/legacy/not_checked/shoes3-tests/terminal/logattr.rb +0 -31
  392. data/examples/legacy/not_checked/shoes3-tests/tests_color.rb +0 -138
  393. data/examples/legacy/not_checked/shoes3-tests/tests_svg.rb +0 -228
  394. data/examples/legacy/not_checked/shoes3-tests/tests_video_vlc.rb +0 -186
  395. data/examples/legacy/not_checked/shoes3-tests/tooltips.rb +0 -20
  396. data/examples/legacy/not_checked/shoes3-tests/video_vlc.rb +0 -242
  397. data/examples/legacy/not_checked/shoes3-tests/wheel/wheel1.rb +0 -21
  398. data/examples/legacy/not_checked/simple/accordion.rb +0 -81
  399. data/examples/legacy/not_checked/simple/anim-shapes.rb +0 -17
  400. data/examples/legacy/not_checked/simple/anim-text.rb +0 -13
  401. data/examples/legacy/not_checked/simple/arc.rb +0 -23
  402. data/examples/legacy/not_checked/simple/bounce.rb +0 -24
  403. data/examples/legacy/not_checked/simple/chipmunk.rb +0 -26
  404. data/examples/legacy/not_checked/simple/control-sizes.rb +0 -24
  405. data/examples/legacy/not_checked/simple/curve-control-points.rb +0 -24
  406. data/examples/legacy/not_checked/simple/curve.rb +0 -26
  407. data/examples/legacy/not_checked/simple/dialogs.rb +0 -29
  408. data/examples/legacy/not_checked/simple/downloader.rb +0 -40
  409. data/examples/legacy/not_checked/simple/downloader1.rb +0 -31
  410. data/examples/legacy/not_checked/simple/draw.rb +0 -13
  411. data/examples/legacy/not_checked/simple/editor.rb +0 -28
  412. data/examples/legacy/not_checked/simple/form.rb +0 -30
  413. data/examples/legacy/not_checked/simple/image.rb +0 -21
  414. data/examples/legacy/not_checked/simple/info.rb +0 -78
  415. data/examples/legacy/not_checked/simple/mask.rb +0 -21
  416. data/examples/legacy/not_checked/simple/mask2.rb +0 -27
  417. data/examples/legacy/not_checked/simple/menu.rb +0 -31
  418. data/examples/legacy/not_checked/simple/menu1.rb +0 -35
  419. data/examples/legacy/not_checked/simple/slide.rb +0 -45
  420. data/examples/legacy/not_checked/simple/sphere.rb +0 -28
  421. data/examples/legacy/not_checked/superleg.rb +0 -244
  422. data/examples/legacy/working/shoes-contrib/basic/a-poem.rb +0 -24
  423. data/examples/legacy/working/shoes-contrib/basic/basic-blocks-instances.rb +0 -7
  424. data/examples/legacy/working/shoes-contrib/basic/basic-blocks.rb +0 -7
  425. data/examples/legacy/working/shoes-contrib/basic/basic-slot.rb +0 -8
  426. data/examples/legacy/working/shoes-contrib/basic/intro.rb +0 -20
  427. data/examples/legacy/working/shoes-contrib/basic/two-column.rb +0 -12
  428. data/examples/legacy/working/shoes-contrib/elements/edit_box.rb +0 -6
  429. data/examples/legacy/working/shoes-contrib/kernel/alert.rb +0 -3
  430. data/examples/legacy/working/simple/calc.rb +0 -71
  431. data/examples/legacy/working/simple/sqlite3.rb +0 -27
  432. data/examples/legacy/working/simple/timer.rb +0 -13
  433. data/examples/line.rb +0 -5
  434. data/examples/link.rb +0 -20
  435. data/examples/list_box.rb +0 -8
  436. data/examples/local_fonts.rb +0 -4
  437. data/examples/local_images.rb +0 -4
  438. data/examples/motion_events.rb +0 -20
  439. data/examples/para/collection_of_arguments.rb +0 -9
  440. data/examples/para/hello_world.rb +0 -5
  441. data/examples/para/hide_and_show.rb +0 -9
  442. data/examples/para/rainbow.rb +0 -11
  443. data/examples/para/rainbow_2.rb +0 -11
  444. data/examples/para/sizes.rb +0 -11
  445. data/examples/para/sizes_2.rb +0 -12
  446. data/examples/para/strong.rb +0 -3
  447. data/examples/para_text_widgets.rb +0 -4
  448. data/examples/parse_xl_funnies.rb +0 -58
  449. data/examples/pirate.png +0 -0
  450. data/examples/raw_flow.rb +0 -11
  451. data/examples/ruby_racer.rb +0 -50
  452. data/examples/selfitude.rb +0 -18
  453. data/examples/shapes/arc.rb +0 -8
  454. data/examples/shapes/shapes.rb +0 -8
  455. data/examples/shapes/shapes_fill.rb +0 -10
  456. data/examples/shapes/star.rb +0 -5
  457. data/examples/shoes_school.rb +0 -66
  458. data/examples/shoes_splorer.rb +0 -150
  459. data/examples/simple_slides.rb +0 -73
  460. data/examples/skip_ci/parrot.rb +0 -22
  461. data/examples/skip_ci/say.rb +0 -20
  462. data/examples/sleepless.rb +0 -26
  463. data/examples/slots.rb +0 -10
  464. data/examples/spacing.rb +0 -18
  465. data/examples/span.rb +0 -6
  466. data/examples/stack/background.rb +0 -35
  467. data/examples/stack/border.rb +0 -11
  468. data/examples/stack/gradients.rb +0 -6
  469. data/examples/stack/raw_stack.rb +0 -8
  470. data/examples/stack/stack.rb +0 -27
  471. data/examples/text_change.rb +0 -4
  472. data/examples/text_sizes.rb +0 -10
  473. data/examples/timmy.rb +0 -109
  474. data/examples/title_and_resize.rb +0 -3
  475. data/examples/video.rb +0 -10
  476. data/exe/scarpe +0 -107
  477. data/fonts/Pacifico.ttf +0 -0
  478. data/lib/scarpe/base64.rb +0 -27
  479. data/lib/scarpe/cats_cradle.rb +0 -255
  480. data/lib/scarpe/fill.rb +0 -23
  481. data/lib/scarpe/glibui/README.md +0 -34
  482. data/lib/scarpe/glibui/alert.rb +0 -65
  483. data/lib/scarpe/glibui/app.rb +0 -27
  484. data/lib/scarpe/glibui/background.rb +0 -18
  485. data/lib/scarpe/glibui/border.rb +0 -22
  486. data/lib/scarpe/glibui/button.rb +0 -38
  487. data/lib/scarpe/glibui/dimensions.rb +0 -22
  488. data/lib/scarpe/glibui/document_root.rb +0 -33
  489. data/lib/scarpe/glibui/edit_box.rb +0 -44
  490. data/lib/scarpe/glibui/edit_line.rb +0 -43
  491. data/lib/scarpe/glibui/flow.rb +0 -33
  492. data/lib/scarpe/glibui/html.rb +0 -77
  493. data/lib/scarpe/glibui/image.rb +0 -36
  494. data/lib/scarpe/glibui/link.rb +0 -29
  495. data/lib/scarpe/glibui/local_display.rb +0 -62
  496. data/lib/scarpe/glibui/para.rb +0 -84
  497. data/lib/scarpe/glibui/spacing.rb +0 -41
  498. data/lib/scarpe/glibui/stack.rb +0 -33
  499. data/lib/scarpe/glibui/text_widget.rb +0 -30
  500. data/lib/scarpe/glibui/widget.rb +0 -81
  501. data/lib/scarpe/glibui.rb +0 -29
  502. data/lib/scarpe/libui/alert.rb +0 -9
  503. data/lib/scarpe/libui/button.rb +0 -18
  504. data/lib/scarpe/libui/colors.rb +0 -157
  505. data/lib/scarpe/libui/core.rb +0 -66
  506. data/lib/scarpe/libui/flow.rb +0 -16
  507. data/lib/scarpe/libui/libui.rb +0 -45
  508. data/lib/scarpe/libui/notepad.md +0 -26
  509. data/lib/scarpe/libui/para.rb +0 -154
  510. data/lib/scarpe/libui/stack.rb +0 -34
  511. data/lib/scarpe/line.rb +0 -25
  512. data/lib/scarpe/logger.rb +0 -159
  513. data/lib/scarpe/promises.rb +0 -405
  514. data/lib/scarpe/shape.rb +0 -20
  515. data/lib/scarpe/slot.rb +0 -7
  516. data/lib/scarpe/unit_test_helpers.rb +0 -236
  517. data/lib/scarpe/version.rb +0 -5
  518. data/lib/scarpe/widgets.rb +0 -35
  519. data/lib/scarpe/wv/alert.rb +0 -65
  520. data/lib/scarpe/wv/app.rb +0 -104
  521. data/lib/scarpe/wv/arc.rb +0 -57
  522. data/lib/scarpe/wv/background.rb +0 -27
  523. data/lib/scarpe/wv/border.rb +0 -24
  524. data/lib/scarpe/wv/button.rb +0 -50
  525. data/lib/scarpe/wv/control_interface.rb +0 -147
  526. data/lib/scarpe/wv/control_interface_test.rb +0 -234
  527. data/lib/scarpe/wv/dimensions.rb +0 -22
  528. data/lib/scarpe/wv/document_root.rb +0 -8
  529. data/lib/scarpe/wv/edit_box.rb +0 -44
  530. data/lib/scarpe/wv/edit_line.rb +0 -43
  531. data/lib/scarpe/wv/fill.rb +0 -30
  532. data/lib/scarpe/wv/flow.rb +0 -24
  533. data/lib/scarpe/wv/font.rb +0 -36
  534. data/lib/scarpe/wv/html.rb +0 -108
  535. data/lib/scarpe/wv/image.rb +0 -41
  536. data/lib/scarpe/wv/line.rb +0 -38
  537. data/lib/scarpe/wv/link.rb +0 -29
  538. data/lib/scarpe/wv/list_box.rb +0 -50
  539. data/lib/scarpe/wv/para.rb +0 -90
  540. data/lib/scarpe/wv/shape.rb +0 -35
  541. data/lib/scarpe/wv/shape_helper.rb +0 -44
  542. data/lib/scarpe/wv/slot.rb +0 -81
  543. data/lib/scarpe/wv/spacing.rb +0 -41
  544. data/lib/scarpe/wv/span.rb +0 -66
  545. data/lib/scarpe/wv/stack.rb +0 -24
  546. data/lib/scarpe/wv/star.rb +0 -64
  547. data/lib/scarpe/wv/subscription_item.rb +0 -50
  548. data/lib/scarpe/wv/text_widget.rb +0 -30
  549. data/lib/scarpe/wv/video.rb +0 -42
  550. data/lib/scarpe/wv/web_wrangler.rb +0 -683
  551. data/lib/scarpe/wv/webview_local_display.rb +0 -73
  552. data/lib/scarpe/wv/webview_relay_display.rb +0 -185
  553. data/lib/scarpe/wv/widget.rb +0 -185
  554. data/lib/scarpe/wv/wv_display_worker.rb +0 -65
  555. data/lib/scarpe/wv.rb +0 -43
  556. data/lib/scarpe/wv_local.rb +0 -6
  557. data/lib/scarpe/wv_relay.rb +0 -6
  558. data/lib/scarpe.rb +0 -29
  559. data/logger/debug_web_wrangler.json +0 -4
  560. data/logger/scarpe_wv_test.json +0 -4
  561. data/scarpe-0.2.0.gem +0 -0
  562. data/scarpe.gemspec +0 -44
  563. data/scarpegen.rb +0 -193
  564. data/sig/scarpe.rbs +0 -4
  565. data/templates/basic_class_template.erb +0 -38
  566. data/templates/class_template_with_event_bind.erb +0 -27
  567. data/templates/class_template_with_shapes.erb +0 -43
  568. data/templates/example_template.erb +0 -3
  569. data/templates/module_template.erb +0 -12
  570. 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
@@ -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