scarpe 0.2.2 → 0.4.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 (378) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +7 -1
  3. data/.yardopts +1 -0
  4. data/CHANGELOG.md +52 -6
  5. data/Gemfile +2 -1
  6. data/Gemfile.lock +20 -6
  7. data/LICENSE.txt +7 -1
  8. data/README.md +100 -21
  9. data/Rakefile +68 -1
  10. data/examples/Edit_box_Styles.rb +8 -0
  11. data/examples/Kerning.rb +7 -0
  12. data/examples/animate.rb +20 -0
  13. data/examples/arrow.rb +10 -0
  14. data/examples/border.rb +11 -0
  15. data/examples/btn_tooltip.rb +7 -0
  16. data/examples/button_style_changed.rb +7 -0
  17. data/examples/button_styles_default.rb +6 -0
  18. data/examples/check.rb +2 -0
  19. data/examples/download_and_show_image.rb +3 -0
  20. data/examples/flags/finland.rb +15 -0
  21. data/examples/flags/italy.rb +11 -0
  22. data/examples/flags/mauritius.rb +14 -0
  23. data/examples/font_family.rb +17 -0
  24. data/examples/font_shorthand.rb +9 -0
  25. data/examples/gen.rb +12 -8
  26. data/examples/highlander.rb +3 -3
  27. data/examples/legacy/README.md +6 -0
  28. data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +1 -1
  29. data/examples/legacy/not_checked/shoes-manual/append.rb +10 -0
  30. data/examples/legacy/not_checked/shoes-manual/background_change.rb +12 -0
  31. data/examples/legacy/not_checked/shoes-manual/background_pattern.rb +5 -0
  32. data/examples/legacy/not_checked/shoes-manual/basic_app.rb +8 -0
  33. data/examples/legacy/not_checked/shoes-manual/border.rb +9 -0
  34. data/examples/legacy/not_checked/shoes-manual/builtins/FONTS.rb +5 -0
  35. data/examples/legacy/not_checked/shoes-manual/builtins/ask.rb +2 -0
  36. data/examples/legacy/not_checked/shoes-manual/builtins/ask_color.rb +5 -0
  37. data/examples/legacy/not_checked/shoes-manual/builtins/ask_open_file.rb +5 -0
  38. data/examples/legacy/not_checked/shoes-manual/builtins/ask_save_folder.rb +2 -0
  39. data/examples/legacy/not_checked/shoes-manual/builtins/confirm.rb +4 -0
  40. data/examples/legacy/not_checked/shoes-manual/builtins/debug.rb +2 -0
  41. data/examples/legacy/not_checked/shoes-manual/builtins/info.rb +3 -0
  42. data/examples/legacy/not_checked/shoes-manual/button.rb +9 -0
  43. data/examples/legacy/not_checked/shoes-manual/clear.rb +7 -0
  44. data/examples/legacy/not_checked/shoes-manual/custom_header.rb +13 -0
  45. data/examples/legacy/not_checked/shoes-manual/displace.rb +14 -0
  46. data/examples/legacy/not_checked/shoes-manual/edit_box.rb +8 -0
  47. data/examples/legacy/not_checked/shoes-manual/fill_pattern.rb +5 -0
  48. data/examples/legacy/not_checked/shoes-manual/fonts.rb +7 -0
  49. data/examples/legacy/not_checked/shoes-manual/gutter.rb +6 -0
  50. data/examples/legacy/not_checked/shoes-manual/image_web.rb +4 -0
  51. data/examples/legacy/not_checked/shoes-manual/keypress.rb +7 -0
  52. data/examples/legacy/not_checked/shoes-manual/list_box.rb +10 -0
  53. data/examples/legacy/not_checked/shoes-manual/motion.rb +10 -0
  54. data/examples/legacy/not_checked/shoes-manual/mouse.rb +8 -0
  55. data/examples/legacy/not_checked/shoes-manual/move.rb +14 -0
  56. data/examples/legacy/not_checked/shoes-manual/nested_ovals.rb +8 -0
  57. data/examples/legacy/not_checked/shoes-manual/oval.rb +7 -0
  58. data/examples/legacy/not_checked/shoes-manual/ovals.rb +6 -0
  59. data/examples/legacy/not_checked/shoes-manual/ovals_image.rb +8 -0
  60. data/examples/legacy/not_checked/shoes-manual/prepend.rb +7 -0
  61. data/examples/legacy/not_checked/shoes-manual/progress_bar.rb +10 -0
  62. data/examples/legacy/not_checked/shoes-manual/radio.rb +18 -0
  63. data/examples/legacy/not_checked/shoes-manual/radio_alternative_1.rb +7 -0
  64. data/examples/legacy/not_checked/shoes-manual/radio_alternative_2.rb +9 -0
  65. data/examples/legacy/not_checked/shoes-manual/rotate_rectangle.rb +6 -0
  66. data/examples/legacy/not_checked/shoes-manual/shape.rb +11 -0
  67. data/examples/legacy/not_checked/shoes-manual/static/avatar.png +0 -0
  68. data/examples/legacy/not_checked/shoes-manual/stroke.rb +5 -0
  69. data/examples/legacy/not_checked/shoes-manual/style.rb +3 -0
  70. data/examples/legacy/not_checked/shoes-manual/style_alternative_1.rb +4 -0
  71. data/examples/legacy/not_checked/shoes-manual/style_alternative_2.rb +5 -0
  72. data/examples/legacy/not_checked/shoes-manual/style_length.rb +5 -0
  73. data/examples/legacy/not_checked/shoes-manual/timer.rb +6 -0
  74. data/examples/legacy/not_checked/shoes-manual/trigger_window.rb +8 -0
  75. data/examples/legacy/not_checked/shoes-manual/window_owner.rb +8 -0
  76. data/examples/legacy/not_checked/simple/anim-shapes.rb +1 -1
  77. data/examples/legacy/not_checked/speedometer_app.rb +55 -0
  78. data/examples/legacy/working/shoes_manual/alert_button.rb +2 -0
  79. data/examples/legacy/working/shoes_manual/animate.rb +7 -0
  80. data/examples/legacy/working/shoes_manual/background_para.rb +4 -0
  81. data/examples/legacy/working/shoes_manual/button_alternative.rb +7 -0
  82. data/examples/legacy/working/shoes_manual/checkbox.rb +17 -0
  83. data/examples/legacy/working/shoes_manual/download.rb +12 -0
  84. data/examples/legacy/working/shoes_manual/edit_box.rb +6 -0
  85. data/examples/legacy/working/shoes_manual/editline.rb +7 -0
  86. data/examples/legacy/working/shoes_manual/fixed_height.rb +8 -0
  87. data/examples/legacy/working/shoes_manual/fixed_width.rb +12 -0
  88. data/examples/legacy/working/shoes_manual/image.rb +5 -0
  89. data/examples/legacy/working/shoes_manual/instance_variable_check.rb +10 -0
  90. data/examples/legacy/working/shoes_manual/message.rb +18 -0
  91. data/examples/legacy/working/shoes_manual/rectangle.rb +6 -0
  92. data/examples/legacy/working/shoes_manual/save_download.rb +12 -0
  93. data/examples/legacy/working/shoes_manual/self_check.rb +10 -0
  94. data/examples/legacy/working/shoes_manual/stack.rb +7 -0
  95. data/examples/legacy/working/shoes_manual/style_info.rb +8 -0
  96. data/examples/legacy/working/shoes_manual/utf8_support.rb +8 -0
  97. data/examples/legacy/working/shoes_manual/width.rb +4 -0
  98. data/examples/legacy/working/simple/image-icon.rb +3 -0
  99. data/examples/legacy/{not_checked → working}/simple/image.rb +1 -1
  100. data/examples/list_box_choose.rb +17 -0
  101. data/examples/local_assets/local_file_server.rb +82 -0
  102. data/examples/local_assets/multi_image.rb +5 -0
  103. data/examples/local_assets/sample.gif +0 -0
  104. data/examples/local_assets/sample.mp4 +0 -0
  105. data/examples/local_assets/small.png +0 -0
  106. data/examples/local_fonts.rb +5 -2
  107. data/examples/local_images.rb +2 -3
  108. data/examples/margin.rb +13 -0
  109. data/examples/margin_check.rb +27 -0
  110. data/examples/oval-with-kwargs.rb +3 -0
  111. data/examples/oval.rb +26 -0
  112. data/examples/para/para_text.rb +14 -0
  113. data/examples/para_font_styles.rb +17 -0
  114. data/examples/para_font_variant.rb +6 -0
  115. data/examples/para_fontweight.rb +13 -0
  116. data/examples/parse_xl_funnies.rb +3 -0
  117. data/examples/progress.rb +31 -0
  118. data/examples/radio/radio_groups.rb +2 -2
  119. data/examples/rect.rb +4 -0
  120. data/examples/rotate_shapes.rb +17 -0
  121. data/examples/scarpe_ext.rb +3 -0
  122. data/examples/shapes/star.rb +1 -3
  123. data/examples/simpler-menu.rb +21 -0
  124. data/examples/spacing.rb +1 -1
  125. data/examples/span.rb +4 -2
  126. data/exe/scarpe +2 -1
  127. data/lacci/Gemfile +2 -0
  128. data/lacci/Gemfile.lock +8 -1
  129. data/lacci/lacci.gemspec +2 -2
  130. data/lacci/lib/lacci/scarpe_cli.rb +2 -2
  131. data/lacci/lib/lacci/scarpe_core.rb +2 -1
  132. data/lacci/lib/lacci/version.rb +1 -1
  133. data/lacci/lib/scarpe/niente/app.rb +23 -0
  134. data/lacci/lib/scarpe/niente/display_service.rb +66 -0
  135. data/lacci/lib/scarpe/niente/drawable.rb +59 -0
  136. data/lacci/lib/scarpe/niente/shoes_spec.rb +93 -0
  137. data/lacci/lib/scarpe/niente.rb +32 -0
  138. data/lacci/lib/shoes/app.rb +111 -72
  139. data/lacci/lib/shoes/background.rb +2 -2
  140. data/lacci/lib/shoes/border.rb +2 -2
  141. data/lacci/lib/shoes/builtins.rb +63 -0
  142. data/lacci/lib/shoes/changelog.rb +52 -0
  143. data/lacci/lib/shoes/colors.rb +3 -1
  144. data/lacci/lib/shoes/constants.rb +41 -2
  145. data/lacci/lib/shoes/display_service.rb +80 -18
  146. data/lacci/lib/shoes/download.rb +2 -2
  147. data/lacci/lib/shoes/drawable.rb +654 -0
  148. data/lacci/lib/shoes/drawables/arc.rb +27 -0
  149. data/lacci/lib/shoes/drawables/arrow.rb +21 -0
  150. data/lacci/lib/shoes/drawables/border.rb +28 -0
  151. data/lacci/lib/shoes/drawables/button.rb +57 -0
  152. data/lacci/lib/shoes/drawables/check.rb +33 -0
  153. data/lacci/lib/shoes/drawables/document_root.rb +20 -0
  154. data/lacci/lib/shoes/{widgets → drawables}/edit_box.rb +9 -8
  155. data/lacci/lib/shoes/{widgets → drawables}/edit_line.rb +8 -7
  156. data/lacci/lib/shoes/drawables/flow.rb +20 -0
  157. data/lacci/lib/shoes/drawables/font_helper.rb +62 -0
  158. data/lacci/lib/shoes/{widgets → drawables}/image.rb +7 -7
  159. data/lacci/lib/shoes/drawables/line.rb +17 -0
  160. data/lacci/lib/shoes/drawables/link.rb +31 -0
  161. data/lacci/lib/shoes/drawables/list_box.rb +59 -0
  162. data/lacci/lib/shoes/drawables/oval.rb +48 -0
  163. data/lacci/lib/shoes/drawables/para.rb +206 -0
  164. data/lacci/lib/shoes/drawables/progress.rb +15 -0
  165. data/lacci/lib/shoes/drawables/radio.rb +35 -0
  166. data/lacci/lib/shoes/drawables/rect.rb +18 -0
  167. data/lacci/lib/shoes/{widgets → drawables}/shape.rb +8 -8
  168. data/lacci/lib/shoes/drawables/slot.rb +178 -0
  169. data/lacci/lib/shoes/drawables/stack.rb +21 -0
  170. data/lacci/lib/shoes/drawables/star.rb +28 -0
  171. data/lacci/lib/shoes/drawables/subscription_item.rb +93 -0
  172. data/lacci/lib/shoes/drawables/text_drawable.rb +122 -0
  173. data/lacci/lib/shoes/drawables/video.rb +17 -0
  174. data/lacci/lib/shoes/drawables/widget.rb +74 -0
  175. data/lacci/lib/shoes/drawables.rb +32 -0
  176. data/lacci/lib/shoes/errors.rb +38 -0
  177. data/lacci/lib/shoes/log.rb +2 -2
  178. data/lacci/lib/shoes/margin_helper.rb +79 -0
  179. data/lacci/lib/shoes/ruby_extensions.rb +15 -0
  180. data/lacci/lib/shoes-spec.rb +93 -0
  181. data/lacci/lib/shoes.rb +31 -10
  182. data/lacci/test/.gitignore +1 -0
  183. data/lacci/test/test_draw_context.rb +167 -0
  184. data/lacci/test/test_font_helper.rb +57 -0
  185. data/lacci/test/test_helper.rb +81 -0
  186. data/lacci/test/test_lacci.rb +99 -3
  187. data/lacci/test/test_margin_helper.rb +82 -0
  188. data/lacci/test/test_niente_test_infra.rb +26 -0
  189. data/lacci/test/test_oval.rb +82 -0
  190. data/lacci/test/test_parenting.rb +140 -0
  191. data/lacci/test/test_shoes_errors.rb +49 -0
  192. data/lacci/test/test_text_drawables.rb +23 -0
  193. data/lib/scarpe/assets.rb +18 -0
  194. data/lib/scarpe/cats_cradle.rb +84 -103
  195. data/lib/scarpe/errors.rb +77 -0
  196. data/lib/scarpe/shoes_spec.rb +160 -0
  197. data/lib/scarpe/version.rb +2 -2
  198. data/lib/scarpe/wv/app.rb +21 -20
  199. data/lib/scarpe/wv/arc.rb +4 -51
  200. data/lib/scarpe/wv/arrow.rb +9 -0
  201. data/lib/scarpe/wv/border.rb +9 -18
  202. data/lib/scarpe/wv/button.rb +7 -35
  203. data/lib/scarpe/wv/check.rb +3 -5
  204. data/lib/scarpe/wv/control_interface.rb +20 -30
  205. data/lib/scarpe/wv/document_root.rb +81 -4
  206. data/lib/scarpe/wv/{widget.rb → drawable.rb} +71 -82
  207. data/lib/scarpe/wv/edit_box.rb +8 -18
  208. data/lib/scarpe/wv/edit_line.rb +9 -20
  209. data/lib/scarpe/wv/flow.rb +2 -18
  210. data/lib/scarpe/wv/image.rb +7 -30
  211. data/lib/scarpe/wv/line.rb +3 -25
  212. data/lib/scarpe/wv/link.rb +6 -17
  213. data/lib/scarpe/wv/list_box.rb +6 -29
  214. data/lib/scarpe/wv/oval.rb +13 -0
  215. data/lib/scarpe/wv/para.rb +12 -30
  216. data/lib/scarpe/wv/progress.rb +19 -0
  217. data/lib/scarpe/wv/radio.rb +9 -10
  218. data/lib/scarpe/wv/rect.rb +13 -0
  219. data/lib/scarpe/wv/scarpe_extensions.rb +8 -0
  220. data/lib/scarpe/wv/shape.rb +13 -13
  221. data/lib/scarpe/wv/slot.rb +8 -25
  222. data/lib/scarpe/wv/stack.rb +2 -18
  223. data/lib/scarpe/wv/star.rb +3 -53
  224. data/lib/scarpe/wv/subscription_item.rb +38 -4
  225. data/lib/scarpe/wv/text_drawable.rb +90 -0
  226. data/lib/scarpe/wv/video.rb +15 -15
  227. data/lib/scarpe/wv/web_wrangler.rb +320 -328
  228. data/lib/scarpe/wv/webview_local_display.rb +52 -33
  229. data/lib/scarpe/wv/webview_relay_display.rb +12 -12
  230. data/lib/scarpe/wv/webview_relay_util.rb +7 -10
  231. data/lib/scarpe/wv/wv_display_worker.rb +2 -2
  232. data/lib/scarpe/wv.rb +52 -12
  233. data/lib/scarpe/wv_local.rb +1 -1
  234. data/lib/scarpe/wv_relay.rb +1 -1
  235. data/lib/scarpe.rb +1 -0
  236. data/logger/debug_web_wrangler.json +1 -1
  237. data/logger/scarpe_wv_test.json +1 -1
  238. data/scarpe-components/Gemfile +4 -1
  239. data/scarpe-components/Gemfile.lock +85 -0
  240. data/scarpe-components/README.md +2 -2
  241. data/scarpe-components/assets/bootstrap-themes/bootstrap-cerulean.css +12229 -0
  242. data/scarpe-components/assets/bootstrap-themes/bootstrap-cosmo.css +11810 -0
  243. data/scarpe-components/assets/bootstrap-themes/bootstrap-cyborg.css +12210 -0
  244. data/scarpe-components/assets/bootstrap-themes/bootstrap-darkly.css +12153 -0
  245. data/scarpe-components/assets/bootstrap-themes/bootstrap-flatly.css +12126 -0
  246. data/scarpe-components/assets/bootstrap-themes/bootstrap-icons.min.css +5 -0
  247. data/scarpe-components/assets/bootstrap-themes/bootstrap-journal.css +12099 -0
  248. data/scarpe-components/assets/bootstrap-themes/bootstrap-litera.css +12211 -0
  249. data/scarpe-components/assets/bootstrap-themes/bootstrap-lumen.css +12369 -0
  250. data/scarpe-components/assets/bootstrap-themes/bootstrap-lux.css +11928 -0
  251. data/scarpe-components/assets/bootstrap-themes/bootstrap-materia.css +13184 -0
  252. data/scarpe-components/assets/bootstrap-themes/bootstrap-minty.css +12177 -0
  253. data/scarpe-components/assets/bootstrap-themes/bootstrap-morph.css +12750 -0
  254. data/scarpe-components/assets/bootstrap-themes/bootstrap-pulse.css +11890 -0
  255. data/scarpe-components/assets/bootstrap-themes/bootstrap-quartz.css +12622 -0
  256. data/scarpe-components/assets/bootstrap-themes/bootstrap-sandstone.css +12201 -0
  257. data/scarpe-components/assets/bootstrap-themes/bootstrap-simplex.css +12186 -0
  258. data/scarpe-components/assets/bootstrap-themes/bootstrap-sketchy.css +12451 -0
  259. data/scarpe-components/assets/bootstrap-themes/bootstrap-slate.css +12492 -0
  260. data/scarpe-components/assets/bootstrap-themes/bootstrap-solar.css +12149 -0
  261. data/scarpe-components/assets/bootstrap-themes/bootstrap-spacelab.css +12266 -0
  262. data/scarpe-components/assets/bootstrap-themes/bootstrap-superhero.css +12216 -0
  263. data/scarpe-components/assets/bootstrap-themes/bootstrap-united.css +12077 -0
  264. data/scarpe-components/assets/bootstrap-themes/bootstrap-vapor.css +12549 -0
  265. data/scarpe-components/assets/bootstrap-themes/bootstrap-yeti.css +12325 -0
  266. data/scarpe-components/assets/bootstrap-themes/bootstrap-zephyr.css +12283 -0
  267. data/scarpe-components/assets/bootstrap-themes/bootstrap.bundle.min.js +7 -0
  268. data/scarpe-components/lib/scarpe/components/asset_server.rb +219 -0
  269. data/scarpe-components/lib/scarpe/components/base64.rb +23 -5
  270. data/scarpe-components/lib/scarpe/components/calzini/alert.rb +49 -0
  271. data/scarpe-components/lib/scarpe/components/calzini/art_drawables.rb +227 -0
  272. data/scarpe-components/lib/scarpe/components/calzini/border.rb +38 -0
  273. data/scarpe-components/lib/scarpe/components/calzini/button.rb +37 -0
  274. data/scarpe-components/lib/scarpe/components/calzini/misc.rb +136 -0
  275. data/scarpe-components/lib/scarpe/components/calzini/para.rb +237 -0
  276. data/scarpe-components/lib/scarpe/components/calzini/slots.rb +109 -0
  277. data/scarpe-components/lib/scarpe/components/calzini.rb +236 -0
  278. data/scarpe-components/lib/scarpe/components/errors.rb +24 -0
  279. data/scarpe-components/lib/scarpe/components/file_helpers.rb +1 -0
  280. data/scarpe-components/lib/scarpe/components/html.rb +134 -0
  281. data/scarpe-components/lib/scarpe/components/minitest_export_reporter.rb +83 -0
  282. data/scarpe-components/lib/scarpe/components/minitest_import_runnable.rb +98 -0
  283. data/scarpe-components/lib/scarpe/components/minitest_result.rb +127 -0
  284. data/scarpe-components/lib/scarpe/components/modular_logger.rb +5 -5
  285. data/scarpe-components/lib/scarpe/components/print_logger.rb +22 -3
  286. data/scarpe-components/lib/scarpe/components/process_helpers.rb +37 -0
  287. data/scarpe-components/lib/scarpe/components/promises.rb +14 -14
  288. data/scarpe-components/lib/scarpe/components/segmented_file_loader.rb +36 -17
  289. data/scarpe-components/lib/scarpe/components/string_helpers.rb +10 -0
  290. data/scarpe-components/lib/scarpe/components/tiranti.rb +167 -0
  291. data/scarpe-components/lib/scarpe/components/unit_test_helpers.rb +48 -6
  292. data/scarpe-components/lib/scarpe/components/version.rb +2 -2
  293. data/scarpe-components/test/assets/big-image.png +0 -0
  294. data/scarpe-components/test/assets/big-stylesheet.css +497 -0
  295. data/scarpe-components/test/assets/little-image.png +0 -0
  296. data/scarpe-components/test/assets/little-stylesheet.css +1 -0
  297. data/scarpe-components/test/calzini/test_calzini_alert.rb +30 -0
  298. data/scarpe-components/test/calzini/test_calzini_art_drawables.rb +105 -0
  299. data/scarpe-components/test/calzini/test_calzini_button.rb +54 -0
  300. data/scarpe-components/test/calzini/test_calzini_misc.rb +115 -0
  301. data/scarpe-components/test/calzini/test_calzini_para.rb +34 -0
  302. data/scarpe-components/test/calzini/test_calzini_slots.rb +85 -0
  303. data/scarpe-components/test/calzini/test_calzini_text_drawables.rb +106 -0
  304. data/scarpe-components/test/calzini/test_various.rb +133 -0
  305. data/scarpe-components/test/mtr_data/exception.json +1 -0
  306. data/scarpe-components/test/mtr_data/fail_with_message.json +1 -0
  307. data/scarpe-components/test/mtr_data/skipped_no_message.json +1 -0
  308. data/scarpe-components/test/mtr_data/skipped_w_msg.json +1 -0
  309. data/scarpe-components/test/mtr_data/succeed_2_asserts.json +1 -0
  310. data/scarpe-components/test/test_asset_server.rb +72 -0
  311. data/scarpe-components/test/test_components.rb +31 -2
  312. data/scarpe-components/test/test_dimensions.rb +26 -0
  313. data/scarpe-components/test/test_helper.rb +20 -1
  314. data/scarpe-components/test/test_html.rb +65 -0
  315. data/scarpe-components/test/test_minitest_result.rb +68 -0
  316. data/scarpe-components/test/test_promises.rb +5 -4
  317. data/scarpe-components/test/test_segmented_app_files.rb +10 -6
  318. data/scarpegen.rb +14 -14
  319. data/sig/scarpe.rbs +1 -1
  320. data/tasks/check_html_fixtures.rb +140 -0
  321. data/tasks/regenerate_html_fixtures.rb +104 -0
  322. data/templates/basic_class_template.erb +13 -14
  323. data/templates/class_template_with_event_bind.erb +4 -4
  324. data/templates/class_template_with_shapes.erb +8 -28
  325. data/templates/example_template.erb +1 -1
  326. data/templates/module_template.erb +4 -4
  327. data/templates/webview_template.erb +3 -2
  328. metadata +286 -80
  329. data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +0 -3
  330. data/lacci/lib/shoes/spacing.rb +0 -9
  331. data/lacci/lib/shoes/widget.rb +0 -218
  332. data/lacci/lib/shoes/widgets/alert.rb +0 -19
  333. data/lacci/lib/shoes/widgets/arc.rb +0 -51
  334. data/lacci/lib/shoes/widgets/button.rb +0 -35
  335. data/lacci/lib/shoes/widgets/check.rb +0 -28
  336. data/lacci/lib/shoes/widgets/document_root.rb +0 -20
  337. data/lacci/lib/shoes/widgets/flow.rb +0 -22
  338. data/lacci/lib/shoes/widgets/font.rb +0 -14
  339. data/lacci/lib/shoes/widgets/line.rb +0 -18
  340. data/lacci/lib/shoes/widgets/link.rb +0 -25
  341. data/lacci/lib/shoes/widgets/list_box.rb +0 -25
  342. data/lacci/lib/shoes/widgets/para.rb +0 -68
  343. data/lacci/lib/shoes/widgets/radio.rb +0 -35
  344. data/lacci/lib/shoes/widgets/slot.rb +0 -75
  345. data/lacci/lib/shoes/widgets/span.rb +0 -26
  346. data/lacci/lib/shoes/widgets/stack.rb +0 -24
  347. data/lacci/lib/shoes/widgets/star.rb +0 -44
  348. data/lacci/lib/shoes/widgets/subscription_item.rb +0 -60
  349. data/lacci/lib/shoes/widgets/text_widget.rb +0 -51
  350. data/lacci/lib/shoes/widgets/video.rb +0 -15
  351. data/lacci/lib/shoes/widgets.rb +0 -29
  352. data/lib/scarpe/evented_assertions.rb +0 -88
  353. data/lib/scarpe/wv/alert.rb +0 -66
  354. data/lib/scarpe/wv/background.rb +0 -27
  355. data/lib/scarpe/wv/control_interface_test.rb +0 -238
  356. data/lib/scarpe/wv/dimensions.rb +0 -22
  357. data/lib/scarpe/wv/font.rb +0 -36
  358. data/lib/scarpe/wv/html.rb +0 -108
  359. data/lib/scarpe/wv/spacing.rb +0 -41
  360. data/lib/scarpe/wv/span.rb +0 -68
  361. data/lib/scarpe/wv/text_widget.rb +0 -30
  362. /data/examples/legacy/not_checked/{expert → shoes-contrib/basic}/definr.rb +0 -0
  363. /data/examples/legacy/not_checked/{expert → shoes-contrib/basic}/funnies.rb +0 -0
  364. /data/examples/legacy/not_checked/shoes-contrib/{elements → basic}/list_box-select-class.rb +0 -0
  365. /data/examples/legacy/{not_checked → working}/shoes3-tests/editline/editline.rb +0 -0
  366. /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/basic-edit-box.rb +0 -0
  367. /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/basic-fps.rb +0 -0
  368. /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/border-cat.rb +0 -0
  369. /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/check-mate.rb +0 -0
  370. /data/examples/legacy/{not_checked/shoes-contrib/manipulation → working/simple}/clear-slot.rb +0 -0
  371. /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/clock.rb +0 -0
  372. /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/gradient-shoes.rb +0 -0
  373. /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/list_box-shape-report.rb +0 -0
  374. /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/list_box.rb +0 -0
  375. /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/phat-button.rb +0 -0
  376. /data/examples/legacy/{not_checked/shoes-contrib → working}/simple/simple-calc.rb +0 -0
  377. /data/examples/legacy/{not_checked/shoes-contrib/position → working/simple}/stack-width.rb +0 -0
  378. /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/width-introspec.rb +0 -0
@@ -0,0 +1,17 @@
1
+ Shoes.app do
2
+
3
+ para "This is arial" ,size:"40px" , font:"arial"
4
+
5
+ para "This is time new roman" , size:"40px", font:"'Times New Roman'"
6
+
7
+ para "this is cursive", font: "cursive", size:"40px"
8
+
9
+ para "this is pacifico", font: "'Monaco'", size:"40px"
10
+
11
+ para "this is pacifico with quotes which is same", font: "Monaco", size:"40px"
12
+
13
+ para "This is helvetica", font: "Helvetica", size:"40px"
14
+
15
+ para "This is 'Trebuchet MS'", font: "'Trebuchet MS'", size:"40px"
16
+
17
+ end
@@ -0,0 +1,9 @@
1
+ Shoes.app do
2
+
3
+ para "The family is not in font so it will change but size won't" , font:"italic bold 30px" , family:"cursive", size: 20
4
+
5
+ para "because only things things who aren't present in font " , font:"bold", size: "16px"
6
+
7
+ para "will be used as their specific property", font: "cursive italic 20px ", font_weight:"bold"
8
+
9
+ end
data/examples/gen.rb CHANGED
@@ -1,10 +1,14 @@
1
1
  # frozen_string_literal: true
2
+
3
+ # html_ci: false
4
+ # This is due to a button rendering issue
5
+
2
6
  require 'erb'
3
7
 
4
8
  class ScarpeGenerator
5
- def initialize(filename, display_properties)
9
+ def initialize(filename, shoes_styles)
6
10
  @filename = filename
7
- @display_properties = display_properties
11
+ @shoes_styles = shoes_styles
8
12
  end
9
13
 
10
14
  def generate_files(choice, class_template_choice)
@@ -96,7 +100,7 @@ class ScarpeGenerator
96
100
  capitalized_argument = @filename.capitalize
97
101
  binding.dup.tap do |b|
98
102
  b.local_variable_set(:argument, capitalized_argument)
99
- b.local_variable_set(:display_properties, @display_properties)
103
+ b.local_variable_set(:shoes_styles, @shoes_styles)
100
104
  end
101
105
  end
102
106
  end
@@ -109,7 +113,7 @@ Shoes.app(title: 'Templates') do
109
113
  end
110
114
 
111
115
  stack width: 400 do
112
- para 'Enter display properties (like :height,:text) '
116
+ para 'Enter Shoes styles (like :height,:text) '
113
117
  $properties_input = edit_line
114
118
  end
115
119
 
@@ -125,13 +129,13 @@ Shoes.app(title: 'Templates') do
125
129
 
126
130
  button 'Generate Files!',color:"#FF7116",padding_bottom:"8",padding_top:"8",text_color:"white",font_size:"16" do
127
131
  filename = $filename_input.text
128
- display_properties = $properties_input.text
129
- choice = $choice_input.selected_item
132
+ shoes_styles = $properties_input.text
133
+ choice = $choice_input.text
130
134
 
131
- generator = ScarpeGenerator.new(filename, display_properties)
135
+ generator = ScarpeGenerator.new(filename, shoes_styles)
132
136
 
133
137
  if choice == 'Class'
134
- generator.generate_files(choice, $class_template_choice_input.selected_item)
138
+ generator.generate_files(choice, $class_template_choice_input.text)
135
139
  else
136
140
  generator.generate_files(choice, nil)
137
141
  end
@@ -35,7 +35,7 @@ def update_dup_list
35
35
  end
36
36
 
37
37
  def highlander_the_selected_item
38
- selected = $dup_list.selected_item
38
+ selected = $dup_list.text
39
39
  if !selected || selected == "" || !selected.include?(DIVIDER)
40
40
  $bottom_display.replace("Select an item first!")
41
41
  return
@@ -58,7 +58,7 @@ def highlander_the_selected_item
58
58
  end
59
59
  end
60
60
 
61
- $dup_list.selected_item = nil
61
+ $dup_list.choose nil
62
62
  $bottom_display.replace BOTTOM_DISPLAY_INSTRUCTIONS
63
63
  update_dup_list
64
64
  end
@@ -67,7 +67,7 @@ Shoes.app(title: "Highlander") do
67
67
  stack :margin => 40 do
68
68
  $top_text = para "Loading..."
69
69
  $dup_list = list_box(:items => []).change do
70
- $bottom_display.replace "Selected duplicates: #{$dup_list.selected_item.inspect}"
70
+ $bottom_display.replace "Selected duplicates: #{$dup_list.text.inspect}"
71
71
  end
72
72
 
73
73
  update_dup_list
@@ -0,0 +1,6 @@
1
+ # Legacy Projects
2
+
3
+ These are Shoes examples, taken from a wide variety of sources. In general, we try not to modify them.
4
+
5
+ It's possible that some of them run but we haven't realised it yet, which is why the "not_checked" directory is nameed that, rather than something like "won't work". Also, they aren't checked by CI, while the ones marked working have to at least boot up.
6
+
@@ -12,5 +12,5 @@ Shoes.app do
12
12
  @add.text = ""
13
13
  end
14
14
  end
15
- @notes = stack :margin => 20, :widht => -250
15
+ @notes = stack :margin => 20, :width => -250
16
16
  end
@@ -0,0 +1,10 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @slot = stack { para 'Good Morning' }
4
+ timer 3 do
5
+ @slot.append do
6
+ title "Breaking News"
7
+ tagline "Astronauts arrested for space shuttle DUI."
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ s = stack width: 200, height: 200 do
4
+ background red
5
+ hover do
6
+ s.clear { background blue }
7
+ end
8
+ leave do
9
+ s.clear { background red }
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ background black
4
+ background white, width: 50
5
+ end
@@ -0,0 +1,8 @@
1
+ #!ruby
2
+ Shoes.app(title: "White Circle",
3
+ width: 200, height: 200, resizable: false) {
4
+ background black
5
+ fill white
6
+ oval top: 20, left: 20, radius: 160
7
+ }
8
+
@@ -0,0 +1,9 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ stack width: 60 do
4
+ border black, strokewidth: 5
5
+ stack width: 50 do
6
+ para "=^.^=", stroke: green
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ if Shoes::FONTS.include? "Helvetica"
2
+ alert "Helvetica is available on this system."
3
+ else
4
+ alert "You do not have the Helvetica font."
5
+ end
@@ -0,0 +1,2 @@
1
+ #!ruby
2
+ ask("Please, enter your name:")
@@ -0,0 +1,5 @@
1
+ #!ruby
2
+ backcolor = ask_color("Pick a background")
3
+ Shoes.app do
4
+ background backcolor
5
+ end
@@ -0,0 +1,5 @@
1
+ #!ruby
2
+ filename = ask_open_file
3
+ Shoes.app do
4
+ para File.read(filename)
5
+ end
@@ -0,0 +1,2 @@
1
+ #!ruby
2
+ save_to = ask_save_folder
@@ -0,0 +1,4 @@
1
+ #!ruby
2
+ if confirm("Draw a circle?")
3
+ Shoes.app{ oval top: 0, left: 0, radius: 50 }
4
+ end
@@ -0,0 +1,2 @@
1
+ #!ruby
2
+ debug("Running Shoes on " + RUBY_PLATFORM)
@@ -0,0 +1,3 @@
1
+ #!ruby
2
+
3
+ info("You just ran the info example on Shoes #{Shoes::RELEASE_NAME}.")
@@ -0,0 +1,9 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ button "OK!" do
4
+ append { para "Well okay then." }
5
+ end
6
+ button "Are you sure?" do
7
+ append { para "Your confidence is inspiring." }
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @slot = stack { para "Old text" }
4
+ timer 3 do
5
+ @slot.clear { para "Brand new text" }
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ stack do
4
+ title "GET Google", size: 16
5
+ @status = para "One moment..."
6
+
7
+ download "http://www.google.com/search?q=shoes",
8
+ method: "GET" do |dump|
9
+ @status.text = dump.response.body
10
+ end
11
+ para 'Hii'
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ flow margin: 12 do
4
+ # Set up three buttons
5
+ button "One"
6
+ @two = button "Two"
7
+ button "Three"
8
+
9
+ # Bounce the second button
10
+ animate do |i|
11
+ @two.displace(0, (Math.sin(i) * 6).to_i)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ edit_box do |e|
4
+ @counter.text = e.text.size
5
+ end
6
+ @counter = strong("0")
7
+ para @counter, " characters"
8
+ end
@@ -0,0 +1,5 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ fill "static/avatar.png"
4
+ star 200, 200, 5
5
+ end
@@ -0,0 +1,7 @@
1
+ Shoes.app do
2
+ para "てすと (te-su-to)", font: case RUBY_PLATFORM
3
+ when /mingw/; "MS UI Gothic"
4
+ when /darwin/; "AppleGothic, Arial"
5
+ else "Arial"
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ stack margin_right: 20 + gutter do
4
+ para "Insert fat and ratified declaration of independence here..."
5
+ end
6
+ end
@@ -0,0 +1,4 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ image "https://en.wikipedia.org/wiki/Hackety_Hack#/media/File:Hackety-Star-Title.png"
4
+ end
@@ -0,0 +1,7 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @info = para "NO KEY is PRESSED."
4
+ keypress do |k|
5
+ @info.replace "#{k.inspect} was PRESSED."
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ para "Choose a fruit:"
4
+ list_box items: ["Grapes", "Pears", "Apricots"],
5
+ width: 120, choose: "Apricots" do |list|
6
+ @fruit.text = list.text
7
+ end
8
+
9
+ @fruit = para "No fruit selected"
10
+ end
@@ -0,0 +1,10 @@
1
+ #!ruby
2
+ Shoes.app width: 200, height: 200 do
3
+ background black
4
+ fill white
5
+ @circ = oval 0, 0, 100, 100
6
+
7
+ motion do |top, left|
8
+ @circ.move top - 50, left - 50
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @p = para
4
+ animate do
5
+ button, left, top = self.mouse
6
+ @p.replace "mouse: #{button}, #{left}, #{top}"
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ flow margin: 12 do
4
+ # Set up three buttons
5
+ button "One"
6
+ @two = button "Two"
7
+ button "Three"
8
+
9
+ # Bounce the second button
10
+ animate do |i|
11
+ @two.move(40, 40 + (Math.sin(i) * 6).to_i)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ Shoes.app do
2
+ fill black(0.1)
3
+ shape do
4
+ 100.times do |i|
5
+ oval i, i, i * 2
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ stroke blue
4
+ strokewidth 4
5
+ fill black
6
+ oval 10, 10, 50
7
+ end
@@ -0,0 +1,6 @@
1
+ Shoes.app do
2
+ fill black(0.1)
3
+ 100.times do |i|
4
+ oval i, i, i * 2
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ Shoes.app do
2
+ fill black(0.1)
3
+ image 300, 300 do
4
+ 100.times do |i|
5
+ oval i, i, i * 2
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @slot = stack { para 'Good Morning' }
4
+ timer 3 do
5
+ @slot.prepend { para "Your car is ready." }
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ Shoes.app do
2
+ stack margin: 0.1 do
3
+ title "Progress example"
4
+ @p = progress width: 1.0
5
+
6
+ animate do |i|
7
+ @p.fraction = (i % 100) / 100.0
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ stack do
4
+ para "Among these films, which do you prefer?"
5
+ flow do
6
+ radio :films
7
+ para "The Taste of Tea by Katsuhito Ishii"
8
+ end
9
+ flow do
10
+ radio :films
11
+ para "Kin-Dza-Dza by Georgi Danelia"
12
+ end
13
+ flow do
14
+ radio :films
15
+ para "Children of Heaven by Majid Majidi"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,7 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ para "Among these films, which do you prefer?\n"
4
+ radio; para strong("The Taste of Tea"), " by Katsuhito Ishii\n"
5
+ radio; para strong("Kin-Dza-Dza"), " by Georgi Danelia\n"
6
+ radio; para strong("Children of Heaven"), " by Majid Majidi\n"
7
+ end
@@ -0,0 +1,9 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ stack do
4
+ para "Among these films, which do you prefer?"
5
+ flow { radio; para "The Taste of Tea by Katsuhito Ishii" }
6
+ flow { radio; para "Kin-Dza-Dza by Georgi Danelia" }
7
+ flow { radio; para "Children of Heaven by Majid Majidi" }
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ fill "#333"
4
+ rotate 45
5
+ rect 30, 30, 40, 40
6
+ end
@@ -0,0 +1,11 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ fill red(0.2)
4
+ shape do
5
+ move_to(90, 55)
6
+ arc_to(50, 55, 50, 50, 0, PI/2)
7
+ arc_to(50, 55, 60, 60, PI/2, PI)
8
+ arc_to(50, 55, 70, 70, PI, TWO_PI-PI/2)
9
+ arc_to(50, 55, 80, 80, TWO_PI-PI/2, TWO_PI)
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ stroke red
4
+ arrow 0, 100, 10
5
+ end
@@ -0,0 +1,3 @@
1
+ Shoes.app title: "A Styling Sample" do
2
+ para "Red with an underline", stroke: red, underline: "single"
3
+ end
@@ -0,0 +1,4 @@
1
+ Shoes.app title: "A Styling Sample" do
2
+ @text = para "Red with an underline"
3
+ @text.style(stroke: red, underline: "single")
4
+ end
@@ -0,0 +1,5 @@
1
+ Shoes.app title: "A Styling Sample" do
2
+ @text = para "Red with an underline"
3
+ @text.stroke = red
4
+ @text.underline = "single"
5
+ end
@@ -0,0 +1,5 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @s = stack width: "100%"
4
+ para @s.style[:width]
5
+ end
@@ -0,0 +1,6 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ timer(5) do
4
+ alert("Your five seconds are up.")
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ Shoes.app title: "MAIN" do
2
+ para self
3
+ button "Spawn" do
4
+ window title: "CHILD" do
5
+ para self
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ #!ruby
2
+ Shoes.app title: "The Owner" do
3
+ button "Pop up?" do
4
+ window do
5
+ para "Okay, popped up from #{owner}"
6
+ end
7
+ end
8
+ end
@@ -14,4 +14,4 @@ Shoes.app do
14
14
  button "OK", :top => 0.5, :left => 0.5 do
15
15
  Shoes.quit unless confirm "You ARE sure you're OK??"
16
16
  end
17
- end
17
+ end
@@ -0,0 +1,55 @@
1
+ # Source: https://www.hanselman.com/blog/the-weekly-source-code-29-ruby-and-shoes-and-the-first-ruby-virus
2
+
3
+ class Speedometer < Shoes::Widget
4
+ attr_accessor :range, :tick, :position
5
+ def initialize opts = {}
6
+ @range = opts[:range] || 200
7
+ @tick = opts[:tick] || 10
8
+ @position = opts[:position] || 0
9
+ @cx, @cy = self.left + 110, self.top + 100
10
+
11
+ nostroke
12
+ rect :top => self.top, :left => self.left,
13
+ :width => 220, :height => 200
14
+ nofill
15
+ stroke white
16
+ oval :left => @cx - 50, :top => @cy - 50, :radius => 100
17
+ (ticks + 1).times do |i|
18
+ radial_line 225 + ((270.0 / ticks) * i), 70..80
19
+ radial_line 225 + ((270.0 / ticks) * i), 45..49
20
+ end
21
+ strokewidth 2
22
+ oval :left => @cx - 70, :top => @cy - 70, :radius => 140
23
+ stroke lightgreen
24
+ oval :left => @cx - 5, :top => @cy - 5, :radius => 10
25
+ @needle = radial_line 225 + ((270.0 / @range) * @position), 0..90
26
+ end
27
+ def ticks; @range / @tick end
28
+ def radial_line deg, r
29
+ pos = ((deg / 360.0) * (2.0 * Math::PI)) - (Math::PI / 2.0)
30
+ line (Math.cos(pos) * r.begin) + @cx, (Math.sin(pos) * r.begin) + @cy,
31
+ (Math.cos(pos) * r.end) + @cx, (Math.sin(pos) * r.end) + @cy
32
+ end
33
+ def position= pos
34
+ @position = pos
35
+ @needle.remove
36
+ append do
37
+ @needle = radial_line 225 + ((270.0 / @range) * @position), 0..90
38
+ end
39
+ end
40
+ end
41
+
42
+ Shoes.app do
43
+ stack do
44
+ para "Enter a number between 0 and 100"
45
+ flow do
46
+ @p = edit_line
47
+ button "OK" do
48
+ @s.position = @p.text.to_i
49
+ end
50
+ end
51
+
52
+ @s = speedometer :range => 100, :ticks => 10
53
+ end
54
+ end
55
+
@@ -0,0 +1,2 @@
1
+ #!ruby
2
+ Shoes.app { button("Click me!") { alert("Good job.") } }
@@ -0,0 +1,7 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @counter = para "STARTING"
4
+ animate(24) do |frame|
5
+ @counter.replace "FRAME #{frame}"
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ Shoes.app do
2
+ background "#DFA"
3
+ para "Welcome to Shoes"
4
+ end
@@ -0,0 +1,7 @@
1
+ #!ruby
2
+ Shoes.app do
3
+ @b1 = button "OK!"
4
+ @b1.click { para "Well okay then." }
5
+ @b2 = button "Are you sure?"
6
+ @b2.click { para "Your confidence is inspiring." }
7
+ end