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.
- checksums.yaml +4 -4
- data/Gemfile +0 -2
- data/Gemfile.lock +72 -0
- data/Rakefile +1 -4
- data/lib/lacci/scarpe_cli.rb +70 -0
- data/lib/lacci/scarpe_core.rb +21 -0
- data/lib/lacci/version.rb +13 -0
- data/lib/shoes/app.rb +91 -14
- data/lib/{scarpe → shoes}/background.rb +1 -1
- data/lib/{scarpe → shoes}/border.rb +1 -1
- data/lib/{scarpe → shoes}/colors.rb +1 -1
- data/lib/shoes/constants.rb +5 -2
- data/lib/{scarpe → shoes}/display_service.rb +8 -9
- data/lib/{scarpe → shoes}/download.rb +5 -5
- data/lib/shoes/log.rb +71 -0
- data/lib/{scarpe → shoes}/spacing.rb +1 -1
- data/lib/shoes/widget.rb +28 -19
- data/lib/{scarpe → shoes/widgets}/alert.rb +2 -2
- data/lib/{scarpe → shoes/widgets}/arc.rb +6 -4
- data/lib/{scarpe → shoes/widgets}/button.rb +2 -2
- data/lib/shoes/widgets/check.rb +28 -0
- data/lib/{scarpe → shoes/widgets}/document_root.rb +3 -3
- data/lib/{scarpe → shoes/widgets}/edit_box.rb +1 -1
- data/lib/{scarpe → shoes/widgets}/edit_line.rb +1 -1
- data/lib/{scarpe → shoes/widgets}/flow.rb +6 -2
- data/lib/{scarpe → shoes/widgets}/font.rb +1 -1
- data/lib/{scarpe → shoes/widgets}/image.rb +2 -8
- data/lib/shoes/widgets/line.rb +18 -0
- data/lib/{scarpe → shoes/widgets}/link.rb +1 -1
- data/lib/{scarpe → shoes/widgets}/list_box.rb +1 -1
- data/lib/{scarpe → shoes/widgets}/para.rb +1 -25
- data/lib/shoes/widgets/radio.rb +35 -0
- data/lib/shoes/widgets/shape.rb +37 -0
- data/lib/shoes/widgets/slot.rb +75 -0
- data/lib/{scarpe → shoes/widgets}/span.rb +1 -1
- data/lib/{scarpe → shoes/widgets}/stack.rb +5 -1
- data/lib/{scarpe → shoes/widgets}/star.rb +5 -8
- data/lib/{scarpe → shoes/widgets}/subscription_item.rb +1 -1
- data/lib/shoes/{text_widget.rb → widgets/text_widget.rb} +2 -3
- data/lib/{scarpe → shoes/widgets}/video.rb +1 -1
- data/lib/shoes/widgets.rb +29 -0
- data/lib/shoes.rb +71 -9
- metadata +38 -555
- data/.rubocop.yml +0 -85
- data/.ruby-version +0 -1
- data/.vscode/extensions.json +0 -5
- data/.yardopts +0 -12
- data/CHANGELOG.md +0 -19
- data/CODE_OF_CONDUCT.md +0 -84
- data/CONTRIBUTING.md +0 -20
- data/LICENSE.txt +0 -21
- data/README.md +0 -178
- data/bin/console +0 -15
- data/bin/setup +0 -8
- data/dev.yml +0 -7
- data/docs/static/PKGBUILD +0 -47
- data/docs/static/Shoes.icns +0 -0
- data/docs/static/avatar.png +0 -0
- data/docs/static/code_highlighter.js +0 -188
- data/docs/static/code_highlighter_ruby.js +0 -26
- data/docs/static/icon-debug.png +0 -0
- data/docs/static/icon-error.png +0 -0
- data/docs/static/icon-info.png +0 -0
- data/docs/static/icon-warn.png +0 -0
- data/docs/static/listbox_button1.png +0 -0
- data/docs/static/listbox_button2.png +0 -0
- data/docs/static/man-app.png +0 -0
- data/docs/static/man-builds.png +0 -0
- data/docs/static/man-builds1.png +0 -0
- data/docs/static/man-editor-notepad.png +0 -0
- data/docs/static/man-editor-osx.png +0 -0
- data/docs/static/man-ele-background.png +0 -0
- data/docs/static/man-ele-border.png +0 -0
- data/docs/static/man-ele-button.png +0 -0
- data/docs/static/man-ele-check.png +0 -0
- data/docs/static/man-ele-editbox.png +0 -0
- data/docs/static/man-ele-editline.png +0 -0
- data/docs/static/man-ele-image.png +0 -0
- data/docs/static/man-ele-listbox.png +0 -0
- data/docs/static/man-ele-progress.png +0 -0
- data/docs/static/man-ele-radio.png +0 -0
- data/docs/static/man-ele-shape.png +0 -0
- data/docs/static/man-ele-textblock.png +0 -0
- data/docs/static/man-ele-video.png +0 -0
- data/docs/static/man-intro-dmg.png +0 -0
- data/docs/static/man-intro-exe.png +0 -0
- data/docs/static/man-look-tiger.png +0 -0
- data/docs/static/man-look-ubuntu.png +0 -0
- data/docs/static/man-look-vista.png +0 -0
- data/docs/static/man-run-osx.png +0 -0
- data/docs/static/man-run-vista.png +0 -0
- data/docs/static/man-run-xp.png +0 -0
- data/docs/static/man-shot1.png +0 -0
- data/docs/static/manual-en.txt +0 -3529
- data/docs/static/manual-ja.txt +0 -2829
- data/docs/static/manual.css +0 -171
- data/docs/static/manual.md +0 -3528
- data/docs/static/menu-corner1.png +0 -0
- data/docs/static/menu-corner2.png +0 -0
- data/docs/static/menu-gray.png +0 -0
- data/docs/static/menu-left.png +0 -0
- data/docs/static/menu-right.png +0 -0
- data/docs/static/menu-top.png +0 -0
- data/docs/static/shoes-dmg.jpg +0 -0
- data/docs/static/shoes-icon-blue.png +0 -0
- data/docs/static/shoes-icon.png +0 -0
- data/docs/static/shoes-manual-apps.gif +0 -0
- data/docs/static/shoes_main_window.png +0 -0
- data/docs/static/stripe.png +0 -0
- data/docs/static/stubs/blank.exe +0 -0
- data/docs/static/stubs/blank.hfz +0 -0
- data/docs/static/stubs/blank.run +0 -375
- data/docs/static/stubs/cocoa-install +0 -0
- data/docs/static/stubs/sh-install +0 -49
- data/docs/static/stubs/shoes-stub-inject.exe +0 -0
- data/docs/static/stubs/shoes-stub.exe +0 -0
- data/docs/static/tutor-back.png +0 -0
- data/docs/yard/catscradle.md +0 -44
- data/docs/yard/template/default/fulldoc/html/setup.rb +0 -13
- data/docs/yard/template/default/layout/html/setup.rb +0 -9
- data/examples/backdround_with_image.rb +0 -16
- data/examples/bloopsaphone/working/1901_by_Aanand_Prasad.rb +0 -478
- data/examples/bloopsaphone/working/b1.rb +0 -64
- data/examples/bloopsaphone/working/b2.rb +0 -36
- data/examples/bloopsaphone/working/bloops_test.rb +0 -41
- data/examples/bloopsaphone/working/bloopsaphone_theme_song_by_why.rb +0 -31
- data/examples/bloopsaphone/working/feepogram.rb +0 -67
- data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +0 -14
- data/examples/bloopsaphone/working/tune_cheeky_drat.rb +0 -210
- data/examples/button.rb +0 -10
- data/examples/button_alert.rb +0 -6
- data/examples/button_go_away.rb +0 -6
- data/examples/button_with_position_and_size.rb +0 -7
- data/examples/coffee.rb +0 -14
- data/examples/download.rb +0 -5
- data/examples/download_and_show_image.rb +0 -28
- data/examples/edit_box.rb +0 -8
- data/examples/edit_line.rb +0 -8
- data/examples/fill.rb +0 -25
- data/examples/flow.rb +0 -11
- data/examples/fonts.rb +0 -6
- data/examples/gen.rb +0 -140
- data/examples/get_headers.rb +0 -10
- data/examples/hello_world.rb +0 -3
- data/examples/highlander.rb +0 -87
- data/examples/image/clickable_image.rb +0 -5
- data/examples/image/image.rb +0 -3
- data/examples/image/image_size.rb +0 -7
- data/examples/image/image_with_position_and_size.rb +0 -3
- data/examples/info.rb +0 -9
- data/examples/legacy/not_checked/expert/colours.rb +0 -105
- data/examples/legacy/not_checked/expert/curve-animation.rb +0 -31
- data/examples/legacy/not_checked/expert/curve-control-point.rb +0 -51
- data/examples/legacy/not_checked/expert/custom-list-box.rb +0 -53
- data/examples/legacy/not_checked/expert/definr.rb +0 -23
- data/examples/legacy/not_checked/expert/funnies.rb +0 -56
- data/examples/legacy/not_checked/expert/minesweeper.rb +0 -267
- data/examples/legacy/not_checked/expert/othello.rb +0 -318
- data/examples/legacy/not_checked/expert/pong.rb +0 -62
- data/examples/legacy/not_checked/expert/tankspank.rb +0 -385
- data/examples/legacy/not_checked/expert/tooltips.rb +0 -45
- data/examples/legacy/not_checked/expert/url.rb +0 -37
- data/examples/legacy/not_checked/expert/video-player.rb +0 -256
- data/examples/legacy/not_checked/good/_why-stories.rb +0 -44
- data/examples/legacy/not_checked/good/_why-stories.yaml +0 -387
- data/examples/legacy/not_checked/good/arc.rb +0 -37
- data/examples/legacy/not_checked/good/cardflip.rb +0 -141
- data/examples/legacy/not_checked/good/clock.rb +0 -51
- data/examples/legacy/not_checked/good/console.rb +0 -21
- data/examples/legacy/not_checked/good/follow.rb +0 -26
- data/examples/legacy/not_checked/good/image-rotate.rb +0 -14
- data/examples/legacy/not_checked/good/paris.svg +0 -7236
- data/examples/legacy/not_checked/good/path-animation.rb +0 -46
- data/examples/legacy/not_checked/good/plots.rb +0 -100
- data/examples/legacy/not_checked/good/reminder.rb +0 -174
- data/examples/legacy/not_checked/good/svgview.rb +0 -113
- data/examples/legacy/not_checked/good/vjot.rb +0 -56
- data/examples/legacy/not_checked/shoes-contrib/.gitignore +0 -2
- data/examples/legacy/not_checked/shoes-contrib/README.md +0 -34
- data/examples/legacy/not_checked/shoes-contrib/animation/animate-ovals.rb +0 -21
- data/examples/legacy/not_checked/shoes-contrib/animation/flowers.rb +0 -59
- data/examples/legacy/not_checked/shoes-contrib/animation/happy-trails.rb +0 -31
- data/examples/legacy/not_checked/shoes-contrib/animation/mice-satellites.rb +0 -27
- data/examples/legacy/not_checked/shoes-contrib/animation/oval-motion.rb +0 -12
- data/examples/legacy/not_checked/shoes-contrib/animation/pink-bubbles.rb +0 -34
- data/examples/legacy/not_checked/shoes-contrib/animation/pulsate.rb +0 -18
- data/examples/legacy/not_checked/shoes-contrib/animation/rotating-star.rb +0 -18
- data/examples/legacy/not_checked/shoes-contrib/app/download-and-save.rb +0 -11
- data/examples/legacy/not_checked/shoes-contrib/app/download.rb +0 -10
- data/examples/legacy/not_checked/shoes-contrib/app/get-google.rb +0 -11
- data/examples/legacy/not_checked/shoes-contrib/app/mouse-detection.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/app/resizeable-false.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/art/bubble-bullseye.rb +0 -23
- data/examples/legacy/not_checked/shoes-contrib/art/faded.rb +0 -17
- data/examples/legacy/not_checked/shoes-contrib/art/fill-oval.rb +0 -5
- data/examples/legacy/not_checked/shoes-contrib/art/mask.rb +0 -15
- data/examples/legacy/not_checked/shoes-contrib/art/oval-gradient.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/art/star-gradient.rb +0 -4
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-edit-box.rb +0 -8
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-new-window.rb +0 -8
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-image.rb +0 -8
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-shape.rb +0 -8
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/basic/class-book.rb +0 -43
- data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +0 -387
- data/examples/legacy/not_checked/shoes-contrib/basic/clock.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/basic/edit-stack +0 -14
- data/examples/legacy/not_checked/shoes-contrib/basic/gradient-shoes.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/basic/list_box-shape-report.rb +0 -19
- data/examples/legacy/not_checked/shoes-contrib/basic/rect-arrow.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/basic/scribble.rb +0 -8
- data/examples/legacy/not_checked/shoes-contrib/basic/search.rb +0 -32
- data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +0 -16
- data/examples/legacy/not_checked/shoes-contrib/basic/url-shoes-subclassing.rb +0 -24
- data/examples/legacy/not_checked/shoes-contrib/browser.rb +0 -21
- data/examples/legacy/not_checked/shoes-contrib/elements/background-column.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/elements/background.rb +0 -4
- data/examples/legacy/not_checked/shoes-contrib/elements/basic-fps.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/elements/border-cat.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/elements/button-block.rb +0 -8
- data/examples/legacy/not_checked/shoes-contrib/elements/check-mate.rb +0 -15
- data/examples/legacy/not_checked/shoes-contrib/elements/common-styles.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/elements/displace-animation.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/elements/edit_box-character-count.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/elements/edit_line-character-count.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/elements/list_box-select-class.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/elements/list_box.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/elements/move-flow-animate.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/elements/phat-button.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/elements/popup.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/elements/progress-bar.rb +0 -10
- data/examples/legacy/not_checked/shoes-contrib/elements/radio-dreamcast-favs.rb +0 -17
- data/examples/legacy/not_checked/shoes-contrib/elements/timer.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/elements/width-introspec.rb +0 -8
- data/examples/legacy/not_checked/shoes-contrib/events/background-hover.rb +0 -11
- data/examples/legacy/not_checked/shoes-contrib/events/motion-detect.rb +0 -9
- data/examples/legacy/not_checked/shoes-contrib/events/pressed-key.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/expert/expert-funnies.rb +0 -51
- data/examples/legacy/not_checked/shoes-contrib/expert/expert-irb.rb +0 -112
- data/examples/legacy/not_checked/shoes-contrib/expert/expert-othello.rb +0 -319
- data/examples/legacy/not_checked/shoes-contrib/good/good-arc.rb +0 -37
- data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +0 -51
- data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +0 -26
- data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +0 -174
- data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +0 -56
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask.rb +0 -4
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask_color.rb +0 -4
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask_open_file.rb +0 -4
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask_save_file.rb +0 -7
- data/examples/legacy/not_checked/shoes-contrib/kernel/confirm.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/kernel/debug.rb +0 -4
- data/examples/legacy/not_checked/shoes-contrib/kernel/exit.rb +0 -5
- data/examples/legacy/not_checked/shoes-contrib/kernel/font.rb +0 -5
- data/examples/legacy/not_checked/shoes-contrib/kernel/fonts.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/manipulation/append-slot.rb +0 -9
- data/examples/legacy/not_checked/shoes-contrib/manipulation/clear-slot.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/manipulation/prepend-slot.rb +0 -6
- data/examples/legacy/not_checked/shoes-contrib/manipulation/roll.rb +0 -17
- data/examples/legacy/not_checked/shoes-contrib/position/gutter-margin.rb +0 -5
- data/examples/legacy/not_checked/shoes-contrib/position/stack-width.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-accordion.rb +0 -75
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-shapes.rb +0 -17
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-text.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-arc.rb +0 -23
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-bounce.rb +0 -24
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-calc.rb +0 -70
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-chipmunk.rb +0 -26
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-control-sizes.rb +0 -24
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-curve.rb +0 -26
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-dialogs.rb +0 -29
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-downloader.rb +0 -27
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-draw.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-editor.rb +0 -28
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.rb +0 -28
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.shy +0 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-mask.rb +0 -21
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu.rb +0 -31
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu1.rb +0 -35
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-rubygems.rb +0 -29
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-slide.rb +0 -45
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-sphere.rb +0 -28
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-sqlite3.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-video.rb +0 -13
- data/examples/legacy/not_checked/shoes-contrib/styles/alignment.rb +0 -4
- data/examples/legacy/not_checked/shoes-contrib/styles/attachment.rb +0 -5
- data/examples/legacy/not_checked/shoes-contrib/styles/emphasis.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/styles/gradient-angle.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/styles/para-methods.rb +0 -5
- data/examples/legacy/not_checked/shoes-contrib/styles/para-red-underlined.rb +0 -3
- data/examples/legacy/not_checked/shoes-contrib/styles/para-style-method.rb +0 -4
- data/examples/legacy/not_checked/shoes-dep-samples/expert-game-of-life.rb +0 -243
- data/examples/legacy/not_checked/shoes-dep-samples/expert-othello.rb +0 -319
- data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +0 -51
- data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +0 -26
- data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +0 -174
- data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +0 -56
- data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +0 -75
- data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +0 -17
- data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +0 -23
- data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +0 -24
- data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +0 -70
- data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +0 -26
- data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +0 -24
- data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +0 -26
- data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +0 -29
- data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +0 -28
- data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +0 -28
- data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +0 -21
- data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +0 -31
- data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +0 -35
- data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +0 -29
- data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +0 -45
- data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +0 -28
- data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +0 -13
- data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +0 -13
- data/examples/legacy/not_checked/shoes3-tests/AnemicCinema1926marcelDuchampCut.mp4 +0 -0
- data/examples/legacy/not_checked/shoes3-tests/button/button.rb +0 -53
- data/examples/legacy/not_checked/shoes3-tests/cache/cache.rb +0 -41
- data/examples/legacy/not_checked/shoes3-tests/combo/combo.rb +0 -24
- data/examples/legacy/not_checked/shoes3-tests/curl/bare.rb +0 -34
- data/examples/legacy/not_checked/shoes3-tests/curl/downloader.rb +0 -40
- data/examples/legacy/not_checked/shoes3-tests/curl/m1.rb +0 -11
- data/examples/legacy/not_checked/shoes3-tests/curl/m2.rb +0 -12
- data/examples/legacy/not_checked/shoes3-tests/curl/m3.rb +0 -11
- data/examples/legacy/not_checked/shoes3-tests/curl/m4.rb +0 -5
- data/examples/legacy/not_checked/shoes3-tests/curl/typ.rb +0 -30
- data/examples/legacy/not_checked/shoes3-tests/cursor/c1.rb +0 -21
- data/examples/legacy/not_checked/shoes3-tests/decoration.rb +0 -14
- data/examples/legacy/not_checked/shoes3-tests/dialogs/ask.rb +0 -6
- data/examples/legacy/not_checked/shoes3-tests/dialogs/confirm.rb +0 -6
- data/examples/legacy/not_checked/shoes3-tests/editbox/editbox.rb +0 -36
- data/examples/legacy/not_checked/shoes3-tests/editline/editline.rb +0 -27
- data/examples/legacy/not_checked/shoes3-tests/events/button.rb +0 -32
- data/examples/legacy/not_checked/shoes3-tests/events/button.yaml +0 -40
- data/examples/legacy/not_checked/shoes3-tests/events/capture.rb +0 -57
- data/examples/legacy/not_checked/shoes3-tests/events/chipmunk.yaml +0 -47
- data/examples/legacy/not_checked/shoes3-tests/events/event0.rb +0 -8
- data/examples/legacy/not_checked/shoes3-tests/events/event1.rb +0 -51
- data/examples/legacy/not_checked/shoes3-tests/events/event1.yaml +0 -26
- data/examples/legacy/not_checked/shoes3-tests/events/event2.rb +0 -46
- data/examples/legacy/not_checked/shoes3-tests/events/event3.rb +0 -44
- data/examples/legacy/not_checked/shoes3-tests/events/event4.rb +0 -65
- data/examples/legacy/not_checked/shoes3-tests/events/event5.rb +0 -17
- data/examples/legacy/not_checked/shoes3-tests/events/event6.rb +0 -51
- data/examples/legacy/not_checked/shoes3-tests/events/replay.rb +0 -60
- data/examples/legacy/not_checked/shoes3-tests/gapp/fullscreen.rb +0 -38
- data/examples/legacy/not_checked/shoes3-tests/gapp/icon.rb +0 -56
- data/examples/legacy/not_checked/shoes3-tests/gapp/mon1.rb +0 -46
- data/examples/legacy/not_checked/shoes3-tests/gapp/settings1.rb +0 -22
- data/examples/legacy/not_checked/shoes3-tests/gapp/title1.rb +0 -34
- data/examples/legacy/not_checked/shoes3-tests/indian.m4a +0 -0
- data/examples/legacy/not_checked/shoes3-tests/menus/event.rb +0 -33
- data/examples/legacy/not_checked/shoes3-tests/menus/menu1.rb +0 -8
- data/examples/legacy/not_checked/shoes3-tests/menus/menu2.rb +0 -25
- data/examples/legacy/not_checked/shoes3-tests/menus/menu3.rb +0 -103
- data/examples/legacy/not_checked/shoes3-tests/menus/menu4.rb +0 -41
- data/examples/legacy/not_checked/shoes3-tests/menus/tests.txt +0 -42
- data/examples/legacy/not_checked/shoes3-tests/opacity.rb +0 -13
- data/examples/legacy/not_checked/shoes3-tests/plot/^IRX.R +0 -5219
- data/examples/legacy/not_checked/shoes3-tests/plot/^SPX +0 -5219
- data/examples/legacy/not_checked/shoes3-tests/plot/cstest.rb +0 -51
- data/examples/legacy/not_checked/shoes3-tests/plot/gr1.rb +0 -73
- data/examples/legacy/not_checked/shoes3-tests/plot/gr2.rb +0 -40
- data/examples/legacy/not_checked/shoes3-tests/plot/gr3.rb +0 -47
- data/examples/legacy/not_checked/shoes3-tests/plot/gr4.rb +0 -35
- data/examples/legacy/not_checked/shoes3-tests/plot/gr5.rb +0 -31
- data/examples/legacy/not_checked/shoes3-tests/plot/gr6.rb +0 -35
- data/examples/legacy/not_checked/shoes3-tests/plot/gr7.rb +0 -37
- data/examples/legacy/not_checked/shoes3-tests/plot/grcsv.rb +0 -219
- data/examples/legacy/not_checked/shoes3-tests/plot/manual.rb +0 -40
- data/examples/legacy/not_checked/shoes3-tests/progress/progress.rb +0 -29
- data/examples/legacy/not_checked/shoes3-tests/radio/clear.rb +0 -20
- data/examples/legacy/not_checked/shoes3-tests/radio/group.rb +0 -18
- data/examples/legacy/not_checked/shoes3-tests/radio/multiple.rb +0 -32
- data/examples/legacy/not_checked/shoes3-tests/radio/nogroup.rb +0 -9
- data/examples/legacy/not_checked/shoes3-tests/simpletest.svg +0 -14
- data/examples/legacy/not_checked/shoes3-tests/spinner.rb +0 -15
- data/examples/legacy/not_checked/shoes3-tests/svg.rb +0 -208
- data/examples/legacy/not_checked/shoes3-tests/switch/switch.rb +0 -28
- data/examples/legacy/not_checked/shoes3-tests/systray/back.rb +0 -20
- data/examples/legacy/not_checked/shoes3-tests/systray/note.rb +0 -17
- data/examples/legacy/not_checked/shoes3-tests/terminal/cursor.rb +0 -27
- data/examples/legacy/not_checked/shoes3-tests/terminal/ed.rb +0 -65
- data/examples/legacy/not_checked/shoes3-tests/terminal/el.rb +0 -50
- data/examples/legacy/not_checked/shoes3-tests/terminal/logattr.rb +0 -31
- data/examples/legacy/not_checked/shoes3-tests/tests_color.rb +0 -138
- data/examples/legacy/not_checked/shoes3-tests/tests_svg.rb +0 -228
- data/examples/legacy/not_checked/shoes3-tests/tests_video_vlc.rb +0 -186
- data/examples/legacy/not_checked/shoes3-tests/tooltips.rb +0 -20
- data/examples/legacy/not_checked/shoes3-tests/video_vlc.rb +0 -242
- data/examples/legacy/not_checked/shoes3-tests/wheel/wheel1.rb +0 -21
- data/examples/legacy/not_checked/simple/accordion.rb +0 -81
- data/examples/legacy/not_checked/simple/anim-shapes.rb +0 -17
- data/examples/legacy/not_checked/simple/anim-text.rb +0 -13
- data/examples/legacy/not_checked/simple/arc.rb +0 -23
- data/examples/legacy/not_checked/simple/bounce.rb +0 -24
- data/examples/legacy/not_checked/simple/chipmunk.rb +0 -26
- data/examples/legacy/not_checked/simple/control-sizes.rb +0 -24
- data/examples/legacy/not_checked/simple/curve-control-points.rb +0 -24
- data/examples/legacy/not_checked/simple/curve.rb +0 -26
- data/examples/legacy/not_checked/simple/dialogs.rb +0 -29
- data/examples/legacy/not_checked/simple/downloader.rb +0 -40
- data/examples/legacy/not_checked/simple/downloader1.rb +0 -31
- data/examples/legacy/not_checked/simple/draw.rb +0 -13
- data/examples/legacy/not_checked/simple/editor.rb +0 -28
- data/examples/legacy/not_checked/simple/form.rb +0 -30
- data/examples/legacy/not_checked/simple/image.rb +0 -21
- data/examples/legacy/not_checked/simple/info.rb +0 -78
- data/examples/legacy/not_checked/simple/mask.rb +0 -21
- data/examples/legacy/not_checked/simple/mask2.rb +0 -27
- data/examples/legacy/not_checked/simple/menu.rb +0 -31
- data/examples/legacy/not_checked/simple/menu1.rb +0 -35
- data/examples/legacy/not_checked/simple/slide.rb +0 -45
- data/examples/legacy/not_checked/simple/sphere.rb +0 -28
- data/examples/legacy/not_checked/superleg.rb +0 -244
- data/examples/legacy/working/shoes-contrib/basic/a-poem.rb +0 -24
- data/examples/legacy/working/shoes-contrib/basic/basic-blocks-instances.rb +0 -7
- data/examples/legacy/working/shoes-contrib/basic/basic-blocks.rb +0 -7
- data/examples/legacy/working/shoes-contrib/basic/basic-slot.rb +0 -8
- data/examples/legacy/working/shoes-contrib/basic/intro.rb +0 -20
- data/examples/legacy/working/shoes-contrib/basic/two-column.rb +0 -12
- data/examples/legacy/working/shoes-contrib/elements/edit_box.rb +0 -6
- data/examples/legacy/working/shoes-contrib/kernel/alert.rb +0 -3
- data/examples/legacy/working/simple/calc.rb +0 -71
- data/examples/legacy/working/simple/sqlite3.rb +0 -27
- data/examples/legacy/working/simple/timer.rb +0 -13
- data/examples/line.rb +0 -5
- data/examples/link.rb +0 -20
- data/examples/list_box.rb +0 -8
- data/examples/local_fonts.rb +0 -4
- data/examples/local_images.rb +0 -4
- data/examples/motion_events.rb +0 -20
- data/examples/para/collection_of_arguments.rb +0 -9
- data/examples/para/hello_world.rb +0 -5
- data/examples/para/hide_and_show.rb +0 -9
- data/examples/para/rainbow.rb +0 -11
- data/examples/para/rainbow_2.rb +0 -11
- data/examples/para/sizes.rb +0 -11
- data/examples/para/sizes_2.rb +0 -12
- data/examples/para/strong.rb +0 -3
- data/examples/para_text_widgets.rb +0 -4
- data/examples/parse_xl_funnies.rb +0 -58
- data/examples/pirate.png +0 -0
- data/examples/raw_flow.rb +0 -11
- data/examples/ruby_racer.rb +0 -50
- data/examples/selfitude.rb +0 -18
- data/examples/shapes/arc.rb +0 -8
- data/examples/shapes/shapes.rb +0 -8
- data/examples/shapes/shapes_fill.rb +0 -10
- data/examples/shapes/star.rb +0 -5
- data/examples/shoes_school.rb +0 -66
- data/examples/shoes_splorer.rb +0 -150
- data/examples/simple_slides.rb +0 -73
- data/examples/skip_ci/parrot.rb +0 -22
- data/examples/skip_ci/say.rb +0 -20
- data/examples/sleepless.rb +0 -26
- data/examples/slots.rb +0 -10
- data/examples/spacing.rb +0 -18
- data/examples/span.rb +0 -6
- data/examples/stack/background.rb +0 -35
- data/examples/stack/border.rb +0 -11
- data/examples/stack/gradients.rb +0 -6
- data/examples/stack/raw_stack.rb +0 -8
- data/examples/stack/stack.rb +0 -27
- data/examples/text_change.rb +0 -4
- data/examples/text_sizes.rb +0 -10
- data/examples/timmy.rb +0 -109
- data/examples/title_and_resize.rb +0 -3
- data/examples/video.rb +0 -10
- data/exe/scarpe +0 -107
- data/fonts/Pacifico.ttf +0 -0
- data/lib/scarpe/base64.rb +0 -27
- data/lib/scarpe/cats_cradle.rb +0 -255
- data/lib/scarpe/fill.rb +0 -23
- data/lib/scarpe/glibui/README.md +0 -34
- data/lib/scarpe/glibui/alert.rb +0 -65
- data/lib/scarpe/glibui/app.rb +0 -27
- data/lib/scarpe/glibui/background.rb +0 -18
- data/lib/scarpe/glibui/border.rb +0 -22
- data/lib/scarpe/glibui/button.rb +0 -38
- data/lib/scarpe/glibui/dimensions.rb +0 -22
- data/lib/scarpe/glibui/document_root.rb +0 -33
- data/lib/scarpe/glibui/edit_box.rb +0 -44
- data/lib/scarpe/glibui/edit_line.rb +0 -43
- data/lib/scarpe/glibui/flow.rb +0 -33
- data/lib/scarpe/glibui/html.rb +0 -77
- data/lib/scarpe/glibui/image.rb +0 -36
- data/lib/scarpe/glibui/link.rb +0 -29
- data/lib/scarpe/glibui/local_display.rb +0 -62
- data/lib/scarpe/glibui/para.rb +0 -84
- data/lib/scarpe/glibui/spacing.rb +0 -41
- data/lib/scarpe/glibui/stack.rb +0 -33
- data/lib/scarpe/glibui/text_widget.rb +0 -30
- data/lib/scarpe/glibui/widget.rb +0 -81
- data/lib/scarpe/glibui.rb +0 -29
- data/lib/scarpe/libui/alert.rb +0 -9
- data/lib/scarpe/libui/button.rb +0 -18
- data/lib/scarpe/libui/colors.rb +0 -157
- data/lib/scarpe/libui/core.rb +0 -66
- data/lib/scarpe/libui/flow.rb +0 -16
- data/lib/scarpe/libui/libui.rb +0 -45
- data/lib/scarpe/libui/notepad.md +0 -26
- data/lib/scarpe/libui/para.rb +0 -154
- data/lib/scarpe/libui/stack.rb +0 -34
- data/lib/scarpe/line.rb +0 -25
- data/lib/scarpe/logger.rb +0 -159
- data/lib/scarpe/promises.rb +0 -405
- data/lib/scarpe/shape.rb +0 -20
- data/lib/scarpe/slot.rb +0 -7
- data/lib/scarpe/unit_test_helpers.rb +0 -236
- data/lib/scarpe/version.rb +0 -5
- data/lib/scarpe/widgets.rb +0 -35
- data/lib/scarpe/wv/alert.rb +0 -65
- data/lib/scarpe/wv/app.rb +0 -104
- data/lib/scarpe/wv/arc.rb +0 -57
- data/lib/scarpe/wv/background.rb +0 -27
- data/lib/scarpe/wv/border.rb +0 -24
- data/lib/scarpe/wv/button.rb +0 -50
- data/lib/scarpe/wv/control_interface.rb +0 -147
- data/lib/scarpe/wv/control_interface_test.rb +0 -234
- data/lib/scarpe/wv/dimensions.rb +0 -22
- data/lib/scarpe/wv/document_root.rb +0 -8
- data/lib/scarpe/wv/edit_box.rb +0 -44
- data/lib/scarpe/wv/edit_line.rb +0 -43
- data/lib/scarpe/wv/fill.rb +0 -30
- data/lib/scarpe/wv/flow.rb +0 -24
- data/lib/scarpe/wv/font.rb +0 -36
- data/lib/scarpe/wv/html.rb +0 -108
- data/lib/scarpe/wv/image.rb +0 -41
- data/lib/scarpe/wv/line.rb +0 -38
- data/lib/scarpe/wv/link.rb +0 -29
- data/lib/scarpe/wv/list_box.rb +0 -50
- data/lib/scarpe/wv/para.rb +0 -90
- data/lib/scarpe/wv/shape.rb +0 -35
- data/lib/scarpe/wv/shape_helper.rb +0 -44
- data/lib/scarpe/wv/slot.rb +0 -81
- data/lib/scarpe/wv/spacing.rb +0 -41
- data/lib/scarpe/wv/span.rb +0 -66
- data/lib/scarpe/wv/stack.rb +0 -24
- data/lib/scarpe/wv/star.rb +0 -64
- data/lib/scarpe/wv/subscription_item.rb +0 -50
- data/lib/scarpe/wv/text_widget.rb +0 -30
- data/lib/scarpe/wv/video.rb +0 -42
- data/lib/scarpe/wv/web_wrangler.rb +0 -683
- data/lib/scarpe/wv/webview_local_display.rb +0 -73
- data/lib/scarpe/wv/webview_relay_display.rb +0 -185
- data/lib/scarpe/wv/widget.rb +0 -185
- data/lib/scarpe/wv/wv_display_worker.rb +0 -65
- data/lib/scarpe/wv.rb +0 -43
- data/lib/scarpe/wv_local.rb +0 -6
- data/lib/scarpe/wv_relay.rb +0 -6
- data/lib/scarpe.rb +0 -29
- data/logger/debug_web_wrangler.json +0 -4
- data/logger/scarpe_wv_test.json +0 -4
- data/scarpe-0.2.0.gem +0 -0
- data/scarpe.gemspec +0 -44
- data/scarpegen.rb +0 -193
- data/sig/scarpe.rbs +0 -4
- data/templates/basic_class_template.erb +0 -38
- data/templates/class_template_with_event_bind.erb +0 -27
- data/templates/class_template_with_shapes.erb +0 -43
- data/templates/example_template.erb +0 -3
- data/templates/module_template.erb +0 -12
- data/templates/webview_template.erb +0 -27
data/examples/stack/stack.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
Shoes.app do
|
2
|
-
stack margin: 50 do
|
3
|
-
button "with 50px margin"
|
4
|
-
end
|
5
|
-
|
6
|
-
stack width: 0.5 do
|
7
|
-
button "50% width"
|
8
|
-
end
|
9
|
-
|
10
|
-
stack width: 80, height: 100 do
|
11
|
-
para "This para is in a stack that's 80px wide and 100px high"
|
12
|
-
end
|
13
|
-
|
14
|
-
stack width: -80 do
|
15
|
-
button "100% - 80px width"
|
16
|
-
end
|
17
|
-
|
18
|
-
flow do
|
19
|
-
stack width: 0.33 do
|
20
|
-
button "inside flow left 1/3"
|
21
|
-
end
|
22
|
-
|
23
|
-
stack width: 0.67 do
|
24
|
-
button "inside flow right 2/3"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/examples/text_change.rb
DELETED
data/examples/text_sizes.rb
DELETED
data/examples/timmy.rb
DELETED
@@ -1,109 +0,0 @@
|
|
1
|
-
# Timmy 1
|
2
|
-
|
3
|
-
# Shoes.app do
|
4
|
-
# para "You've downloaded a virus!"
|
5
|
-
# end
|
6
|
-
|
7
|
-
# Timmy 2
|
8
|
-
|
9
|
-
# Shoes.app title: "Cookies Recipe", height: 1000, width: 1000 do
|
10
|
-
# banner "You've downloaded a virus!", :align => "center"
|
11
|
-
# end
|
12
|
-
|
13
|
-
# Timmy 3
|
14
|
-
|
15
|
-
# Shoes.app title: "Cookies Recipe", height: 1000, width: 1000 do
|
16
|
-
# background "black"
|
17
|
-
# @header = banner "You've downloaded a virus!", align: "center", stroke: red
|
18
|
-
|
19
|
-
# flow height: "30%" do
|
20
|
-
# stack width: "100%" do
|
21
|
-
# background "white"
|
22
|
-
# title "You thought this was a recipe for cookies, but it was me, your arch nemesis!\n\n", align: "center"
|
23
|
-
# para "I have taken over your computer and will not give it back until you pay me $1,000,000.",
|
24
|
-
# align: "center",
|
25
|
-
# size: 30
|
26
|
-
# end
|
27
|
-
# end
|
28
|
-
# flow height: "20%" do
|
29
|
-
# stack width: "100%" do
|
30
|
-
# background "white"
|
31
|
-
# para "Pay me now or I will delete all your files!\n",
|
32
|
-
# "Courtesy, your friends in the Mafia",
|
33
|
-
# align: "center", size: 30
|
34
|
-
# banner "💰", align: "center"
|
35
|
-
# end
|
36
|
-
# end
|
37
|
-
# flow height: "45%" do
|
38
|
-
# border "black", strokewidth: 10
|
39
|
-
# background "black"
|
40
|
-
# stack width: "33.33%" do
|
41
|
-
# background "green"
|
42
|
-
# end
|
43
|
-
# stack width: "33.33%" do
|
44
|
-
# background "white"
|
45
|
-
# end
|
46
|
-
# stack width: "33.33%" do
|
47
|
-
# background "red"
|
48
|
-
# end
|
49
|
-
# end
|
50
|
-
# end
|
51
|
-
|
52
|
-
|
53
|
-
# Timmy 4 (more interactive)
|
54
|
-
# Timmy hasn't quite learned about variables yet, so he's using global variables.
|
55
|
-
|
56
|
-
Shoes.app title: "Cookies Recipe", height: 1000, width: 1000 do
|
57
|
-
$main_background = background "black"
|
58
|
-
$header = banner "You've downloaded a virus!", align: "center", stroke: red
|
59
|
-
|
60
|
-
flow height: "30%" do
|
61
|
-
stack width: "100%" do
|
62
|
-
background "white"
|
63
|
-
$header_one = title "You thought this was a recipe for cookies, but it was me, your arch nemesis!\n\n", align: "center"
|
64
|
-
$header_two = para "I have taken over your computer and will not give it back until you pay me $1,000,000.",
|
65
|
-
align: "center",
|
66
|
-
size: 30
|
67
|
-
end
|
68
|
-
end
|
69
|
-
flow height: "30%" do
|
70
|
-
stack width: "33.33%" do
|
71
|
-
background "blue"
|
72
|
-
star 230, 100, 6, 150, 50
|
73
|
-
end
|
74
|
-
stack width: "33.33%" do
|
75
|
-
background "white"
|
76
|
-
$body_one = para "Pay me now or I will delete all your files!\n",
|
77
|
-
"Courtesy, the Pirates of the Highlands 🏴☠️",
|
78
|
-
align: "center", size: 30
|
79
|
-
$body_two = banner "💰", align: "center"
|
80
|
-
end
|
81
|
-
stack width: "33.33%" do
|
82
|
-
background "blue"
|
83
|
-
star 230, 100, 6, 150, 50
|
84
|
-
end
|
85
|
-
end
|
86
|
-
flow height: "30%" do
|
87
|
-
stack width: "33.33%" do
|
88
|
-
$pirate_image = image "https://i.imgur.com/mIaqQaF.png"
|
89
|
-
end
|
90
|
-
stack width: "33.33%" do
|
91
|
-
@push = button "Pay up 💸", width: 335, height: 300, size: 80 do
|
92
|
-
$header.replace "Just kidding Grandma! I love you! ❤️❤️❤️"
|
93
|
-
$header.stroke = white
|
94
|
-
$body_one.replace "I'm sorry for scaring you. I hope you have a great day!"
|
95
|
-
$body_two.replace "🍪"
|
96
|
-
$header_one.replace "❤️"
|
97
|
-
$header_two.replace ""
|
98
|
-
$pirate_image.replace "https://media.tenor.com/ZVJxuXJOczIAAAAd/kazoo-kid.gif"
|
99
|
-
$pirate_image_two.replace "https://media.tenor.com/ZVJxuXJOczIAAAAd/kazoo-kid.gif"
|
100
|
-
@push.text = "🍪"
|
101
|
-
end
|
102
|
-
end
|
103
|
-
stack width: "33.33%" do
|
104
|
-
$pirate_image_two = image "https://i.imgur.com/mIaqQaF.png"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
|
data/examples/video.rb
DELETED
data/exe/scarpe
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# We need to not use syntactic features of very recent Rubies in this file, so that it parses
|
4
|
-
# correctly in earlier Rubies and can successfully give the version-check error.
|
5
|
-
if RUBY_VERSION[0..2] < "3.2"
|
6
|
-
$stderr.puts("Scarpe requires Ruby 3.2 or higher!")
|
7
|
-
exit(-1)
|
8
|
-
end
|
9
|
-
|
10
|
-
def print_usage
|
11
|
-
puts <<USAGE
|
12
|
-
Usage: scarpe [OPTIONS] <scarpe app file> # Same as "scarpe run"
|
13
|
-
scarpe [OPTIONS] run <scarpe app file>
|
14
|
-
scarpe [OPTIONS] env # print Scarpe environment settings
|
15
|
-
scarpe -v # print the Scarpe gem version and exit
|
16
|
-
Options:
|
17
|
-
--dev Use development local scarpe, not an installed gem
|
18
|
-
--debug Turn on application debug mode
|
19
|
-
USAGE
|
20
|
-
end
|
21
|
-
|
22
|
-
def env_or_default(env_var, default_val)
|
23
|
-
"#{env_var}: #{ENV[env_var] || default_val}"
|
24
|
-
end
|
25
|
-
|
26
|
-
def env_or_none(env_var)
|
27
|
-
env_or_default(env_var, "(none)")
|
28
|
-
end
|
29
|
-
|
30
|
-
def print_env
|
31
|
-
puts <<~SCARPE_ENV
|
32
|
-
Scarpe environment:
|
33
|
-
#{env_or_default("SCARPE_DISPLAY_SERVICE", "(default)wv_local")}
|
34
|
-
#{env_or_default("SCARPE_LOG_CONFIG", "(default)#{Scarpe::Log::DEFAULT_LOG_CONFIG.inspect}")}
|
35
|
-
#{env_or_none("SCARPE_APP_TEST")}
|
36
|
-
Scarpe::WV environment:
|
37
|
-
#{env_or_none("SCARPE_TEST_CONTROL")}
|
38
|
-
#{env_or_none("SCARPE_TEST_RESULTS")}
|
39
|
-
#{env_or_none("SCARPE_DEBUG")}
|
40
|
-
Ruby and shell environment:
|
41
|
-
RUBY_DESCRIPTION: #{RUBY_DESCRIPTION.inspect}
|
42
|
-
RUBY_PLATFORM: #{RUBY_PLATFORM.inspect}
|
43
|
-
RUBY_ENGINE: #{RUBY_ENGINE.inspect}
|
44
|
-
#{env_or_none("SHELL")}
|
45
|
-
#{env_or_none("PATH")}
|
46
|
-
#{env_or_none("LD_LIBRARY_PATH")}
|
47
|
-
#{env_or_none("DYLD_LIBRARY_PATH")}
|
48
|
-
#{env_or_none("GEM_ROOT")}
|
49
|
-
#{env_or_none("GEM_HOME")}
|
50
|
-
#{env_or_none("GEM_PATH")}
|
51
|
-
SCARPE_ENV
|
52
|
-
end
|
53
|
-
|
54
|
-
# --dev option applies to all actions
|
55
|
-
use_dev = ARGV.delete("--dev") ? true : false
|
56
|
-
use_debug = ARGV.delete("--debug") ? true : false
|
57
|
-
|
58
|
-
verb = "run"
|
59
|
-
verb_target = nil
|
60
|
-
|
61
|
-
case ARGV[0]
|
62
|
-
when "-v"
|
63
|
-
# This will be fine, pass it through.
|
64
|
-
verb = "-v"
|
65
|
-
when "env"
|
66
|
-
if ARGV.length != 1
|
67
|
-
print_usage
|
68
|
-
exit -1
|
69
|
-
end
|
70
|
-
|
71
|
-
verb = "env"
|
72
|
-
when "run"
|
73
|
-
if ARGV.length != 2
|
74
|
-
print_usage
|
75
|
-
exit -1
|
76
|
-
end
|
77
|
-
verb_target = ARGV[1]
|
78
|
-
else
|
79
|
-
# Default to run
|
80
|
-
if ARGV.length != 1
|
81
|
-
print_usage
|
82
|
-
exit -1
|
83
|
-
end
|
84
|
-
verb_target = ARGV[0]
|
85
|
-
end
|
86
|
-
|
87
|
-
if use_debug
|
88
|
-
ENV['SCARPE_DEBUG'] = 'true'
|
89
|
-
end
|
90
|
-
if use_dev
|
91
|
-
dev_path = File.expand_path("../lib", __dir__)
|
92
|
-
$LOAD_PATH.prepend dev_path
|
93
|
-
end
|
94
|
-
# We mustn't require Scarpe sooner than this so that the --dev setting is respected
|
95
|
-
require "scarpe"
|
96
|
-
|
97
|
-
case verb
|
98
|
-
when "-v"
|
99
|
-
puts "Scarpe #{Scarpe::VERSION}"
|
100
|
-
when "run"
|
101
|
-
# Run the Scarpe app file
|
102
|
-
load ARGV[0]
|
103
|
-
when "env"
|
104
|
-
print_env
|
105
|
-
else
|
106
|
-
raise "Internal error! Unknown ./exe/scarpe verb!"
|
107
|
-
end
|
data/fonts/Pacifico.ttf
DELETED
Binary file
|
data/lib/scarpe/base64.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "base64"
|
4
|
-
require "uri"
|
5
|
-
|
6
|
-
class Scarpe
|
7
|
-
module Base64
|
8
|
-
def valid_url?(string)
|
9
|
-
uri = URI.parse(string)
|
10
|
-
uri.is_a?(URI::HTTP) || uri.is_a?(URI::HTTPS)
|
11
|
-
rescue URI::InvalidURIError, URI::BadURIError
|
12
|
-
false
|
13
|
-
end
|
14
|
-
|
15
|
-
def encode_file_to_base64(image_filename)
|
16
|
-
directory_path = File.dirname(__FILE__, 3)
|
17
|
-
|
18
|
-
image_path = File.join(directory_path, image_filename)
|
19
|
-
|
20
|
-
image_data = File.binread(image_path)
|
21
|
-
|
22
|
-
encoded_data = ::Base64.strict_encode64(image_data)
|
23
|
-
|
24
|
-
encoded_data
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/lib/scarpe/cats_cradle.rb
DELETED
@@ -1,255 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "scarpe/unit_test_helpers"
|
4
|
-
|
5
|
-
require "fiber"
|
6
|
-
|
7
|
-
# "Cat's Cradle" is a children's game where they interlace string between
|
8
|
-
# their fingers to make beautiful complicated shapes. The interlacing
|
9
|
-
# of fibers made it a good name for a prototype.
|
10
|
-
|
11
|
-
# An attempt at an experimental Fiber-based testing system to deal with
|
12
|
-
# Shoes, Display and JS all at the same time.
|
13
|
-
#
|
14
|
-
# In general, we'll use Fiber.transfer to bounce control back and forth
|
15
|
-
# between the evented implementations (e.g. waiting for redraw) that
|
16
|
-
# need to return control to Webview, and the procedural test flows
|
17
|
-
# that look far better if we don't do that explicitly.
|
18
|
-
#
|
19
|
-
# Ruby Fiber basic docs: https://ruby-doc.org/core-3.0.0/Fiber.html
|
20
|
-
#
|
21
|
-
module Scarpe::Test
|
22
|
-
# We'd like something we can call Shoes widget methods on, such as para.replace.
|
23
|
-
# But we'd also like to be able to grab the corresponding display widget and
|
24
|
-
# call some of *those* methods.
|
25
|
-
class CCProxy
|
26
|
-
attr_reader :display
|
27
|
-
|
28
|
-
def initialize(obj)
|
29
|
-
@obj = obj
|
30
|
-
# TODO: how to do this with Webview relay? Proxy object to send a message, maybe?
|
31
|
-
@display = ::Shoes::DisplayService.display_service.query_display_widget_for(obj.linkable_id)
|
32
|
-
end
|
33
|
-
|
34
|
-
def method_missing(method, ...)
|
35
|
-
if @obj.respond_to?(method)
|
36
|
-
self.singleton_class.define_method(method) do |*args, **kwargs, &block|
|
37
|
-
@obj.send(method, *args, **kwargs, &block)
|
38
|
-
end
|
39
|
-
send(method, ...)
|
40
|
-
else
|
41
|
-
super # raise an exception
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def respond_to_missing?(method_name, include_private = false)
|
46
|
-
@obj.respond_to_missing?(method_name, include_private)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# This class defines the CatsCradle DSL. It also holds a "bag of fibers"
|
51
|
-
# with promises for when they should next resume.
|
52
|
-
class CCInstance
|
53
|
-
include Scarpe::Log
|
54
|
-
include Scarpe::Test::Helpers
|
55
|
-
|
56
|
-
def self.instance
|
57
|
-
@instance ||= CCInstance.new
|
58
|
-
end
|
59
|
-
|
60
|
-
def initialize
|
61
|
-
log_init("CatsCradle")
|
62
|
-
|
63
|
-
@assertion_data = []
|
64
|
-
@assertions_passed = 0
|
65
|
-
@assertions_failed = []
|
66
|
-
|
67
|
-
@waiting_fibers = []
|
68
|
-
@event_promises = {}
|
69
|
-
|
70
|
-
@manager_fiber = Fiber.new do
|
71
|
-
loop do
|
72
|
-
# A fiber can run briefly and then exit. It can run and then block on an API call.
|
73
|
-
# These fibers return promises to indicate to CatsCradle when they can run again.
|
74
|
-
# A fiber that is no longer #alive? is assumed to be successfully finished.
|
75
|
-
@waiting_fibers.each do |fiber_data|
|
76
|
-
next unless fiber_data[:promise].fulfilled?
|
77
|
-
|
78
|
-
@log.debug("Resuming fiber with value #{fiber_data[:promise].returned_value.inspect}")
|
79
|
-
result = fiber_data[:fiber].transfer fiber_data[:promise].returned_value
|
80
|
-
|
81
|
-
# Dead fibers will be removed later, just leave it
|
82
|
-
next unless fiber_data[:fiber].alive?
|
83
|
-
|
84
|
-
case result
|
85
|
-
when ::Scarpe::Promise
|
86
|
-
fiber_data[:promise] = result
|
87
|
-
else
|
88
|
-
raise "Unexpected object returned from Fiber#transfer for still-living Fiber! #{result.inspect}"
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
# Throw out dead fibers or those that will never wake
|
93
|
-
@waiting_fibers.select! do |fiber_data|
|
94
|
-
fiber_data[:fiber].alive? && !fiber_data[:promise].rejected?
|
95
|
-
end
|
96
|
-
|
97
|
-
# Done with this iteration
|
98
|
-
Fiber.yield
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
# If we add "every" events, that's likely to complicate timing and event_promise handling.
|
104
|
-
EVENT_TYPES = [:next_heartbeat, :next_redraw]
|
105
|
-
|
106
|
-
# This needs to be called after the basic display service objects exist
|
107
|
-
# and we can find the control interface.
|
108
|
-
def event_init
|
109
|
-
return if @cc_init_done
|
110
|
-
|
111
|
-
@cc_init_done = true
|
112
|
-
|
113
|
-
@control_interface = ::Shoes::DisplayService.display_service.control_interface
|
114
|
-
@wrangler = @control_interface.wrangler
|
115
|
-
|
116
|
-
cc_instance = self # ControlInterface#on_event does an instance eval. We'll reset self with another.
|
117
|
-
|
118
|
-
@control_interface.on_event(:every_heartbeat) do
|
119
|
-
cc_instance.instance_eval do
|
120
|
-
p = @event_promises.delete(:next_heartbeat)
|
121
|
-
p&.fulfilled!
|
122
|
-
|
123
|
-
# Give every ready fiber a chance to run once.
|
124
|
-
@manager_fiber.resume
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
@control_interface.on_event(:every_redraw) do
|
129
|
-
cc_instance.instance_eval do
|
130
|
-
p = @event_promises.delete(:next_redraw)
|
131
|
-
p&.fulfilled!
|
132
|
-
|
133
|
-
# Give every ready fiber a chance to run once.
|
134
|
-
@manager_fiber.resume
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
def event_promise(event)
|
140
|
-
@event_promises[event] ||= ::Scarpe::Promise.new
|
141
|
-
end
|
142
|
-
|
143
|
-
def on_event(event, &block)
|
144
|
-
raise "Unknown event type: #{event.inspect}!" unless EVENT_TYPES.include?(event)
|
145
|
-
|
146
|
-
f = Fiber.new do
|
147
|
-
CCInstance.instance.instance_eval(&block)
|
148
|
-
end
|
149
|
-
@waiting_fibers << { promise: event_promise(event), fiber: f }
|
150
|
-
end
|
151
|
-
|
152
|
-
WIDGET_FINDERS = {
|
153
|
-
"alert" => ::Scarpe::Alert,
|
154
|
-
"button" => ::Scarpe::Button,
|
155
|
-
"edit_box" => ::Scarpe::EditBox,
|
156
|
-
"edit_line" => ::Scarpe::EditLine,
|
157
|
-
"flow" => ::Scarpe::Flow,
|
158
|
-
"image" => ::Scarpe::Image,
|
159
|
-
"list_box" => ::Scarpe::ListBox,
|
160
|
-
"para" => ::Scarpe::Para,
|
161
|
-
"shape" => ::Scarpe::Shape,
|
162
|
-
"stack" => ::Scarpe::Stack,
|
163
|
-
"star" => ::Scarpe::Star,
|
164
|
-
}
|
165
|
-
# What to do about TextWidgets? Link, code, em, strong?
|
166
|
-
# Also, wait, what's up with span? What *is* that?
|
167
|
-
Shoes::Widget.widget_classes.each do |widget_class|
|
168
|
-
finder_name = widget_class.dsl_name
|
169
|
-
|
170
|
-
define_method(finder_name) do |*args|
|
171
|
-
app = Shoes::App.instance
|
172
|
-
|
173
|
-
widgets = app.find_widgets_by(widget_class, *args)
|
174
|
-
raise "Found more than one #{finder_name} matching #{args.inspect}!" if widgets.size > 1
|
175
|
-
raise "Found no #{finder_name} matching #{args.inspect}!" if widgets.empty?
|
176
|
-
|
177
|
-
CCProxy.new(widgets[0])
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
|
-
def wait(promise)
|
182
|
-
raise("Must supply a promise to wait!") unless promise.is_a?(::Scarpe::Promise)
|
183
|
-
|
184
|
-
# Wait until this promise is complete before running again
|
185
|
-
@manager_fiber.transfer(promise)
|
186
|
-
end
|
187
|
-
|
188
|
-
# This returns a promise, which can be waited on using wait()
|
189
|
-
def fully_updated
|
190
|
-
@wrangler.promise_dom_fully_updated
|
191
|
-
end
|
192
|
-
|
193
|
-
def dom_html(timeout: 1.0)
|
194
|
-
query_js_value("document.getElementById('wrapper-wvroot').innerHTML", timeout:)
|
195
|
-
end
|
196
|
-
|
197
|
-
def query_js_value(js_code, timeout: 1.0)
|
198
|
-
js_promise = @wrangler.eval_js_async(js_code, timeout:)
|
199
|
-
|
200
|
-
# This promise will return the string, so we can just pass it to #transfer
|
201
|
-
@manager_fiber.transfer(js_promise)
|
202
|
-
end
|
203
|
-
|
204
|
-
def assert(value, msg = nil)
|
205
|
-
msg ||= "Assertion #{value ? "succeeded" : "failed"}"
|
206
|
-
@assertion_data << [value ? true : false, msg]
|
207
|
-
if value
|
208
|
-
@assertions_passed += 1
|
209
|
-
else
|
210
|
-
@assertions_failed << msg
|
211
|
-
end
|
212
|
-
end
|
213
|
-
|
214
|
-
def assert_equal(expected, actual, msg = nil)
|
215
|
-
msg ||= "Expected #{actual.inspect} to equal #{expected.inspect}!"
|
216
|
-
assert actual == expected, msg
|
217
|
-
end
|
218
|
-
|
219
|
-
def assertion_data_as_a_struct
|
220
|
-
{
|
221
|
-
still_pending: 0,
|
222
|
-
succeeded: @assertions_passed,
|
223
|
-
failed: @assertions_failed.size,
|
224
|
-
failures: @assertions_failed,
|
225
|
-
}
|
226
|
-
end
|
227
|
-
|
228
|
-
def test_metadata
|
229
|
-
{}
|
230
|
-
end
|
231
|
-
|
232
|
-
def test_finished
|
233
|
-
if !@assertions_failed.empty?
|
234
|
-
return_results(false, "Assertions failed", assertion_data_as_a_struct)
|
235
|
-
elsif @assertions_passed > 0
|
236
|
-
return_results(true, "All assertions passed", assertion_data_as_a_struct)
|
237
|
-
else
|
238
|
-
return_results(true, "Test finished successfully")
|
239
|
-
end
|
240
|
-
::Shoes::DisplayService.dispatch_event("destroy", nil)
|
241
|
-
end
|
242
|
-
end
|
243
|
-
|
244
|
-
# This module is mixed into Shoes::App if we're running CC-based tests
|
245
|
-
module CatsCradle
|
246
|
-
def event_init
|
247
|
-
@cc_instance = CCInstance.instance
|
248
|
-
@cc_instance.event_init
|
249
|
-
end
|
250
|
-
|
251
|
-
def on_heartbeat(&block)
|
252
|
-
@cc_instance.on_event(:next_heartbeat, &block)
|
253
|
-
end
|
254
|
-
end
|
255
|
-
end
|
data/lib/scarpe/fill.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class Scarpe
|
4
|
-
class Fill < Shoes::Widget
|
5
|
-
display_properties :color
|
6
|
-
|
7
|
-
def initialize(color)
|
8
|
-
@color = color
|
9
|
-
super
|
10
|
-
create_display_widget
|
11
|
-
end
|
12
|
-
|
13
|
-
def element
|
14
|
-
HTML.render do |h|
|
15
|
-
h.style(<<~CSS)
|
16
|
-
##{html_id} {
|
17
|
-
background-color: #{@color};
|
18
|
-
}
|
19
|
-
CSS
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/scarpe/glibui/README.md
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
## IN DEVELOPMENT
|
2
|
-
|
3
|
-
Glimmer LibUI is a fully functioning way to build desktop applications in Ruby.
|
4
|
-
|
5
|
-
One possible way to make this work would be a parser-compiler setup to essentially _transform_ shoes app text into GlimmerLibUI text. Which should be abstract enough that we wouldn't have to go more bare metal and use the ruby dependency LibUI.
|
6
|
-
|
7
|
-
Hello world example:
|
8
|
-
|
9
|
-
```ruby
|
10
|
-
# parser/compiler example:
|
11
|
-
|
12
|
-
Shoes.app do
|
13
|
-
para "Hello World"
|
14
|
-
end
|
15
|
-
|
16
|
-
# becomes
|
17
|
-
|
18
|
-
include Glimmer
|
19
|
-
|
20
|
-
window {
|
21
|
-
area {
|
22
|
-
text {
|
23
|
-
string "Hello World"
|
24
|
-
}
|
25
|
-
}
|
26
|
-
}.show
|
27
|
-
```
|
28
|
-
|
29
|
-
# GLibUI Finished Examples
|
30
|
-
|
31
|
-
* /examples/hello_world.rb
|
32
|
-
* /examples/title_and_resize.rb
|
33
|
-
* /examples/stack/raw_stack.rb
|
34
|
-
* /examples/raw_flow.rb
|
data/lib/scarpe/glibui/alert.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class Scarpe
|
4
|
-
class GlimmerLibUIAlert < GlimmerLibUIWidget
|
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
|