scarpe 0.1.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +80 -9
- data/.ruby-version +1 -0
- data/.vscode/extensions.json +5 -0
- data/.yardopts +3 -0
- data/CHANGELOG.md +14 -0
- data/CONTRIBUTING.md +20 -0
- data/Gemfile +14 -2
- data/README.md +138 -18
- data/Rakefile +2 -3
- data/dev.yml +7 -0
- data/docs/static/PKGBUILD +47 -0
- data/docs/static/Shoes.icns +0 -0
- data/docs/static/avatar.png +0 -0
- data/docs/static/code_highlighter.js +188 -0
- data/docs/static/code_highlighter_ruby.js +26 -0
- 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 +3529 -0
- data/docs/static/manual-ja.txt +2829 -0
- data/docs/static/manual.css +171 -0
- data/docs/static/manual.md +3528 -0
- 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 +375 -0
- data/docs/static/stubs/cocoa-install +0 -0
- data/docs/static/stubs/sh-install +49 -0
- 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/examples/bloopsaphone/working/1901_by_Aanand_Prasad.rb +478 -0
- data/examples/bloopsaphone/working/b1.rb +64 -0
- data/examples/bloopsaphone/working/b2.rb +36 -0
- data/examples/bloopsaphone/working/bloops_test.rb +41 -0
- data/examples/bloopsaphone/working/bloopsaphone_theme_song_by_why.rb +31 -0
- data/examples/bloopsaphone/working/feepogram.rb +67 -0
- data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +14 -0
- data/examples/bloopsaphone/working/tune_cheeky_drat.rb +210 -0
- data/examples/button.rb +6 -5
- data/examples/button_alert.rb +6 -0
- data/examples/button_go_away.rb +6 -0
- data/examples/button_with_position_and_size.rb +7 -0
- data/examples/coffee.rb +14 -0
- data/examples/download.rb +5 -0
- data/examples/edit_box.rb +10 -0
- data/examples/edit_line.rb +8 -0
- data/examples/fill.rb +25 -0
- data/examples/flow.rb +11 -0
- data/examples/fonts.rb +6 -0
- data/examples/gen.rb +140 -0
- data/examples/hello_world.rb +2 -4
- data/examples/highlander.rb +87 -0
- data/examples/image/clickable_image.rb +5 -0
- data/examples/{image.rb → image/image.rb} +2 -4
- data/examples/image/image_size.rb +7 -0
- data/examples/image/image_with_position_and_size.rb +3 -0
- data/examples/info.rb +9 -0
- data/examples/legacy/not_checked/expert/colours.rb +105 -0
- data/examples/legacy/not_checked/expert/curve-animation.rb +31 -0
- data/examples/legacy/not_checked/expert/curve-control-point.rb +51 -0
- data/examples/legacy/not_checked/expert/custom-list-box.rb +53 -0
- data/examples/legacy/not_checked/expert/definr.rb +23 -0
- data/examples/legacy/not_checked/expert/funnies.rb +56 -0
- data/examples/legacy/not_checked/expert/minesweeper.rb +267 -0
- data/examples/legacy/not_checked/expert/othello.rb +318 -0
- data/examples/legacy/not_checked/expert/pong.rb +62 -0
- data/examples/legacy/not_checked/expert/tankspank.rb +385 -0
- data/examples/legacy/not_checked/expert/tooltips.rb +45 -0
- data/examples/legacy/not_checked/expert/url.rb +37 -0
- data/examples/legacy/not_checked/expert/video-player.rb +256 -0
- data/examples/legacy/not_checked/good/_why-stories.rb +44 -0
- data/examples/legacy/not_checked/good/_why-stories.yaml +387 -0
- data/examples/legacy/not_checked/good/arc.rb +37 -0
- data/examples/legacy/not_checked/good/cardflip.rb +141 -0
- data/examples/legacy/not_checked/good/clock.rb +51 -0
- data/examples/legacy/not_checked/good/console.rb +21 -0
- data/examples/legacy/not_checked/good/follow.rb +26 -0
- data/examples/legacy/not_checked/good/image-rotate.rb +14 -0
- data/examples/legacy/not_checked/good/paris.svg +7236 -0
- data/examples/legacy/not_checked/good/path-animation.rb +46 -0
- data/examples/legacy/not_checked/good/plots.rb +100 -0
- data/examples/legacy/not_checked/good/reminder.rb +174 -0
- data/examples/legacy/not_checked/good/svgview.rb +113 -0
- data/examples/legacy/not_checked/good/vjot.rb +56 -0
- data/examples/legacy/not_checked/shoes-contrib/.gitignore +2 -0
- data/examples/legacy/not_checked/shoes-contrib/README.md +34 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/animate-ovals.rb +21 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/flowers.rb +59 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/happy-trails.rb +31 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/mice-satellites.rb +27 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/oval-motion.rb +12 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/pink-bubbles.rb +34 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/pulsate.rb +18 -0
- data/examples/legacy/not_checked/shoes-contrib/animation/rotating-star.rb +18 -0
- data/examples/legacy/not_checked/shoes-contrib/app/download-and-save.rb +11 -0
- data/examples/legacy/not_checked/shoes-contrib/app/download.rb +10 -0
- data/examples/legacy/not_checked/shoes-contrib/app/get-google.rb +11 -0
- data/examples/legacy/not_checked/shoes-contrib/app/mouse-detection.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/app/resizeable-false.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/art/bubble-bullseye.rb +23 -0
- data/examples/legacy/not_checked/shoes-contrib/art/faded.rb +17 -0
- data/examples/legacy/not_checked/shoes-contrib/art/fill-oval.rb +5 -0
- data/examples/legacy/not_checked/shoes-contrib/art/mask.rb +15 -0
- data/examples/legacy/not_checked/shoes-contrib/art/oval-gradient.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/art/star-gradient.rb +4 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-edit-box.rb +8 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-new-window.rb +8 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-image.rb +8 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-shape.rb +8 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/class-book.rb +43 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +387 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/clock.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/edit-stack +14 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/gradient-shoes.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/list_box-shape-report.rb +19 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/rect-arrow.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/scribble.rb +8 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/search.rb +32 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +16 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/url-shoes-subclassing.rb +24 -0
- data/examples/legacy/not_checked/shoes-contrib/browser.rb +21 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/background-column.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/background.rb +4 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/basic-fps.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/border-cat.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/button-block.rb +8 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/check-mate.rb +15 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/common-styles.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/displace-animation.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/edit_box-character-count.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/edit_line-character-count.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/list_box-select-class.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/list_box.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/move-flow-animate.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/phat-button.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/popup.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/progress-bar.rb +10 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/radio-dreamcast-favs.rb +17 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/timer.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/elements/width-introspec.rb +8 -0
- data/examples/legacy/not_checked/shoes-contrib/events/background-hover.rb +11 -0
- data/examples/legacy/not_checked/shoes-contrib/events/motion-detect.rb +9 -0
- data/examples/legacy/not_checked/shoes-contrib/events/pressed-key.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/expert/expert-funnies.rb +51 -0
- data/examples/legacy/not_checked/shoes-contrib/expert/expert-irb.rb +112 -0
- data/examples/legacy/not_checked/shoes-contrib/expert/expert-othello.rb +319 -0
- data/examples/legacy/not_checked/shoes-contrib/good/good-arc.rb +37 -0
- data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +51 -0
- data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +26 -0
- data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +174 -0
- data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +56 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask.rb +4 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask_color.rb +4 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask_open_file.rb +4 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/ask_save_file.rb +7 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/confirm.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/debug.rb +4 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/exit.rb +5 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/font.rb +5 -0
- data/examples/legacy/not_checked/shoes-contrib/kernel/fonts.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/manipulation/append-slot.rb +9 -0
- data/examples/legacy/not_checked/shoes-contrib/manipulation/clear-slot.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/manipulation/prepend-slot.rb +6 -0
- data/examples/legacy/not_checked/shoes-contrib/manipulation/roll.rb +17 -0
- data/examples/legacy/not_checked/shoes-contrib/position/gutter-margin.rb +5 -0
- data/examples/legacy/not_checked/shoes-contrib/position/stack-width.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-accordion.rb +75 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-shapes.rb +17 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-text.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-arc.rb +23 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-bounce.rb +24 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-calc.rb +70 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-chipmunk.rb +26 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-control-sizes.rb +24 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-curve.rb +26 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-dialogs.rb +29 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-downloader.rb +27 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-draw.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-editor.rb +28 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.rb +28 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.shy +0 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-mask.rb +21 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu.rb +31 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu1.rb +35 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-rubygems.rb +29 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-slide.rb +45 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-sphere.rb +28 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-sqlite3.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/simple/simple-video.rb +13 -0
- data/examples/legacy/not_checked/shoes-contrib/styles/alignment.rb +4 -0
- data/examples/legacy/not_checked/shoes-contrib/styles/attachment.rb +5 -0
- data/examples/legacy/not_checked/shoes-contrib/styles/emphasis.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/styles/gradient-angle.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/styles/para-methods.rb +5 -0
- data/examples/legacy/not_checked/shoes-contrib/styles/para-red-underlined.rb +3 -0
- data/examples/legacy/not_checked/shoes-contrib/styles/para-style-method.rb +4 -0
- data/examples/legacy/not_checked/shoes-dep-samples/expert-game-of-life.rb +243 -0
- data/examples/legacy/not_checked/shoes-dep-samples/expert-othello.rb +319 -0
- data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +51 -0
- data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +26 -0
- data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +174 -0
- data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +56 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +75 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +17 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +13 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +23 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +24 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +70 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +26 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +24 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +26 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +29 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +13 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +28 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +28 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +21 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +31 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +35 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +29 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +45 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +28 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +13 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +13 -0
- data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +13 -0
- data/examples/legacy/not_checked/shoes3-tests/AnemicCinema1926marcelDuchampCut.mp4 +0 -0
- data/examples/legacy/not_checked/shoes3-tests/button/button.rb +53 -0
- data/examples/legacy/not_checked/shoes3-tests/cache/cache.rb +41 -0
- data/examples/legacy/not_checked/shoes3-tests/combo/combo.rb +24 -0
- data/examples/legacy/not_checked/shoes3-tests/curl/bare.rb +34 -0
- data/examples/legacy/not_checked/shoes3-tests/curl/downloader.rb +40 -0
- data/examples/legacy/not_checked/shoes3-tests/curl/m1.rb +11 -0
- data/examples/legacy/not_checked/shoes3-tests/curl/m2.rb +12 -0
- data/examples/legacy/not_checked/shoes3-tests/curl/m3.rb +11 -0
- data/examples/legacy/not_checked/shoes3-tests/curl/m4.rb +5 -0
- data/examples/legacy/not_checked/shoes3-tests/curl/typ.rb +30 -0
- data/examples/legacy/not_checked/shoes3-tests/cursor/c1.rb +21 -0
- data/examples/legacy/not_checked/shoes3-tests/decoration.rb +14 -0
- data/examples/legacy/not_checked/shoes3-tests/dialogs/ask.rb +6 -0
- data/examples/legacy/not_checked/shoes3-tests/dialogs/confirm.rb +6 -0
- data/examples/legacy/not_checked/shoes3-tests/editbox/editbox.rb +36 -0
- data/examples/legacy/not_checked/shoes3-tests/editline/editline.rb +27 -0
- data/examples/legacy/not_checked/shoes3-tests/events/button.rb +32 -0
- data/examples/legacy/not_checked/shoes3-tests/events/button.yaml +40 -0
- data/examples/legacy/not_checked/shoes3-tests/events/capture.rb +57 -0
- data/examples/legacy/not_checked/shoes3-tests/events/chipmunk.yaml +47 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event0.rb +8 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event1.rb +51 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event1.yaml +26 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event2.rb +46 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event3.rb +44 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event4.rb +65 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event5.rb +17 -0
- data/examples/legacy/not_checked/shoes3-tests/events/event6.rb +51 -0
- data/examples/legacy/not_checked/shoes3-tests/events/replay.rb +60 -0
- data/examples/legacy/not_checked/shoes3-tests/gapp/fullscreen.rb +38 -0
- data/examples/legacy/not_checked/shoes3-tests/gapp/icon.rb +56 -0
- data/examples/legacy/not_checked/shoes3-tests/gapp/mon1.rb +46 -0
- data/examples/legacy/not_checked/shoes3-tests/gapp/settings1.rb +22 -0
- data/examples/legacy/not_checked/shoes3-tests/gapp/title1.rb +34 -0
- data/examples/legacy/not_checked/shoes3-tests/indian.m4a +0 -0
- data/examples/legacy/not_checked/shoes3-tests/menus/event.rb +33 -0
- data/examples/legacy/not_checked/shoes3-tests/menus/menu1.rb +8 -0
- data/examples/legacy/not_checked/shoes3-tests/menus/menu2.rb +25 -0
- data/examples/legacy/not_checked/shoes3-tests/menus/menu3.rb +103 -0
- data/examples/legacy/not_checked/shoes3-tests/menus/menu4.rb +41 -0
- data/examples/legacy/not_checked/shoes3-tests/menus/tests.txt +42 -0
- data/examples/legacy/not_checked/shoes3-tests/opacity.rb +13 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/^IRX.R +5219 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/^SPX +5219 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/cstest.rb +51 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/gr1.rb +73 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/gr2.rb +40 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/gr3.rb +47 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/gr4.rb +35 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/gr5.rb +31 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/gr6.rb +35 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/gr7.rb +37 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/grcsv.rb +219 -0
- data/examples/legacy/not_checked/shoes3-tests/plot/manual.rb +40 -0
- data/examples/legacy/not_checked/shoes3-tests/progress/progress.rb +29 -0
- data/examples/legacy/not_checked/shoes3-tests/radio/clear.rb +20 -0
- data/examples/legacy/not_checked/shoes3-tests/radio/group.rb +18 -0
- data/examples/legacy/not_checked/shoes3-tests/radio/multiple.rb +32 -0
- data/examples/legacy/not_checked/shoes3-tests/radio/nogroup.rb +9 -0
- data/examples/legacy/not_checked/shoes3-tests/simpletest.svg +14 -0
- data/examples/legacy/not_checked/shoes3-tests/spinner.rb +15 -0
- data/examples/legacy/not_checked/shoes3-tests/svg.rb +208 -0
- data/examples/legacy/not_checked/shoes3-tests/switch/switch.rb +28 -0
- data/examples/legacy/not_checked/shoes3-tests/systray/back.rb +20 -0
- data/examples/legacy/not_checked/shoes3-tests/systray/note.rb +17 -0
- data/examples/legacy/not_checked/shoes3-tests/terminal/cursor.rb +27 -0
- data/examples/legacy/not_checked/shoes3-tests/terminal/ed.rb +65 -0
- data/examples/legacy/not_checked/shoes3-tests/terminal/el.rb +50 -0
- data/examples/legacy/not_checked/shoes3-tests/terminal/logattr.rb +31 -0
- data/examples/legacy/not_checked/shoes3-tests/tests_color.rb +138 -0
- data/examples/legacy/not_checked/shoes3-tests/tests_svg.rb +228 -0
- data/examples/legacy/not_checked/shoes3-tests/tests_video_vlc.rb +186 -0
- data/examples/legacy/not_checked/shoes3-tests/tooltips.rb +20 -0
- data/examples/legacy/not_checked/shoes3-tests/video_vlc.rb +242 -0
- data/examples/legacy/not_checked/shoes3-tests/wheel/wheel1.rb +21 -0
- data/examples/legacy/not_checked/simple/accordion.rb +81 -0
- data/examples/legacy/not_checked/simple/anim-shapes.rb +17 -0
- data/examples/legacy/not_checked/simple/anim-text.rb +13 -0
- data/examples/legacy/not_checked/simple/arc.rb +23 -0
- data/examples/legacy/not_checked/simple/bounce.rb +24 -0
- data/examples/legacy/not_checked/simple/chipmunk.rb +26 -0
- data/examples/legacy/not_checked/simple/control-sizes.rb +24 -0
- data/examples/legacy/not_checked/simple/curve-control-points.rb +24 -0
- data/examples/legacy/not_checked/simple/curve.rb +26 -0
- data/examples/legacy/not_checked/simple/dialogs.rb +29 -0
- data/examples/legacy/not_checked/simple/downloader.rb +40 -0
- data/examples/legacy/not_checked/simple/downloader1.rb +31 -0
- data/examples/legacy/not_checked/simple/draw.rb +13 -0
- data/examples/legacy/not_checked/simple/editor.rb +28 -0
- data/examples/legacy/not_checked/simple/form.rb +30 -0
- data/examples/legacy/not_checked/simple/image.rb +21 -0
- data/examples/legacy/not_checked/simple/info.rb +78 -0
- data/examples/legacy/not_checked/simple/mask.rb +21 -0
- data/examples/legacy/not_checked/simple/mask2.rb +27 -0
- data/examples/legacy/not_checked/simple/menu.rb +31 -0
- data/examples/legacy/not_checked/simple/menu1.rb +35 -0
- data/examples/legacy/not_checked/simple/slide.rb +45 -0
- data/examples/legacy/not_checked/simple/sphere.rb +28 -0
- data/examples/legacy/not_checked/superleg.rb +244 -0
- data/examples/legacy/working/shoes-contrib/basic/a-poem.rb +24 -0
- data/examples/legacy/working/shoes-contrib/basic/basic-blocks-instances.rb +7 -0
- data/examples/legacy/working/shoes-contrib/basic/basic-blocks.rb +7 -0
- data/examples/legacy/working/shoes-contrib/basic/basic-slot.rb +8 -0
- data/examples/legacy/working/shoes-contrib/basic/intro.rb +20 -0
- data/examples/legacy/working/shoes-contrib/basic/two-column.rb +12 -0
- data/examples/legacy/working/shoes-contrib/elements/edit_box.rb +6 -0
- data/examples/legacy/working/shoes-contrib/kernel/alert.rb +3 -0
- data/examples/legacy/working/simple/calc.rb +71 -0
- data/examples/legacy/working/simple/sqlite3.rb +27 -0
- data/examples/legacy/working/simple/timer.rb +13 -0
- data/examples/line.rb +5 -0
- data/examples/link.rb +20 -0
- data/examples/list_box.rb +8 -0
- data/examples/para/collection_of_arguments.rb +9 -0
- data/examples/para/hello_world.rb +5 -0
- data/examples/para/hide_and_show.rb +9 -0
- data/examples/para/rainbow.rb +11 -0
- data/examples/para/rainbow_2.rb +11 -0
- data/examples/para/sizes.rb +11 -0
- data/examples/para/sizes_2.rb +12 -0
- data/examples/para/strong.rb +3 -0
- data/examples/para_text_widgets.rb +4 -0
- data/examples/pirate.png +0 -0
- data/examples/raw_flow.rb +11 -0
- data/examples/ruby_racer.rb +52 -0
- data/examples/shapes/arc.rb +8 -0
- data/examples/shapes/shapes.rb +8 -0
- data/examples/shapes/shapes_fill.rb +10 -0
- data/examples/shapes/star.rb +5 -0
- data/examples/shoes_school.rb +68 -0
- data/examples/shoes_splorer.rb +150 -0
- data/examples/simple_slides.rb +73 -0
- data/examples/skip_ci/parrot.rb +22 -0
- data/examples/skip_ci/say.rb +20 -0
- data/examples/sleepless.rb +26 -0
- data/examples/slots.rb +2 -4
- data/examples/spacing.rb +18 -0
- data/examples/span.rb +6 -0
- data/examples/stack/background.rb +35 -0
- data/examples/stack/border.rb +11 -0
- data/examples/stack/gradients.rb +6 -0
- data/examples/stack/raw_stack.rb +8 -0
- data/examples/stack/stack.rb +27 -0
- data/examples/text_change.rb +4 -0
- data/examples/text_sizes.rb +10 -0
- data/examples/timmy.rb +109 -0
- data/examples/title_and_resize.rb +3 -0
- data/exe/scarpe +108 -0
- data/lib/constants.rb +5 -0
- data/lib/scarpe/alert.rb +19 -0
- data/lib/scarpe/app.rb +78 -0
- data/lib/scarpe/arc.rb +49 -0
- data/lib/scarpe/background.rb +14 -0
- data/lib/scarpe/border.rb +16 -0
- data/lib/scarpe/button.rb +26 -18
- data/lib/scarpe/colors.rb +215 -0
- data/lib/scarpe/display_service.rb +189 -0
- data/lib/scarpe/document_root.rb +20 -0
- data/lib/scarpe/edit_box.rb +24 -0
- data/lib/scarpe/edit_line.rb +16 -30
- data/lib/scarpe/fill.rb +23 -0
- data/lib/scarpe/flow.rb +18 -15
- data/lib/scarpe/glibui/README.md +34 -0
- data/lib/scarpe/glibui/alert.rb +65 -0
- data/lib/scarpe/glibui/app.rb +27 -0
- data/lib/scarpe/glibui/background.rb +18 -0
- data/lib/scarpe/glibui/border.rb +22 -0
- data/lib/scarpe/glibui/button.rb +38 -0
- data/lib/scarpe/glibui/dimensions.rb +22 -0
- data/lib/scarpe/glibui/document_root.rb +33 -0
- data/lib/scarpe/glibui/edit_box.rb +44 -0
- data/lib/scarpe/glibui/edit_line.rb +43 -0
- data/lib/scarpe/glibui/flow.rb +33 -0
- data/lib/scarpe/glibui/html.rb +77 -0
- data/lib/scarpe/glibui/image.rb +36 -0
- data/lib/scarpe/glibui/link.rb +29 -0
- data/lib/scarpe/glibui/local_display.rb +62 -0
- data/lib/scarpe/glibui/para.rb +84 -0
- data/lib/scarpe/glibui/spacing.rb +41 -0
- data/lib/scarpe/glibui/stack.rb +33 -0
- data/lib/scarpe/glibui/text_widget.rb +30 -0
- data/lib/scarpe/glibui/widget.rb +81 -0
- data/lib/scarpe/glibui.rb +29 -0
- data/lib/scarpe/image.rb +28 -9
- data/lib/scarpe/libui/alert.rb +9 -0
- data/lib/scarpe/libui/button.rb +18 -0
- data/lib/scarpe/libui/colors.rb +157 -0
- data/lib/scarpe/libui/core.rb +66 -0
- data/lib/scarpe/libui/flow.rb +16 -0
- data/lib/scarpe/libui/libui.rb +45 -0
- data/lib/scarpe/libui/notepad.md +26 -0
- data/lib/scarpe/libui/para.rb +154 -0
- data/lib/scarpe/libui/stack.rb +34 -0
- data/lib/scarpe/line.rb +25 -0
- data/lib/scarpe/link.rb +25 -0
- data/lib/scarpe/list_box.rb +25 -0
- data/lib/scarpe/logger.rb +155 -0
- data/lib/scarpe/para.rb +84 -12
- data/lib/scarpe/promises.rb +387 -0
- data/lib/scarpe/shape.rb +19 -0
- data/lib/scarpe/spacing.rb +9 -0
- data/lib/scarpe/span.rb +26 -0
- data/lib/scarpe/stack.rb +66 -12
- data/lib/scarpe/star.rb +47 -0
- data/lib/scarpe/text_widget.rb +42 -0
- data/lib/scarpe/unit_test_helpers.rb +163 -0
- data/lib/scarpe/version.rb +2 -2
- data/lib/scarpe/widget.rb +198 -0
- data/lib/scarpe/widgets.rb +30 -0
- data/lib/scarpe/wv/alert.rb +65 -0
- data/lib/scarpe/wv/app.rb +85 -0
- data/lib/scarpe/wv/arc.rb +57 -0
- data/lib/scarpe/wv/background.rb +18 -0
- data/lib/scarpe/wv/border.rb +22 -0
- data/lib/scarpe/wv/button.rb +50 -0
- data/lib/scarpe/wv/control_interface.rb +153 -0
- data/lib/scarpe/wv/control_interface_test.rb +253 -0
- data/lib/scarpe/wv/dimensions.rb +22 -0
- data/lib/scarpe/wv/document_root.rb +50 -0
- data/lib/scarpe/wv/edit_box.rb +44 -0
- data/lib/scarpe/wv/edit_line.rb +43 -0
- data/lib/scarpe/wv/fill.rb +30 -0
- data/lib/scarpe/wv/flow.rb +32 -0
- data/lib/scarpe/wv/html.rb +107 -0
- data/lib/scarpe/wv/image.rb +36 -0
- data/lib/scarpe/wv/line.rb +38 -0
- data/lib/scarpe/wv/link.rb +29 -0
- data/lib/scarpe/wv/list_box.rb +50 -0
- data/lib/scarpe/wv/para.rb +90 -0
- data/lib/scarpe/wv/shape.rb +34 -0
- data/lib/scarpe/wv/shape_helper.rb +44 -0
- data/lib/scarpe/wv/spacing.rb +41 -0
- data/lib/scarpe/wv/span.rb +66 -0
- data/lib/scarpe/wv/stack.rb +42 -0
- data/lib/scarpe/wv/star.rb +64 -0
- data/lib/scarpe/wv/text_widget.rb +30 -0
- data/lib/scarpe/wv/web_wrangler.rb +679 -0
- data/lib/scarpe/wv/webview_local_display.rb +72 -0
- data/lib/scarpe/wv/webview_relay_display.rb +185 -0
- data/lib/scarpe/wv/widget.rb +181 -0
- data/lib/scarpe/wv/wv_display_worker.rb +65 -0
- data/lib/scarpe/wv.rb +39 -0
- data/lib/scarpe/wv_local.rb +6 -0
- data/lib/scarpe/wv_relay.rb +6 -0
- data/lib/scarpe.rb +35 -27
- data/logger/debug_web_wrangler.json +4 -0
- data/logger/scarpe_wv_test.json +4 -0
- data/scarpe-0.2.0.gem +0 -0
- data/scarpegen.rb +193 -0
- data/sig/scarpe.rbs +1 -1
- data/templates/basic_class_template.erb +38 -0
- data/templates/class_template_with_event_bind.erb +27 -0
- data/templates/class_template_with_shapes.erb +43 -0
- data/templates/example_template.erb +3 -0
- data/templates/module_template.erb +12 -0
- data/templates/webview_template.erb +30 -0
- metadata +601 -9
- data/lib/scarpe/container.rb +0 -10
- data/lib/scarpe/internal_app.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b494d51af2b6c932398ba4bd9e4a4028bfb023d240c993d6ec2abc067867418a
|
4
|
+
data.tar.gz: aadbaeaaf38a75e493aab9576513efa56fd7deb51decf23caba95124db910e68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed68d1232d8b5572b354e302359aeeacf34046eab08cc4dd4c42ff468b270dfb52e791c670cc81e8d7b94176a10d8356855c1c8f4b82a74c3136bd29ea1a7821
|
7
|
+
data.tar.gz: bf95030dbc45c5e1383ba18dc0918270025d8d5fee8422cd2c523660bf87e8ef1b6935f31624a106977b2ff3bbea5b7542f2b3b042e293478cbdad37f6fce689
|
data/.rubocop.yml
CHANGED
@@ -1,13 +1,84 @@
|
|
1
|
+
inherit_gem:
|
2
|
+
rubocop-shopify: rubocop.yml
|
3
|
+
|
1
4
|
AllCops:
|
2
|
-
TargetRubyVersion: 2
|
5
|
+
TargetRubyVersion: 3.2
|
6
|
+
SuggestExtensions: false
|
7
|
+
Exclude:
|
8
|
+
- 'bin/**/*'
|
9
|
+
- 'exe/**/*'
|
10
|
+
- 'examples/**/*'
|
11
|
+
|
12
|
+
Layout/LineLength:
|
13
|
+
Max: 150
|
3
14
|
|
4
|
-
Style/
|
5
|
-
Enabled:
|
6
|
-
EnforcedStyle: double_quotes
|
15
|
+
Style/RedundantHeredocDelimiterQuotes:
|
16
|
+
Enabled: false
|
7
17
|
|
8
|
-
Style/
|
9
|
-
Enabled:
|
10
|
-
EnforcedStyle: double_quotes
|
18
|
+
Style/MissingRespondToMissing:
|
19
|
+
Enabled: false
|
11
20
|
|
12
|
-
|
13
|
-
|
21
|
+
|
22
|
+
|
23
|
+
Style/MethodCallWithArgsParentheses:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
Style/GlobalVars:
|
27
|
+
Enabled: false
|
28
|
+
|
29
|
+
Style/CommandLiteral:
|
30
|
+
Enabled: false
|
31
|
+
|
32
|
+
Security/Eval:
|
33
|
+
Enabled: false
|
34
|
+
|
35
|
+
Style/LineEndConcatenation:
|
36
|
+
Enabled: false
|
37
|
+
|
38
|
+
Style/ClassVars:
|
39
|
+
Enabled: false
|
40
|
+
|
41
|
+
Naming/AccessorMethodName:
|
42
|
+
Enabled: false
|
43
|
+
|
44
|
+
Style/RedundantSelf:
|
45
|
+
Enabled: false
|
46
|
+
|
47
|
+
Style/ClassMethodsDefinitions:
|
48
|
+
Enabled: false
|
49
|
+
|
50
|
+
Style/SpecialGlobalVars:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
Style/CaseEquality:
|
54
|
+
Enabled: false
|
55
|
+
|
56
|
+
Style/RedundantConstantBase:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
Style/EmptyElse:
|
60
|
+
Enabled: false
|
61
|
+
|
62
|
+
Metrics/BlockNesting:
|
63
|
+
Enabled: false
|
64
|
+
|
65
|
+
Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
66
|
+
Enabled: false
|
67
|
+
|
68
|
+
Style/RedundantBegin:
|
69
|
+
Enabled: false
|
70
|
+
|
71
|
+
Layout/LeadingCommentSpace:
|
72
|
+
Enabled: false
|
73
|
+
|
74
|
+
Style/FormatString:
|
75
|
+
Enabled: false
|
76
|
+
|
77
|
+
Style/RegexpLiteral:
|
78
|
+
Enabled: false
|
79
|
+
|
80
|
+
Style/ReturnNil:
|
81
|
+
Enabled: false
|
82
|
+
|
83
|
+
Style/ClassAndModuleChildren:
|
84
|
+
Enabled: false
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.2.0
|
data/.yardopts
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
Here we write upgrading notes for brands. It's a team effort to make them as
|
4
|
+
straightforward as possible.
|
5
|
+
|
6
|
+
### Added
|
7
|
+
- #-some-pr-number <description> @author-of-pr
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
|
11
|
+
### Fixed
|
12
|
+
|
13
|
+
## [0.2.0] - 2022-07-02
|
14
|
+
|
15
|
+
- First batch of functionality. Will aggressively track to changelog from here on out.
|
16
|
+
|
3
17
|
## [0.1.0] - 2022-02-09
|
4
18
|
|
5
19
|
- Initial release
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
## Want to contribute?
|
2
|
+
|
3
|
+
That's awesome, thank you!
|
4
|
+
|
5
|
+
Refer [Scarpe in Development](https://github.com/scarpe-team/scarpe#scarpe-in-development) to get started!
|
6
|
+
|
7
|
+
You can go ahead an try to fix one of our [issues](https://github.com/scarpe-team/scarpe/issues). or make your own!
|
8
|
+
if there are any issues, it's not your fault it's mostly likely from our side so please don't hesitate ask anything.
|
9
|
+
|
10
|
+
for starters you can try [good first issues](https://github.com/scarpe-team/scarpe/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) which we believe are suitable to get started with contributing for scarpe. These issues either are relatively easy to accomplish or don't depend on a lot of other scarpe code
|
11
|
+
(e.g. completely new features) so that it's easier to get started. Please feel free to tackle any issue - we will help you if needed. The tag is just a suggestion!
|
12
|
+
|
13
|
+
Also there is a list of samples that already work at `examples`, along with all the other unchecked examples in `examples/legacy/unchecked`.
|
14
|
+
You can try to run these to get a feel of things `./exe/scarpe path/to/file.rb --dev`, you can also try running unchecked examples if you want to get your hands dirty!
|
15
|
+
|
16
|
+
If you feel unsure about testing or your implementation just open an issue or a pull request. Pull requests don't need to be done - they are great discussion starters! We're happy to help you get your contribution ready to be merged in order to help build Scarpe!
|
17
|
+
|
18
|
+
In fact we greatly appreciate early pull requests to review code and help you find your way around things! no a side note dont spam pull requests for discussing unrelated things.
|
19
|
+
|
20
|
+
Feel free to drop by on discord to ask anything or just to say hi to us!. People might not respond instantly, but after some time someone will respond :)
|
data/Gemfile
CHANGED
@@ -5,8 +5,20 @@ source "https://rubygems.org"
|
|
5
5
|
# Specify your gem's dependencies in scarpe.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
+
gem "bloops", "~> 0.5" #path: "../bloopsaphone" #git: "https://github.com/scarpe-team/bloopsaphone"
|
8
9
|
gem "rake", "~> 13.0"
|
9
10
|
|
10
|
-
|
11
|
+
group :test do
|
12
|
+
gem "minitest", "~> 5.0"
|
13
|
+
gem "minitest-reporters"
|
14
|
+
end
|
11
15
|
|
12
|
-
|
16
|
+
group :development do
|
17
|
+
gem "yard"
|
18
|
+
gem "redcarpet"
|
19
|
+
gem "debug"
|
20
|
+
gem "rubocop", "~> 1.21"
|
21
|
+
gem "rubocop-shopify"
|
22
|
+
#gem "commonmarker"
|
23
|
+
#gem "github-markup"
|
24
|
+
end
|
data/README.md
CHANGED
@@ -1,41 +1,161 @@
|
|
1
1
|
# Scarpe
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
## _Scarpe Diem: Seize the Shoes_
|
4
|
+
![GitHub Workflow Status (with branch)](https://img.shields.io/github/actions/workflow/status/Schwad/scarpe/ci.yml?branch=main)
|
5
|
+
[![Ruby Style Guide](https://img.shields.io/badge/code_style-shopify-brightgreen.svg)](https://github.com/Shopify/ruby-style-guide)
|
6
|
+
[![Discord](https://img.shields.io/discord/1072538177321058377?label=discord)](https://discord.gg/Ca5EHSsGYp)
|
5
7
|
|
6
|
-
|
8
|
+
<img src="https://user-images.githubusercontent.com/7865030/217309905-7f25e3cf-1850-481d-811b-dfddea2df54a.png" width="200" height="200">
|
7
9
|
|
8
|
-
|
10
|
+
"Scarpe" means shoes in Italian. "Scarpe" also means [Shoes](https://github.com/shoes/shoes-deprecated) in modern Ruby and webview!
|
9
11
|
|
10
|
-
|
11
|
-
gem 'scarpe'
|
12
|
-
```
|
12
|
+
Scarpe isn't feature complete with any version of Shoes (yet?). We're initially targeting Shoes Classic.
|
13
13
|
|
14
|
-
|
14
|
+
## Wait, What's A Shoes?
|
15
15
|
|
16
|
-
|
16
|
+
Shoes is an old library (really several different ones) that let you build little local desktop computer programs, package them up and give copies to people. Imagine if you can write a tiny little Ruby program (e.g. sneak a peek at the next section) and then it would make a runnable app, opening a window in Ruby, where you could click buttons and play sounds and stuff.
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
$ gem install scarpe
|
18
|
+
Scarpe is a rewrite of Shoes, because old Shoes doesn't really work any more. There have been a surprising number of rewrites of Shoes over the years -- people love it and miss having it around. This one is ours. Also it uses Webview.
|
21
19
|
|
22
20
|
## Usage
|
23
21
|
|
24
|
-
|
22
|
+
Note: you'll probably want the [Scarpe in Development](#scarpe-in-development) instructions below in most cases! Scarpe isn't ready for "just install the released version" production usage yet.
|
25
23
|
|
26
|
-
|
27
|
-
require "scarpe"
|
24
|
+
Create an hello world application with:
|
28
25
|
|
29
|
-
|
26
|
+
```ruby
|
27
|
+
Shoes.app do
|
30
28
|
para "Hello World"
|
31
29
|
end
|
32
30
|
```
|
33
31
|
|
34
32
|
More examples can be found in the `examples` folder!
|
35
33
|
|
34
|
+
## Screenshots
|
35
|
+
|
36
|
+
From the hello world example:
|
37
|
+
|
38
|
+
<img width="480" alt="hello_world" src="https://user-images.githubusercontent.com/9624267/158565981-57240f72-fbaf-4b72-b66e-8c0d517a90d7.png">
|
39
|
+
|
40
|
+
From the button example:
|
41
|
+
|
42
|
+
<img width="480" alt="hello_world" src="https://user-images.githubusercontent.com/9624267/158566011-0372d0c7-fbeb-4ed6-a082-73908f04a0b6.gif">
|
43
|
+
|
44
|
+
## Scarpe in Development
|
45
|
+
|
46
|
+
### Quickstart
|
47
|
+
|
48
|
+
Scarpe requires [Ruby 3.2](https://www.ruby-lang.org/en/downloads/) or higher! use `rvm` or `rbenv` for version control
|
49
|
+
|
50
|
+
This is where most of the action is happening right now, and to have the full Scarpe experience _today_ this is probably what you want to do.
|
51
|
+
|
52
|
+
```
|
53
|
+
# get it
|
54
|
+
git clone http://github.com/scarpe-team/scarpe
|
55
|
+
cd scarpe; bundle install
|
56
|
+
# run it
|
57
|
+
./exe/scarpe examples/button.rb --dev
|
58
|
+
```
|
59
|
+
|
60
|
+
### Finer details
|
61
|
+
|
62
|
+
First, clone the [main GitHub repository](https://github.com/scarpe-team/scarpe).
|
63
|
+
|
64
|
+
`bundle install` dependencies like webview from the cloned directory in your Ruby of choice.
|
65
|
+
|
66
|
+
You can run without Scarpe being installed by including its directory. For instance, from the "examples" directory you can run `ruby -I../lib hello_world.rb`. You can also install Scarpe locally (`gem build scarpe.gemspec && gem install scarpe-0.1.0.gem`) or using a Gemfile with the "path" option for local Scarpe.
|
67
|
+
|
68
|
+
Most commonly we are all using this command: `./exe/scarpe examples/button.rb --dev`
|
69
|
+
|
70
|
+
The `--dev` flag points to your local scarpe rather than an installed Scarpe gem.
|
71
|
+
|
72
|
+
It's very early in the development process. If you'd like to help develop Scarpe, great! It would be useful to drop us a message/issue/PR on GitHub early on, so we know you're working in a particular area, and we can warn you if anybody else is currently doing so.
|
73
|
+
|
74
|
+
We'd love the help!
|
75
|
+
|
76
|
+
If you want to quickly add a feature, you can use the `ruby scarpegen.rb` command. This command will generate the necessary files for you, along with a simple template and a set of questions to guide you through the process. By following these steps, you will be good to go!
|
77
|
+
|
78
|
+
By leveraging the `ruby scarpegen.rb` command and the provided resources, you can expedite the feature addition process and ensure a smoother development experience.
|
79
|
+
|
80
|
+
## Are we done yet?
|
81
|
+
|
82
|
+
Huh. Great question. Right now we have a few key things we want to achieve. The first is passing all of the examples we can get our hands on. The second is passing HacketyHack. We're manually keeping tabs on that here.
|
83
|
+
|
84
|
+
🚨 **This is manually checked and not an automation.** 🚨
|
85
|
+
|
86
|
+
### Webview Display Service Examples Passing
|
87
|
+
|
88
|
+
![](https://geps.dev/progress/16?dangerColor=800000&warningColor=ff9900&successColor=006600)
|
89
|
+
|
90
|
+
__41/288__
|
91
|
+
|
92
|
+
### GlimmerLibUI Display Service Examples Passing
|
93
|
+
|
94
|
+
![](https://geps.dev/progress/2?dangerColor=800000&warningColor=ff9900&successColor=006600)
|
95
|
+
|
96
|
+
__4/288__
|
97
|
+
|
98
|
+
## Teach me more about Shoes, the DSL, what it is and why it is amazing
|
99
|
+
|
100
|
+
1. [Nobody Knows Shoes - _why's Manual](https://github.com/whymirror/why-archive/raw/master/shoes/nobody-knows-shoes.pdf)
|
101
|
+
1. [Known examples](examples)
|
102
|
+
1. [shoes-original manual](docs/static/manual.md)
|
103
|
+
|
104
|
+
## Environment Variables
|
105
|
+
|
106
|
+
Scarpe allows you to modify the app's behaviour outside of the normal Shoes API with environment variables.
|
107
|
+
|
108
|
+
For example, we are working with multiple display services like Webview, Glimmer, and possibly some others.
|
109
|
+
|
110
|
+
The SCARPE_DISPLAY_SERVICE environment variable allows you to choose one or more display services, from the default Webview service to potentially other experimental or incomplete services. This may be important if you're developing a new display method for Scarpe. The display service variable will contain a name like "wv_local" or "wv_remote" or "glibui" which corresponds to a require-able Ruby file under lib/scarpe, either in the Scarpe gem or another gem your app requires.
|
111
|
+
|
112
|
+
Example usage:
|
113
|
+
|
114
|
+
`SCARPE_DISPLAY_SERVICE=glibui ./exe/scarpe examples/hello_world.rb`
|
115
|
+
|
116
|
+
The SCARPE_TEST_CONTROL environment variable can contain a path to a test-control-interface script for the Webview display service. If you look at test_helper, it gives some examples of how to use it.
|
117
|
+
|
118
|
+
## More info
|
119
|
+
|
120
|
+
* [Nobody Knows Shoes manual](https://github.com/whymirror/why-archive/raw/master/shoes/nobody-knows-shoes.pdf)
|
121
|
+
* [Original shoes (archived)](https://github.com/shoes/shoes-deprecated)
|
122
|
+
- For now we are aiming towards _original shoes_, but I believe later can learn from Shoes3.
|
123
|
+
- [wiki](https://github.com/shoes/shoes-deprecated/wiki)
|
124
|
+
* [shoes3](https://github.com/shoes/shoes3)
|
125
|
+
- [wiki](https://github.com/shoes/shoes3/wiki)
|
126
|
+
* [Blog covering shoes3 history](https://web.archive.org/web/20190731215758/https://walkabout.mvmanila.com/)
|
127
|
+
* [shoes4 (JRuby, incomplete)](https://github.com/shoes/shoes4)
|
128
|
+
* [Shoes' native splash app](https://github.com/shoes/shoes-deprecated/blob/develop/lib/shoes.rb#L124-L176)
|
129
|
+
* [Original Shoes example directory](https://github.com/shoes/shoes-deprecated/tree/develop/samples)
|
130
|
+
* [Found shoes apps](https://gist.github.com/search?l=Ruby&q=shoes.rb)
|
131
|
+
* [HacketyHack](https://github.com/whymirror/hacketyhack)
|
132
|
+
|
133
|
+
## Core Values
|
134
|
+
|
135
|
+
* **Resiliency** - We want Scarpe to be tested and trustworthy to work consistently and predictably.
|
136
|
+
* **User Experience** - Ruby and this DSL are beautiful for making desktop app authoring easy. We should uphold this standard.
|
137
|
+
* **Whimsy** - We're not here to make money or be corporate. We're here to have fun! Even if we do end up building something amazing. Also, Chunky Bacon. 🥓
|
138
|
+
* **Empathy** - Let's help one another, and adhere to good contributor standards while doing so.
|
139
|
+
|
140
|
+
## Logging
|
141
|
+
|
142
|
+
You can set SCARPE_LOG_CONFIG to an appropriate YAML file to set log levels per-component. You can find sample log configs under the logger directory. Scarpe has a number of component names that log data, set per-class. So you can set what components log at what sensitivity.
|
143
|
+
|
144
|
+
```
|
145
|
+
{
|
146
|
+
"default": "warn",
|
147
|
+
"WV::WebWrangler": ["logger/web_wrangler.log", "debug"]
|
148
|
+
}
|
149
|
+
```
|
150
|
+
|
151
|
+
## Documentation
|
152
|
+
|
153
|
+
Scarpe uses [YARD](https://yardoc.org/) for basic API documentation. You can run "yard doc" to generate documentation
|
154
|
+
locally, and then view it with "yard server". Point your browser at "http://localhost:8808" for local viewing.
|
155
|
+
|
36
156
|
## Contributing
|
37
157
|
|
38
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
158
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/scarpe-team/scarpe. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/scarpe-team/scarpe/blob/main/CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](https://github.com/scarpe-team/scarpe/blob/main/CONTRIBUTING.md).
|
39
159
|
|
40
160
|
## License
|
41
161
|
|
@@ -43,4 +163,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
43
163
|
|
44
164
|
## Code of Conduct
|
45
165
|
|
46
|
-
Everyone interacting in the Scarpe project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/
|
166
|
+
Everyone interacting in the Scarpe project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/scarpe-team/scarpe/blob/main/CODE_OF_CONDUCT.md).
|
data/Rakefile
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
require "rake/testtask"
|
5
|
+
require "rubocop/rake_task"
|
5
6
|
|
6
7
|
Rake::TestTask.new(:test) do |t|
|
7
8
|
t.libs << "test"
|
@@ -9,8 +10,6 @@ Rake::TestTask.new(:test) do |t|
|
|
9
10
|
t.test_files = FileList["test/**/test_*.rb"]
|
10
11
|
end
|
11
12
|
|
12
|
-
require "rubocop/rake_task"
|
13
|
-
|
14
13
|
RuboCop::RakeTask.new
|
15
14
|
|
16
|
-
task default:
|
15
|
+
task default: [:test, :rubocop]
|
data/dev.yml
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# Original contributor: Michael Fellinger <m.fellinger@gmail.com>
|
2
|
+
# Updated by:
|
3
|
+
# Tapio Saarinen <admin@bitlong.org>
|
4
|
+
# Steve Klabnik <steve@steveklabnik.com>
|
5
|
+
# Michael Fellinger <m.fellinger@gmail.com>
|
6
|
+
|
7
|
+
pkgname=shoes
|
8
|
+
pkgver=3.0
|
9
|
+
pkgrel=1
|
10
|
+
pkgdesc="The best little GUI toolkit, for Ruby."
|
11
|
+
url="http://shoesrb.com/"
|
12
|
+
arch=(i686 x86_64)
|
13
|
+
license="MIT"
|
14
|
+
depends=('ruby' 'giflib' 'gtk2' 'curl' 'portaudio' 'tk')
|
15
|
+
makedepends=('git')
|
16
|
+
conflicts=('shoes')
|
17
|
+
replaces=('shoes')
|
18
|
+
provides=('shoes')
|
19
|
+
backup=()
|
20
|
+
install=
|
21
|
+
source=()
|
22
|
+
md5sums=()
|
23
|
+
|
24
|
+
_pkgname=shoes
|
25
|
+
_gitrepo="git://github.com/shoes/shoes.git"
|
26
|
+
|
27
|
+
build() {
|
28
|
+
cd $srcdir
|
29
|
+
|
30
|
+
msg "Getting source..."
|
31
|
+
if [ -d $_pkgname ]; then
|
32
|
+
cd $_pkgname
|
33
|
+
git pull || return 1
|
34
|
+
else
|
35
|
+
git clone $_gitrepo $_pkgname || return 1
|
36
|
+
cd $_pkgname
|
37
|
+
fi
|
38
|
+
|
39
|
+
rake
|
40
|
+
cd dist
|
41
|
+
|
42
|
+
mkdir -p $pkgdir/usr/{bin,lib/shoes}
|
43
|
+
cp -r * $pkgdir/usr/lib/shoes/
|
44
|
+
|
45
|
+
ln -s /usr/lib/shoes/shoes $pkgdir/usr/bin/shoes
|
46
|
+
install -D -m644 $srcdir/$_pkgname/COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
|
47
|
+
}
|
Binary file
|
Binary file
|
@@ -0,0 +1,188 @@
|
|
1
|
+
/* Unobtrustive Code Highlighter By Dan Webb 11/2005
|
2
|
+
Version: 0.4
|
3
|
+
|
4
|
+
Usage:
|
5
|
+
Add a script tag for this script and any stylesets you need to use
|
6
|
+
to the page in question, add correct class names to CODE elements,
|
7
|
+
define CSS styles for elements. That's it!
|
8
|
+
|
9
|
+
Known to work on:
|
10
|
+
IE 5.5+ PC
|
11
|
+
Firefox/Mozilla PC/Mac
|
12
|
+
Opera 7.23 + PC
|
13
|
+
Safari 2
|
14
|
+
|
15
|
+
Known to degrade gracefully on:
|
16
|
+
IE5.0 PC
|
17
|
+
|
18
|
+
Note: IE5.0 fails due to the use of lookahead in some stylesets. To avoid script errors
|
19
|
+
in older browsers use expressions that use lookahead in string format when defining stylesets.
|
20
|
+
|
21
|
+
This script is inspired by star-light by entirely cunning Dean Edwards
|
22
|
+
http://dean.edwards.name/star-light/.
|
23
|
+
*/
|
24
|
+
|
25
|
+
// replace callback support for safari.
|
26
|
+
if ("a".replace(/a/, function() {return "b"}) != "b") (function(){
|
27
|
+
var default_replace = String.prototype.replace;
|
28
|
+
String.prototype.replace = function(search,replace){
|
29
|
+
// replace is not function
|
30
|
+
if(typeof replace != "function"){
|
31
|
+
return default_replace.apply(this,arguments)
|
32
|
+
}
|
33
|
+
var str = "" + this;
|
34
|
+
var callback = replace;
|
35
|
+
// search string is not RegExp
|
36
|
+
if(!(search instanceof RegExp)){
|
37
|
+
var idx = str.indexOf(search);
|
38
|
+
return (
|
39
|
+
idx == -1 ? str :
|
40
|
+
default_replace.apply(str,[search,callback(search, idx, str)])
|
41
|
+
)
|
42
|
+
}
|
43
|
+
var reg = search;
|
44
|
+
var result = [];
|
45
|
+
var lastidx = reg.lastIndex;
|
46
|
+
var re;
|
47
|
+
while((re = reg.exec(str)) != null){
|
48
|
+
var idx = re.index;
|
49
|
+
var args = re.concat(idx, str);
|
50
|
+
result.push(
|
51
|
+
str.slice(lastidx,idx),
|
52
|
+
callback.apply(null,args).toString()
|
53
|
+
);
|
54
|
+
if(!reg.global){
|
55
|
+
lastidx += RegExp.lastMatch.length;
|
56
|
+
break
|
57
|
+
}else{
|
58
|
+
lastidx = reg.lastIndex;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
result.push(str.slice(lastidx));
|
62
|
+
return result.join("")
|
63
|
+
}
|
64
|
+
})();
|
65
|
+
|
66
|
+
var CodeHighlighter = { styleSets : new Array };
|
67
|
+
|
68
|
+
CodeHighlighter.addStyle = function(name, rules) {
|
69
|
+
// using push test to disallow older browsers from adding styleSets
|
70
|
+
if ([].push) this.styleSets.push({
|
71
|
+
name : name,
|
72
|
+
rules : rules,
|
73
|
+
ignoreCase : arguments[2] || false
|
74
|
+
})
|
75
|
+
|
76
|
+
function setEvent() {
|
77
|
+
// set highlighter to run on load (use LowPro if present)
|
78
|
+
if (typeof Event != 'undefined' && typeof Event.onReady == 'function')
|
79
|
+
return Event.onReady(CodeHighlighter.init.bind(CodeHighlighter));
|
80
|
+
|
81
|
+
var old = window.onload;
|
82
|
+
|
83
|
+
if (typeof window.onload != 'function') {
|
84
|
+
window.onload = function() { CodeHighlighter.init() };
|
85
|
+
} else {
|
86
|
+
window.onload = function() {
|
87
|
+
old();
|
88
|
+
CodeHighlighter.init();
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
// only set the event when the first style is added
|
94
|
+
if (this.styleSets.length==1) setEvent();
|
95
|
+
}
|
96
|
+
|
97
|
+
CodeHighlighter.init = function() {
|
98
|
+
if (!document.getElementsByTagName) return;
|
99
|
+
if ("a".replace(/a/, function() {return "b"}) != "b") return; // throw out Safari versions that don't support replace function
|
100
|
+
// throw out older browsers
|
101
|
+
|
102
|
+
var codeEls = document.getElementsByTagName("CODE");
|
103
|
+
// collect array of all pre elements
|
104
|
+
codeEls.filter = function(f) {
|
105
|
+
var a = new Array;
|
106
|
+
for (var i = 0; i < this.length; i++) if (f(this[i])) a[a.length] = this[i];
|
107
|
+
return a;
|
108
|
+
}
|
109
|
+
|
110
|
+
var rules = new Array;
|
111
|
+
rules.toString = function() {
|
112
|
+
// joins regexes into one big parallel regex
|
113
|
+
var exps = new Array;
|
114
|
+
for (var i = 0; i < this.length; i++) exps.push(this[i].exp);
|
115
|
+
return exps.join("|");
|
116
|
+
}
|
117
|
+
|
118
|
+
function addRule(className, rule) {
|
119
|
+
// add a replace rule
|
120
|
+
var exp = (typeof rule.exp != "string")?String(rule.exp).substr(1, String(rule.exp).length-2):rule.exp;
|
121
|
+
// converts regex rules to strings and chops of the slashes
|
122
|
+
rules.push({
|
123
|
+
className : className,
|
124
|
+
exp : "(" + exp + ")",
|
125
|
+
length : (exp.match(/(^|[^\\])\([^?]/g) || "").length + 1, // number of subexps in rule
|
126
|
+
replacement : rule.replacement || null
|
127
|
+
});
|
128
|
+
}
|
129
|
+
|
130
|
+
function parse(text, ignoreCase) {
|
131
|
+
// main text parsing and replacement
|
132
|
+
return text.replace(new RegExp(rules, (ignoreCase)?"gi":"g"), function() {
|
133
|
+
var i = 0, j = 1, rule;
|
134
|
+
while (rule = rules[i++]) {
|
135
|
+
if (arguments[j]) {
|
136
|
+
// if no custom replacement defined do the simple replacement
|
137
|
+
if (!rule.replacement) return "<span class=\"" + rule.className + "\">" + arguments[0] + "</span>";
|
138
|
+
else {
|
139
|
+
// replace $0 with the className then do normal replaces
|
140
|
+
var str = rule.replacement.replace("$0", rule.className);
|
141
|
+
for (var k = 1; k <= rule.length - 1; k++) str = str.replace("$" + k, arguments[j + k]);
|
142
|
+
return str;
|
143
|
+
}
|
144
|
+
} else j+= rule.length;
|
145
|
+
}
|
146
|
+
});
|
147
|
+
}
|
148
|
+
|
149
|
+
function highlightCode(styleSet) {
|
150
|
+
// clear rules array
|
151
|
+
var parsed, clsRx = new RegExp("(\\s|^)" + styleSet.name + "(\\s|$)");
|
152
|
+
rules.length = 0;
|
153
|
+
|
154
|
+
// get stylable elements by filtering out all code elements without the correct className
|
155
|
+
var stylableEls = codeEls.filter(function(item) { return clsRx.test(item.className) });
|
156
|
+
|
157
|
+
// add style rules to parser
|
158
|
+
for (var className in styleSet.rules) addRule(className, styleSet.rules[className]);
|
159
|
+
|
160
|
+
|
161
|
+
// replace for all elements
|
162
|
+
for (var i = 0; i < stylableEls.length; i++) {
|
163
|
+
// EVIL hack to fix IE whitespace badness if it's inside a <pre>
|
164
|
+
if (/MSIE/.test(navigator.appVersion) && stylableEls[i].parentNode.nodeName == 'PRE') {
|
165
|
+
stylableEls[i] = stylableEls[i].parentNode;
|
166
|
+
|
167
|
+
parsed = stylableEls[i].innerHTML.replace(/(<code[^>]*>)([^<]*)<\/code>/i, function() {
|
168
|
+
return arguments[1] + parse(arguments[2], styleSet.ignoreCase) + "</code>"
|
169
|
+
});
|
170
|
+
parsed = parsed.replace(/\n( *)/g, function() {
|
171
|
+
var spaces = "";
|
172
|
+
for (var i = 0; i < arguments[1].length; i++) spaces+= " ";
|
173
|
+
return "\n" + spaces;
|
174
|
+
});
|
175
|
+
parsed = parsed.replace(/\t/g, " ");
|
176
|
+
parsed = parsed.replace(/\n(<\/\w+>)?/g, "<br />$1").replace(/<br \/>[\n\r\s]*<br \/>/g, "<p><br></p>");
|
177
|
+
|
178
|
+
} else parsed = parse(stylableEls[i].innerHTML, styleSet.ignoreCase);
|
179
|
+
|
180
|
+
stylableEls[i].innerHTML = parsed;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
// run highlighter on all stylesets
|
185
|
+
for (var i=0; i < this.styleSets.length; i++) {
|
186
|
+
highlightCode(this.styleSets[i]);
|
187
|
+
}
|
188
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
CodeHighlighter.addStyle("rb",{
|
2
|
+
comment : {
|
3
|
+
exp : /#[^\n]+/
|
4
|
+
},
|
5
|
+
brackets : {
|
6
|
+
exp : /\(|\)|\{|\}/
|
7
|
+
},
|
8
|
+
string : {
|
9
|
+
exp : /'[^']*'|"[^"]*"/
|
10
|
+
},
|
11
|
+
keywords : {
|
12
|
+
exp : /\b(do|end|self|class|def|if|module|yield|then|else|for|until|unless|while|elsif|case|when|break|retry|redo|rescue|raise)\b/
|
13
|
+
},
|
14
|
+
constant : {
|
15
|
+
exp : /\b([A-Z]\w+)\b/
|
16
|
+
},
|
17
|
+
ivar : {
|
18
|
+
exp : /([^@])(@{1,2}\w+)\b/
|
19
|
+
},
|
20
|
+
ns : {
|
21
|
+
exp : /(:{2,})/
|
22
|
+
},
|
23
|
+
symbol : {
|
24
|
+
exp : /(:[A-Za-z0-9_!?]+)/
|
25
|
+
}
|
26
|
+
});
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|