shoes 3.0.1 → 4.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +44 -3
- data/.rspec +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +31 -0
- data/CHANGELOG +3 -0
- data/Gemfile +3 -0
- data/Guardfile +11 -0
- data/{COPYING → LICENSE} +1 -0
- data/README.md +160 -50
- data/Rakefile +188 -101
- data/app.yaml +59 -6
- data/benchmark/app_clear.rb +21 -0
- data/benchmark/clear.rb +69 -0
- data/benchmark/memory/text_dispose.rb +9 -0
- data/benchmark/para_creator.rb +9 -0
- data/benchmark/paras.rb +52 -0
- data/benchmark/urls.rb +40 -0
- data/bin/ruby-shoes +6 -0
- data/bin/shoes +59 -0
- data/bin/shoes-guard +8 -0
- data/bin/shoes-stub +59 -0
- data/bin/shoes.bat +6 -0
- data/ext/install/Rakefile +29 -0
- data/ext/install/shoes.bat +6 -0
- data/lib/ext/highlighter.rb +2 -0
- data/lib/ext/highlighter/common.rb +197 -0
- data/lib/ext/highlighter/lang/ruby.rb +316 -0
- data/lib/ext/highlighter/markup.rb +222 -0
- data/lib/rubygems_plugin.rb +19 -0
- data/lib/shoes.rb +114 -537
- data/lib/shoes/animation.rb +55 -0
- data/lib/shoes/app.rb +320 -0
- data/lib/shoes/arc.rb +35 -0
- data/lib/shoes/background.rb +30 -0
- data/lib/shoes/border.rb +33 -0
- data/lib/shoes/builtin_methods.rb +73 -0
- data/lib/shoes/button.rb +32 -0
- data/lib/shoes/check_button.rb +43 -0
- data/lib/shoes/cli.rb +96 -0
- data/lib/shoes/color.rb +375 -0
- data/lib/shoes/common/background_element.rb +9 -0
- data/lib/shoes/common/changeable.rb +34 -0
- data/lib/shoes/common/clickable.rb +17 -0
- data/lib/shoes/common/common_methods.rb +70 -0
- data/lib/shoes/common/fill.rb +21 -0
- data/lib/shoes/common/registration.rb +33 -0
- data/lib/shoes/common/state.rb +18 -0
- data/lib/shoes/common/stroke.rb +28 -0
- data/lib/shoes/common/style.rb +34 -0
- data/lib/shoes/common/style_normalizer.rb +16 -0
- data/lib/shoes/configuration.rb +96 -0
- data/lib/shoes/dialog.rb +27 -0
- data/lib/shoes/dimension.rb +237 -0
- data/lib/shoes/dimensions.rb +194 -0
- data/lib/shoes/download.rb +117 -0
- data/lib/shoes/dsl.rb +478 -0
- data/lib/shoes/font.rb +49 -0
- data/lib/shoes/gradient.rb +18 -0
- data/lib/shoes/help.rb +458 -391
- data/lib/shoes/image.rb +27 -19
- data/lib/shoes/image_pattern.rb +10 -0
- data/lib/shoes/input_box.rb +68 -0
- data/lib/shoes/key_event.rb +17 -0
- data/lib/shoes/line.rb +38 -0
- data/lib/shoes/link.rb +49 -0
- data/lib/shoes/link_hover.rb +5 -0
- data/lib/shoes/list_box.rb +44 -0
- data/lib/shoes/logger.rb +66 -0
- data/lib/shoes/logger/ruby.rb +18 -0
- data/lib/shoes/manual.rb +6 -0
- data/lib/shoes/mock.rb +30 -0
- data/lib/shoes/mock/animation.rb +8 -0
- data/lib/shoes/mock/app.rb +44 -0
- data/lib/shoes/mock/arc.rb +8 -0
- data/lib/shoes/mock/background.rb +10 -0
- data/lib/shoes/mock/border.rb +7 -0
- data/lib/shoes/mock/button.rb +10 -0
- data/lib/shoes/mock/check.rb +24 -0
- data/lib/shoes/mock/common_methods.rb +11 -0
- data/lib/shoes/mock/dialog.rb +13 -0
- data/lib/shoes/mock/download.rb +18 -0
- data/lib/shoes/mock/font.rb +17 -0
- data/lib/shoes/mock/image.rb +12 -0
- data/lib/shoes/mock/image_pattern.rb +9 -0
- data/lib/shoes/mock/input_box.rb +23 -0
- data/lib/shoes/mock/keypress.rb +8 -0
- data/lib/shoes/mock/keyrelease.rb +8 -0
- data/lib/shoes/mock/line.rb +14 -0
- data/lib/shoes/mock/link.rb +11 -0
- data/lib/shoes/mock/list_box.rb +16 -0
- data/lib/shoes/mock/oval.rb +11 -0
- data/lib/shoes/mock/progress.rb +10 -0
- data/lib/shoes/mock/radio.rb +26 -0
- data/lib/shoes/mock/rect.rb +13 -0
- data/lib/shoes/mock/shape.rb +19 -0
- data/lib/shoes/mock/slot.rb +14 -0
- data/lib/shoes/mock/sound.rb +8 -0
- data/lib/shoes/mock/star.rb +13 -0
- data/lib/shoes/mock/text_block.rb +29 -0
- data/lib/shoes/mock/timer.rb +8 -0
- data/lib/shoes/oval.rb +28 -0
- data/lib/shoes/point.rb +43 -0
- data/lib/shoes/progress.rb +26 -0
- data/lib/shoes/radio.rb +15 -0
- data/lib/shoes/rect.rb +28 -0
- data/lib/shoes/renamed_delegate.rb +15 -0
- data/lib/shoes/shape.rb +175 -0
- data/lib/shoes/slot.rb +232 -0
- data/lib/shoes/slot_contents.rb +56 -0
- data/lib/shoes/sound.rb +16 -0
- data/lib/shoes/span.rb +16 -0
- data/lib/shoes/star.rb +49 -0
- data/lib/shoes/swt.rb +114 -0
- data/lib/shoes/swt/animation.rb +46 -0
- data/lib/shoes/swt/app.rb +300 -0
- data/lib/shoes/swt/arc.rb +70 -0
- data/lib/shoes/swt/background.rb +31 -0
- data/lib/shoes/swt/border.rb +37 -0
- data/lib/shoes/swt/button.rb +18 -0
- data/lib/shoes/swt/check.rb +14 -0
- data/lib/shoes/swt/check_button.rb +19 -0
- data/lib/shoes/swt/color.rb +45 -0
- data/lib/shoes/swt/common/child.rb +16 -0
- data/lib/shoes/swt/common/clear.rb +24 -0
- data/lib/shoes/swt/common/clickable.rb +62 -0
- data/lib/shoes/swt/common/container.rb +28 -0
- data/lib/shoes/swt/common/fill.rb +37 -0
- data/lib/shoes/swt/common/painter.rb +83 -0
- data/lib/shoes/swt/common/painter_updates_position.rb +12 -0
- data/lib/shoes/swt/common/resource.rb +14 -0
- data/lib/shoes/swt/common/selection_listener.rb +14 -0
- data/lib/shoes/swt/common/stroke.rb +41 -0
- data/lib/shoes/swt/common/toggle.rb +13 -0
- data/lib/shoes/swt/common/update_position.rb +15 -0
- data/lib/shoes/swt/dialog.rb +89 -0
- data/lib/shoes/swt/disposed_protection.rb +23 -0
- data/lib/shoes/swt/download.rb +24 -0
- data/lib/shoes/swt/fitted_text_layout.rb +94 -0
- data/lib/shoes/swt/fitted_text_layout_collection.rb +108 -0
- data/lib/shoes/swt/font.rb +32 -0
- data/lib/shoes/swt/gradient.rb +77 -0
- data/lib/shoes/swt/image.rb +130 -0
- data/lib/shoes/swt/image_pattern.rb +19 -0
- data/lib/shoes/swt/input_box.rb +73 -0
- data/lib/shoes/swt/key_listener.rb +145 -0
- data/lib/shoes/swt/line.rb +57 -0
- data/lib/shoes/swt/link.rb +37 -0
- data/lib/shoes/swt/link_segment.rb +108 -0
- data/lib/shoes/swt/list_box.rb +49 -0
- data/lib/shoes/swt/mouse_move_listener.rb +61 -0
- data/lib/shoes/swt/oval.rb +53 -0
- data/lib/shoes/swt/progress.rb +35 -0
- data/lib/shoes/swt/radio.rb +29 -0
- data/lib/shoes/swt/radio_group.rb +54 -0
- data/lib/shoes/swt/rect.rb +31 -0
- data/lib/shoes/swt/rect_painter.rb +23 -0
- data/lib/shoes/swt/redrawing_aspect.rb +122 -0
- data/lib/shoes/swt/shape.rb +101 -0
- data/lib/shoes/swt/shoes_layout.rb +43 -0
- data/lib/shoes/swt/slot.rb +25 -0
- data/lib/shoes/swt/sound.rb +119 -0
- data/lib/shoes/swt/star.rb +51 -0
- data/lib/shoes/swt/swt_button.rb +49 -0
- data/lib/shoes/swt/text_block.rb +133 -0
- data/lib/shoes/swt/text_block_cursor_painter.rb +112 -0
- data/lib/shoes/swt/text_block_fitter.rb +180 -0
- data/lib/shoes/swt/text_block_painter.rb +49 -0
- data/lib/shoes/swt/text_font_factory.rb +27 -0
- data/lib/shoes/swt/text_style_factory.rb +88 -0
- data/lib/shoes/swt/timer.rb +19 -0
- data/lib/shoes/swt/tooling/leak_hunter.rb +84 -0
- data/lib/shoes/text.rb +14 -0
- data/lib/shoes/text_block.rb +162 -0
- data/lib/shoes/timer.rb +10 -0
- data/lib/shoes/url.rb +47 -0
- data/lib/shoes/version.rb +1 -1
- data/lib/shoes/widget.rb +73 -0
- data/lib/support/jl1.0.1.jar +0 -0
- data/lib/support/jogg-0.0.7.jar +0 -0
- data/lib/support/jorbis-0.0.15.jar +0 -0
- data/lib/support/log4j-1.2.16.jar +0 -0
- data/lib/support/mp3spi1.9.5.jar +0 -0
- data/lib/support/tritonus_share.jar +0 -0
- data/lib/support/vorbisspi1.0.3.jar +0 -0
- data/samples/README +86 -0
- data/samples/class-book-adjusted.rb +45 -0
- data/samples/class-book.rb +10 -10
- data/samples/cy.png +0 -0
- data/samples/expert-definr.rb +6 -6
- data/samples/expert-funnies.rb +23 -14
- data/samples/expert-game-of-life-adjusted.rb +249 -0
- data/samples/expert-game-of-life.rb +243 -0
- data/samples/expert-irb-adjusted.rb +110 -0
- data/samples/expert-irb.rb +7 -7
- data/samples/expert-minesweeper-adjusted.rb +272 -0
- data/samples/expert-minesweeper.rb +53 -53
- data/samples/expert-othello-adjusted.rb +325 -0
- data/samples/expert-othello.rb +38 -39
- data/samples/expert-pong.rb +10 -10
- data/samples/expert-snake.rb +78 -0
- data/samples/expert-tankspank.rb +354 -354
- data/samples/good-arc.rb +20 -12
- data/samples/good-clock-adjusted.rb +49 -0
- data/samples/good-clock.rb +5 -5
- data/samples/good-displace.rb +98 -0
- data/samples/good-follow.rb +3 -3
- data/samples/good-potato-chopping.rb +22 -0
- data/samples/good-reminder.rb +51 -51
- data/samples/good-vjot.rb +15 -13
- data/samples/loogink.png +0 -0
- data/samples/nks_poem.rb +22 -0
- data/samples/original-manual-adjusted.rb +475 -0
- data/samples/original-manual.rb +472 -0
- data/samples/potato_chopping/1258_s001.gif +0 -0
- data/samples/potato_chopping/1258_s002.gif +0 -0
- data/samples/potato_chopping/1258_s003.gif +0 -0
- data/samples/potato_chopping/1258_s004.gif +0 -0
- data/samples/potato_chopping/1258_s005.gif +0 -0
- data/samples/potato_chopping/1258_s006.gif +0 -0
- data/samples/potato_chopping/1258_s007.gif +0 -0
- data/samples/potato_chopping/1258_s008.gif +0 -0
- data/samples/potato_chopping/1258_s009.gif +0 -0
- data/samples/potato_chopping/1258_s010.gif +0 -0
- data/samples/potato_chopping/1258_s011.gif +0 -0
- data/samples/potato_chopping/1258_s012.gif +0 -0
- data/samples/potato_chopping/1258_s013.gif +0 -0
- data/samples/potato_chopping/1258_s014.gif +0 -0
- data/samples/potato_chopping/1258_s015.gif +0 -0
- data/samples/potato_chopping/1258_s016.gif +0 -0
- data/samples/potato_chopping/1258_s017.gif +0 -0
- data/samples/potato_chopping/1258_s018.gif +0 -0
- data/samples/potato_chopping/1258_s019.gif +0 -0
- data/samples/potato_chopping/1258_s020.gif +0 -0
- data/samples/potato_chopping/1258_s021.gif +0 -0
- data/samples/potato_chopping/1258_s022.gif +0 -0
- data/samples/potato_chopping/1258_s023.gif +0 -0
- data/samples/potato_chopping/1258_s024.gif +0 -0
- data/samples/potato_chopping/1258_s025.gif +0 -0
- data/samples/potato_chopping/1258_s026.gif +0 -0
- data/samples/potato_chopping/1258_s027.gif +0 -0
- data/samples/potato_chopping/1258_s028.gif +0 -0
- data/samples/potato_chopping/1258_s029.gif +0 -0
- data/samples/potato_chopping/1258_s030.gif +0 -0
- data/samples/potato_chopping/1258_s031.gif +0 -0
- data/samples/potato_chopping/1258_s032.gif +0 -0
- data/samples/potato_chopping/1258_s033.gif +0 -0
- data/samples/potato_chopping/1258_s034.gif +0 -0
- data/samples/potato_chopping/1258_s035.gif +0 -0
- data/samples/potato_chopping/1258_s036.gif +0 -0
- data/samples/potato_chopping/1258_s037.gif +0 -0
- data/samples/potato_chopping/1258_s038.gif +0 -0
- data/samples/potato_chopping/1258_s039.gif +0 -0
- data/samples/potato_chopping/1258_s040.gif +0 -0
- data/samples/potato_chopping/1258_s041.gif +0 -0
- data/samples/potato_chopping/1258_s042.gif +0 -0
- data/samples/potato_chopping/1258_s043.gif +0 -0
- data/samples/potato_chopping/1258_s044.gif +0 -0
- data/samples/potato_chopping/1258_s045.gif +0 -0
- data/samples/potato_chopping/1258_s046.gif +0 -0
- data/samples/potato_chopping/1258_s047.gif +0 -0
- data/samples/potato_chopping/1258_s048.gif +0 -0
- data/samples/potato_chopping/1258_s049.gif +0 -0
- data/samples/potato_chopping/1258_s050.gif +0 -0
- data/samples/potato_chopping/1258_s051.gif +0 -0
- data/samples/potato_chopping/1258_s052.gif +0 -0
- data/samples/potato_chopping/1258_s053.gif +0 -0
- data/samples/potato_chopping/1258_s054.gif +0 -0
- data/samples/potato_chopping/1258_s055.gif +0 -0
- data/samples/potato_chopping/1258_s056.gif +0 -0
- data/samples/potato_chopping/1258_s057.gif +0 -0
- data/samples/potato_chopping/1258_s058.gif +0 -0
- data/samples/potato_chopping/1258_s059.gif +0 -0
- data/samples/sample1.rb +30 -0
- data/samples/sample12.rb +21 -0
- data/samples/sample13.rb +13 -0
- data/samples/sample14.rb +64 -0
- data/samples/sample15.rb +18 -0
- data/samples/sample16.rb +10 -0
- data/samples/sample17.rb +10 -0
- data/samples/sample2.rb +14 -0
- data/samples/sample21.rb +5 -0
- data/samples/sample23.rb +8 -0
- data/samples/sample24.rb +21 -0
- data/samples/sample27.rb +18 -0
- data/samples/sample3.rb +14 -0
- data/samples/sample31.rb +22 -0
- data/samples/sample34.rb +27 -0
- data/samples/sample35.rb +32 -0
- data/samples/sample37.rb +8 -0
- data/samples/sample4.rb +7 -0
- data/samples/sample42.rb +14 -0
- data/samples/sample45.rb +11 -0
- data/samples/sample56.rb +10 -0
- data/samples/sample6.rb +9 -0
- data/samples/sample7.rb +3 -0
- data/samples/sample8.rb +7 -0
- data/samples/sample9.rb +10 -0
- data/samples/simple-accordion.rb +7 -7
- data/samples/simple-anim-shapes.rb +3 -3
- data/samples/simple-anim-text.rb +2 -2
- data/samples/simple-animate.rb +12 -0
- data/samples/simple-arc.rb +2 -2
- data/samples/simple-bounce.rb +4 -4
- data/samples/simple-brightness-transitions.rb +8 -0
- data/samples/simple-button-animate.rb +16 -0
- data/samples/simple-calc-2.rb +34 -0
- data/samples/simple-calc.rb +11 -11
- data/samples/simple-color-selector.rb +10 -0
- data/samples/simple-color-transitions.rb +11 -0
- data/samples/simple-control-sizes.rb +12 -12
- data/samples/simple-dialogs-outside.rb +12 -0
- data/samples/simple-dialogs.rb +4 -1
- data/samples/simple-displace.rb +15 -0
- data/samples/simple-downloader.rb +11 -11
- data/samples/simple-editor.rb +5 -5
- data/samples/simple-face.rb +14 -0
- data/samples/simple-flow-wrap.rb +11 -0
- data/samples/simple-font.rb +17 -0
- data/samples/simple-form.rb +14 -13
- data/samples/simple-fullscreen.rb +4 -0
- data/samples/simple-guess-game.rb +28 -0
- data/samples/simple-keypress.rb +14 -0
- data/samples/simple-manual.rb +2 -0
- data/samples/simple-mask.rb +4 -4
- data/samples/simple-menu.rb +28 -12
- data/samples/simple-mouse-follow.rb +8 -0
- data/samples/simple-move.rb +13 -0
- data/samples/simple-oval.rb +3 -0
- data/samples/simple-sample-executor.rb +6 -0
- data/samples/simple-shoes-intro.rb +22 -0
- data/samples/simple-slide.rb +15 -4
- data/samples/simple-sound.rb +30 -0
- data/samples/simple-sphere.rb +6 -6
- data/samples/simple-stripes.rb +8 -0
- data/samples/simple-timer.rb +4 -2
- data/samples/simple-video.rb +2 -2
- data/samples/sounds/102719__sarge4267__explosion.mp3 +0 -0
- data/samples/sounds/145622__andybrannan__train-fog-horn-long-wyomming.aiff +0 -0
- data/samples/sounds/46492__phreaksaccount__shields1.ogg +0 -0
- data/samples/sounds/61847__simon-rue__boink-v3.wav +0 -0
- data/shoes.gemspec +31 -11
- data/snapshots/sample1.png +0 -0
- data/snapshots/sample10.png +0 -0
- data/snapshots/sample11.png +0 -0
- data/snapshots/sample12.png +0 -0
- data/snapshots/sample13.png +0 -0
- data/snapshots/sample14.png +0 -0
- data/snapshots/sample15.png +0 -0
- data/snapshots/sample16.png +0 -0
- data/snapshots/sample17.png +0 -0
- data/snapshots/sample18.png +0 -0
- data/snapshots/sample19.png +0 -0
- data/snapshots/sample2.png +0 -0
- data/snapshots/sample20.png +0 -0
- data/snapshots/sample21.png +0 -0
- data/snapshots/sample22.png +0 -0
- data/snapshots/sample23.png +0 -0
- data/snapshots/sample24.png +0 -0
- data/snapshots/sample27.png +0 -0
- data/snapshots/sample28.png +0 -0
- data/snapshots/sample29.png +0 -0
- data/snapshots/sample3.png +0 -0
- data/snapshots/sample30.png +0 -0
- data/snapshots/sample31.png +0 -0
- data/snapshots/sample34.png +0 -0
- data/snapshots/sample35.png +0 -0
- data/snapshots/sample36.png +0 -0
- data/snapshots/sample37.png +0 -0
- data/snapshots/sample4.png +0 -0
- data/snapshots/sample42.png +0 -0
- data/snapshots/sample44.png +0 -0
- data/snapshots/sample45.png +0 -0
- data/snapshots/sample46.png +0 -0
- data/snapshots/sample5.png +0 -0
- data/snapshots/sample6.png +0 -0
- data/snapshots/sample7.png +0 -0
- data/snapshots/sample8.png +0 -0
- data/snapshots/sample9.png +0 -0
- data/snapshots/sample99.png +0 -0
- data/spec/async_helper.rb +21 -0
- data/spec/code_coverage.rb +11 -0
- data/spec/shoes/animation_spec.rb +65 -0
- data/spec/shoes/app_spec.rb +411 -0
- data/spec/shoes/arc_spec.rb +53 -0
- data/spec/shoes/background_spec.rb +48 -0
- data/spec/shoes/border_spec.rb +43 -0
- data/spec/shoes/builtin_methods_spec.rb +84 -0
- data/spec/shoes/button_spec.rb +41 -0
- data/spec/shoes/check_spec.rb +31 -0
- data/spec/shoes/cli_spec.rb +16 -0
- data/spec/shoes/color_spec.rb +396 -0
- data/spec/shoes/common/style_normalizer_spec.rb +28 -0
- data/spec/shoes/common/style_spec.rb +58 -0
- data/spec/shoes/configuration_spec.rb +37 -0
- data/spec/shoes/constants_spec.rb +38 -0
- data/spec/shoes/dialog_spec.rb +163 -0
- data/spec/shoes/dimension_spec.rb +381 -0
- data/spec/shoes/dimensions_spec.rb +831 -0
- data/spec/shoes/download_spec.rb +133 -0
- data/spec/shoes/flow_spec.rb +92 -0
- data/spec/shoes/font_spec.rb +38 -0
- data/spec/shoes/framework_learning_spec.rb +30 -0
- data/spec/shoes/helpers/fake_element.rb +11 -0
- data/spec/shoes/helpers/sample17_helper.rb +66 -0
- data/spec/shoes/image_spec.rb +45 -0
- data/spec/shoes/images/shoe.jpg +0 -0
- data/spec/shoes/input_box_spec.rb +44 -0
- data/spec/shoes/integration_spec.rb +20 -0
- data/spec/shoes/keypress_spec.rb +11 -0
- data/spec/shoes/keyrelease_spec.rb +12 -0
- data/spec/shoes/line_spec.rb +47 -0
- data/spec/shoes/link_spec.rb +89 -0
- data/spec/shoes/list_box_spec.rb +63 -0
- data/spec/shoes/logger/ruby_spec.rb +9 -0
- data/spec/shoes/logger_spec.rb +45 -0
- data/spec/shoes/oval_spec.rb +20 -0
- data/spec/shoes/point_spec.rb +51 -0
- data/spec/shoes/progress_spec.rb +40 -0
- data/spec/shoes/radio_spec.rb +28 -0
- data/spec/shoes/rect_spec.rb +38 -0
- data/spec/shoes/renamed_delegate_spec.rb +70 -0
- data/spec/shoes/shape_spec.rb +54 -0
- data/spec/shoes/shared_examples/button.rb +6 -0
- data/spec/shoes/shared_examples/changeable.rb +26 -0
- data/spec/shoes/shared_examples/clickable.rb +5 -0
- data/spec/shoes/shared_examples/common_methods.rb +42 -0
- data/spec/shoes/shared_examples/dimensions.rb +32 -0
- data/spec/shoes/shared_examples/dsl.rb +42 -0
- data/spec/shoes/shared_examples/dsl/animate.rb +29 -0
- data/spec/shoes/shared_examples/dsl/arc.rb +45 -0
- data/spec/shoes/shared_examples/dsl/background.rb +26 -0
- data/spec/shoes/shared_examples/dsl/border.rb +10 -0
- data/spec/shoes/shared_examples/dsl/cap.rb +6 -0
- data/spec/shoes/shared_examples/dsl/check.rb +11 -0
- data/spec/shoes/shared_examples/dsl/edit_box.rb +8 -0
- data/spec/shoes/shared_examples/dsl/edit_line.rb +8 -0
- data/spec/shoes/shared_examples/dsl/editable_element.rb +29 -0
- data/spec/shoes/shared_examples/dsl/fill.rb +27 -0
- data/spec/shoes/shared_examples/dsl/flow.rb +15 -0
- data/spec/shoes/shared_examples/dsl/gradient.rb +52 -0
- data/spec/shoes/shared_examples/dsl/image.rb +21 -0
- data/spec/shoes/shared_examples/dsl/line.rb +9 -0
- data/spec/shoes/shared_examples/dsl/nofill.rb +6 -0
- data/spec/shoes/shared_examples/dsl/nostroke.rb +6 -0
- data/spec/shoes/shared_examples/dsl/oval.rb +60 -0
- data/spec/shoes/shared_examples/dsl/pattern.rb +34 -0
- data/spec/shoes/shared_examples/dsl/progress.rb +7 -0
- data/spec/shoes/shared_examples/dsl/rect.rb +92 -0
- data/spec/shoes/shared_examples/dsl/rgb.rb +26 -0
- data/spec/shoes/shared_examples/dsl/shape.rb +21 -0
- data/spec/shoes/shared_examples/dsl/star.rb +48 -0
- data/spec/shoes/shared_examples/dsl/stroke.rb +30 -0
- data/spec/shoes/shared_examples/dsl/strokewidth.rb +19 -0
- data/spec/shoes/shared_examples/dsl/style.rb +32 -0
- data/spec/shoes/shared_examples/dsl/text_elements.rb +81 -0
- data/spec/shoes/shared_examples/dsl_app_context.rb +8 -0
- data/spec/shoes/shared_examples/hover_leave.rb +11 -0
- data/spec/shoes/shared_examples/parent.rb +6 -0
- data/spec/shoes/shared_examples/shared_element_method.rb +52 -0
- data/spec/shoes/shared_examples/slot.rb +272 -0
- data/spec/shoes/shared_examples/state.rb +19 -0
- data/spec/shoes/shared_examples/style.rb +24 -0
- data/spec/shoes/slot_spec.rb +60 -0
- data/spec/shoes/sound_spec.rb +15 -0
- data/spec/shoes/span_spec.rb +94 -0
- data/spec/shoes/spec_helper.rb +1 -0
- data/spec/shoes/stack_spec.rb +53 -0
- data/spec/shoes/star_spec.rb +30 -0
- data/spec/shoes/text_block_spec.rb +242 -0
- data/spec/shoes/url_spec.rb +66 -0
- data/spec/shoes/widget_spec.rb +34 -0
- data/spec/shoes_spec.rb +44 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/swt_shoes/animation_spec.rb +86 -0
- data/spec/swt_shoes/app_spec.rb +75 -0
- data/spec/swt_shoes/arc_spec.rb +101 -0
- data/spec/swt_shoes/background_spec.rb +56 -0
- data/spec/swt_shoes/border_spec.rb +51 -0
- data/spec/swt_shoes/button_spec.rb +101 -0
- data/spec/swt_shoes/check_spec.rb +28 -0
- data/spec/swt_shoes/color_spec.rb +67 -0
- data/spec/swt_shoes/common/painter_spec.rb +29 -0
- data/spec/swt_shoes/configuration_spec.rb +12 -0
- data/spec/swt_shoes/dialog_spec.rb +106 -0
- data/spec/swt_shoes/disposed_protection_spec.rb +49 -0
- data/spec/swt_shoes/fitted_text_layout_collection_spec.rb +174 -0
- data/spec/swt_shoes/fitted_text_layout_spec.rb +130 -0
- data/spec/swt_shoes/flow_spec.rb +26 -0
- data/spec/swt_shoes/font_spec.rb +33 -0
- data/spec/swt_shoes/gradient_spec.rb +20 -0
- data/spec/swt_shoes/image_pattern_spec.rb +19 -0
- data/spec/swt_shoes/image_spec.rb +100 -0
- data/spec/swt_shoes/input_box_spec.rb +110 -0
- data/spec/swt_shoes/integration_spec.rb +18 -0
- data/spec/swt_shoes/key_listener_spec.rb +320 -0
- data/spec/swt_shoes/line_spec.rb +43 -0
- data/spec/swt_shoes/link_segment_spec.rb +103 -0
- data/spec/swt_shoes/link_spec.rb +59 -0
- data/spec/swt_shoes/list_box_spec.rb +51 -0
- data/spec/swt_shoes/minimal.png +0 -0
- data/spec/swt_shoes/mouse_move_listener_spec.rb +129 -0
- data/spec/swt_shoes/oval_spec.rb +51 -0
- data/spec/swt_shoes/progress_spec.rb +44 -0
- data/spec/swt_shoes/radio_group_spec.rb +73 -0
- data/spec/swt_shoes/radio_spec.rb +56 -0
- data/spec/swt_shoes/rect_painter_spec.rb +45 -0
- data/spec/swt_shoes/rect_spec.rb +19 -0
- data/spec/swt_shoes/shape_spec.rb +81 -0
- data/spec/swt_shoes/shared_examples/button.rb +24 -0
- data/spec/swt_shoes/shared_examples/clearable.rb +32 -0
- data/spec/swt_shoes/shared_examples/clickable.rb +60 -0
- data/spec/swt_shoes/shared_examples/movable.rb +36 -0
- data/spec/swt_shoes/shared_examples/paintable_spec.rb +7 -0
- data/spec/swt_shoes/shared_examples/painter.rb +83 -0
- data/spec/swt_shoes/shared_examples/pattern.rb +32 -0
- data/spec/swt_shoes/shared_examples/swt_app_context.rb +17 -0
- data/spec/swt_shoes/shared_examples/togglable.rb +15 -0
- data/spec/swt_shoes/shell_control_listener_spec.rb +23 -0
- data/spec/swt_shoes/sound.rb +10 -0
- data/spec/swt_shoes/spec_helper.rb +31 -0
- data/spec/swt_shoes/star_spec.rb +47 -0
- data/spec/swt_shoes/text_block_cursor_painter_spec.rb +202 -0
- data/spec/swt_shoes/text_block_fitter_spec.rb +181 -0
- data/spec/swt_shoes/text_block_painter_spec.rb +221 -0
- data/spec/swt_shoes/text_block_spec.rb +183 -0
- data/static/PKGBUILD +47 -0
- data/static/downloading.png +0 -0
- data/static/manual-en.txt +119 -128
- data/static/manual-ja.txt +97 -93
- data/static/manual.css +19 -2
- data/static/shoes-icon-brown.png +0 -0
- data/static/shoes-manual-apps.png +0 -0
- metadata +740 -402
- data/README.old +0 -117
- data/Rakefile.bk +0 -651
- data/bin/main.skel +0 -104
- data/bugs/issue-012e9468ddc7b0cb7e1503413a8a11c4f8707b67.yaml +0 -21
- data/bugs/issue-0711ff8b67baa63586f11d0096fee9dd4436bf58.yaml +0 -23
- data/bugs/issue-07f87998d93eb401e22395c11085676389b935c4.yaml +0 -22
- data/bugs/issue-0bff2d80008803cbc7efbcdacdc60ef2163664d2.yaml +0 -22
- data/bugs/issue-0c66f223d19efbca7b692f3b91961f407ad7abec.yaml +0 -24
- data/bugs/issue-183bc3c7a8f575aff2b24e0bf22aa0dfcc8e4fc2.yaml +0 -29
- data/bugs/issue-1bad1e60a04cb3adb6a8f3ded128af2e16b56ffe.yaml +0 -18
- data/bugs/issue-1f1d43f76bf4de79d7f94adbae6dd506a9d81633.yaml +0 -41
- data/bugs/issue-320924117cadb045cc91f2a6fca922b4d81d4bb5.yaml +0 -20
- data/bugs/issue-33e5c8355fbf65252ea9e939714651df8bd8cb3b.yaml +0 -25
- data/bugs/issue-36f7c8262a72bcd5e28cfa4ed29328b8237ea79b.yaml +0 -20
- data/bugs/issue-39bf04ee50c3bef67b89b8e9beb28657805587ce.yaml +0 -18
- data/bugs/issue-3e28ba7754f73d02ef416eef989af707a8c00f01.yaml +0 -23
- data/bugs/issue-3f638cc03f41f9c3fdf217355321f1563f8fee45.yaml +0 -22
- data/bugs/issue-41e48e14f1ef4f6deb69be68165d7dd3ffd99156.yaml +0 -22
- data/bugs/issue-4c9408166a2aa5dd333bbb05520deebf4ded08e0.yaml +0 -22
- data/bugs/issue-55c687e108ecd5aeb8e0d0aeb4294984f84acd3e.yaml +0 -18
- data/bugs/issue-5811d34692cc292717a58ec1df1f8948cf30d826.yaml +0 -28
- data/bugs/issue-5a7c1f59a0526f9cea7fb366867cf1e6ed8ef69d.yaml +0 -22
- data/bugs/issue-688a2c2566bef6a03efa57a4ae1f7cfa8fc74444.yaml +0 -21
- data/bugs/issue-78b16c7988ade2ef96e716fa8cb9a004bd4ced65.yaml +0 -33
- data/bugs/issue-804ee49f9800154eddf0650690c7a9bb5626253f.yaml +0 -27
- data/bugs/issue-807dd1c610b2e941a5d454e26b2eac27e89a0ab4.yaml +0 -22
- data/bugs/issue-822ee33ec11ebd25f90ea86e8438de7891e63aee.yaml +0 -18
- data/bugs/issue-82ff7152cebb8a1cb065b864cb4fe22de2328146.yaml +0 -29
- data/bugs/issue-856afbdcdd4970ad54b8ce4a6c017fbaab45f49d.yaml +0 -31
- data/bugs/issue-8d49e32fb21522651c67490adb4d80076dbb14e1.yaml +0 -24
- data/bugs/issue-91583359653a9d530c1e32be72d874d847a306e7.yaml +0 -21
- data/bugs/issue-af41a5229613172764e7d3c98431172db337053d.yaml +0 -20
- data/bugs/issue-bd9856b3788dd429c998a5af1b2aae8221cb80b7.yaml +0 -28
- data/bugs/issue-be22aef5c564fb7b5e9938343136a9cd6a2edb7b.yaml +0 -22
- data/bugs/issue-bf8697523c77c326e7e35fc82cf3dd739ae92310.yaml +0 -27
- data/bugs/issue-cdd4b4795f34d6ff46e56ece10f8216a4a5456b2.yaml +0 -25
- data/bugs/issue-d9bfb5581d745ef9deb3b9b2e08ef74d1cd43082.yaml +0 -20
- data/bugs/issue-e0ce2f687cc096f35715d28b0af88589f4ab6cc6.yaml +0 -18
- data/bugs/issue-e4b0aca4a10a574b333aeaecaaf221dbc5ed22c6.yaml +0 -38
- data/bugs/issue-f263746594b95ba778455730478ee8df60ee639d.yaml +0 -22
- data/bugs/project.yaml +0 -72
- data/builddeps.sh +0 -102
- data/gemlib/shoes.rb +0 -1
- data/lib/shoes/cache.rb +0 -54
- data/lib/shoes/chipmunk.rb +0 -35
- data/lib/shoes/data.rb +0 -39
- data/lib/shoes/inspect.rb +0 -128
- data/lib/shoes/log.rb +0 -48
- data/lib/shoes/minitar.rb +0 -986
- data/lib/shoes/override.rb +0 -38
- data/lib/shoes/pack.rb +0 -543
- data/lib/shoes/search.rb +0 -46
- data/lib/shoes/setup.rb +0 -329
- data/lib/shoes/shy.rb +0 -131
- data/lib/shoes/shybuilder.rb +0 -44
- data/make/darwin/deps.vlc +0 -12
- data/make/darwin/dylibs.shoes +0 -22
- data/make/darwin/dylibs.video +0 -11
- data/make/darwin/env.rb +0 -81
- data/make/darwin/tasks.rb +0 -105
- data/make/linux/env.rb +0 -65
- data/make/linux/tasks.rb +0 -61
- data/make/make.rb +0 -85
- data/make/mingw/dlls +0 -19
- data/make/mingw/env.rb +0 -69
- data/make/mingw/tasks.rb +0 -70
- data/make/rakefile_common.rb +0 -8
- data/manual-snapshots/class-book.png +0 -0
- data/manual-snapshots/expert-definr.png +0 -0
- data/manual-snapshots/expert-funnies.png +0 -0
- data/manual-snapshots/expert-irb.png +0 -0
- data/manual-snapshots/expert-minesweeper.png +0 -0
- data/manual-snapshots/expert-othello.png +0 -0
- data/manual-snapshots/expert-pong.png +0 -0
- data/manual-snapshots/expert-tankspank.png +0 -0
- data/manual-snapshots/good-arc.png +0 -0
- data/manual-snapshots/good-clock.png +0 -0
- data/manual-snapshots/good-follow.png +0 -0
- data/manual-snapshots/good-reminder.png +0 -0
- data/manual-snapshots/good-vjot.png +0 -0
- data/manual-snapshots/simple-accordion.png +0 -0
- data/manual-snapshots/simple-anim-shapes.png +0 -0
- data/manual-snapshots/simple-anim-text.png +0 -0
- data/manual-snapshots/simple-arc.png +0 -0
- data/manual-snapshots/simple-bounce.png +0 -0
- data/manual-snapshots/simple-calc.png +0 -0
- data/manual-snapshots/simple-chipmunk.png +0 -0
- data/manual-snapshots/simple-control-sizes.png +0 -0
- data/manual-snapshots/simple-curve.png +0 -0
- data/manual-snapshots/simple-dialogs.png +0 -0
- data/manual-snapshots/simple-downloader.png +0 -0
- data/manual-snapshots/simple-draw.png +0 -0
- data/manual-snapshots/simple-editor.png +0 -0
- data/manual-snapshots/simple-form.png +0 -0
- data/manual-snapshots/simple-mask.png +0 -0
- data/manual-snapshots/simple-menu.png +0 -0
- data/manual-snapshots/simple-menu1.png +0 -0
- data/manual-snapshots/simple-rubygems.png +0 -0
- data/manual-snapshots/simple-slide.png +0 -0
- data/manual-snapshots/simple-sphere.png +0 -0
- data/manual-snapshots/simple-sqlite3.png +0 -0
- data/manual-snapshots/simple-timer.png +0 -0
- data/manual-snapshots/simple-video.png +0 -0
- data/platform/mac/Info.plist +0 -55
- data/platform/mac/build-deps.sh +0 -658
- data/platform/mac/command-manual.rb +0 -1
- data/platform/mac/deps-osx.patch +0 -159
- data/platform/mac/dmg_ds_store +0 -0
- data/platform/mac/pangorc +0 -2
- data/platform/mac/pkg-dmg +0 -1447
- data/platform/mac/shoes +0 -31
- data/platform/mac/shoes-launch +0 -7
- data/platform/mac/stub.m +0 -178
- data/platform/mac/version.plist +0 -14
- data/platform/msw/base.nsi +0 -644
- data/platform/msw/installer-1.bmp +0 -0
- data/platform/msw/installer-2.bmp +0 -0
- data/platform/msw/shoes.exe.manifest +0 -17
- data/platform/msw/shoes.ico +0 -0
- data/platform/msw/stub-inject.c +0 -59
- data/platform/msw/stub.c +0 -271
- data/platform/msw/stub32.h +0 -14
- data/platform/msw/stub32.rc +0 -16
- data/platform/nix/INSTALL +0 -56
- data/platform/nix/Makefile +0 -144
- data/platform/nix/shoes.launch +0 -20
- data/platform/skel.rb +0 -27
- data/rakefile_darwin.rb +0 -7
- data/rakefile_linux.rb +0 -3
- data/rakefile_mingw.rb +0 -7
- data/samples/simple-chipmunk.rb +0 -26
- data/samples/simple-menu1.rb +0 -35
- data/samples/simple-rubygems.rb +0 -29
- data/samples/simple-sqlite3.rb +0 -13
- data/shoes/app.c +0 -591
- data/shoes/app.h +0 -110
- data/shoes/appwin32.h +0 -13
- data/shoes/appwin32.rc +0 -28
- data/shoes/canvas.c +0 -2202
- data/shoes/canvas.h +0 -682
- data/shoes/code.h +0 -14
- data/shoes/config.h +0 -232
- data/shoes/effects.c +0 -243
- data/shoes/effects.h +0 -7
- data/shoes/http.h +0 -44
- data/shoes/http/common.h +0 -86
- data/shoes/http/curl.c +0 -259
- data/shoes/http/nsurl.m +0 -274
- data/shoes/http/windownload.c +0 -114
- data/shoes/http/winhttp.c +0 -216
- data/shoes/http/winhttp.h +0 -19
- data/shoes/image.c +0 -1020
- data/shoes/internal.c +0 -46
- data/shoes/internal.h +0 -63
- data/shoes/native.h +0 -110
- data/shoes/native/cocoa.h +0 -105
- data/shoes/native/cocoa.m +0 -1557
- data/shoes/native/gtk.c +0 -1257
- data/shoes/native/windows.c +0 -2392
- data/shoes/ruby.c +0 -5221
- data/shoes/ruby.h +0 -299
- data/shoes/world.c +0 -243
- data/shoes/world.h +0 -63
- data/static/stubs/blank.exe +0 -0
- data/static/stubs/blank.hfz +0 -0
- data/static/stubs/blank.run +0 -375
- data/static/stubs/cocoa-install +0 -0
- data/static/stubs/sh-install +0 -49
- data/static/stubs/shoes-stub-inject.exe +0 -0
- data/static/stubs/shoes-stub.exe +0 -0
- data/test/shoes_test.rb +0 -8
- data/test/test_helper.rb +0 -25
- data/use-deps +0 -12
- data/use-tmp-dep +0 -8
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 29a51f2d1e2fbe9eb3a1f139a00a9336f86d0b17
|
4
|
+
data.tar.gz: 8ed0ebb6efee29a532e09a031129b679c6e8b7df
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 06c22bb69c311c08aa164f03c8e24cf25a1799aa91317a483f14daa2ef59bfb1f6aad1957a5ff07ed243e89cf801f58acf292e75a5f96d8cb273b14fd309e7b4
|
7
|
+
data.tar.gz: bb102f5480a16ae1fd809568ca6aeb7802e090c8c3f28d55a621a820faf1be7986ca86b80a4e76bf6db90ce55485f779cbe74921429ccda9d5fa7baf2ac342e5
|
data/.gitignore
CHANGED
@@ -1,3 +1,40 @@
|
|
1
|
+
## MAC OS
|
2
|
+
.DS_Store
|
3
|
+
|
4
|
+
## TEXTMATE
|
5
|
+
*.tmproj
|
6
|
+
tmtags
|
7
|
+
|
8
|
+
## EMACS
|
9
|
+
*~
|
10
|
+
\#*
|
11
|
+
.\#*
|
12
|
+
|
13
|
+
## VIM
|
14
|
+
*.swp
|
15
|
+
tags
|
16
|
+
*.bundle
|
17
|
+
*.so
|
18
|
+
|
19
|
+
## BUNDLER
|
20
|
+
.bundle
|
21
|
+
Gemfile.lock
|
22
|
+
|
23
|
+
## YARD
|
24
|
+
.yardoc
|
25
|
+
_yardoc
|
26
|
+
doc
|
27
|
+
|
28
|
+
## INTELLIJ/RUBYMINE
|
29
|
+
.idea
|
30
|
+
|
31
|
+
## PROJECT::GENERAL
|
32
|
+
coverage
|
33
|
+
rdoc
|
34
|
+
pkg
|
35
|
+
jruby-lint.html
|
36
|
+
|
37
|
+
## PROJECT::SPECIFIC
|
1
38
|
*.o
|
2
39
|
*.obj
|
3
40
|
*.res
|
@@ -7,6 +44,10 @@ deps
|
|
7
44
|
dist
|
8
45
|
pkg
|
9
46
|
*.app
|
10
|
-
|
11
|
-
|
12
|
-
|
47
|
+
docs-*
|
48
|
+
spec/test_app/pkg
|
49
|
+
testing
|
50
|
+
tmp/*
|
51
|
+
|
52
|
+
# ignore built gem so you don't commit it accidentally
|
53
|
+
*.gem
|
data/.rspec
ADDED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
shoes
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jruby-1.7.12
|
data/.travis.yml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
language: ruby
|
2
|
+
script: "rake spec:all"
|
3
|
+
rvm:
|
4
|
+
- jruby-19mode
|
5
|
+
- jruby-head
|
6
|
+
jdk:
|
7
|
+
- openjdk7
|
8
|
+
- oraclejdk7
|
9
|
+
- openjdk6
|
10
|
+
matrix:
|
11
|
+
allow_failures:
|
12
|
+
- rvm: jruby-head
|
13
|
+
fast_finish: true
|
14
|
+
notifications:
|
15
|
+
irc: "irc.freenode.org#shoes"
|
16
|
+
email:
|
17
|
+
recipients:
|
18
|
+
- davor@davor.se
|
19
|
+
- wasnotrice@gmail.com
|
20
|
+
- tobias.pfeiffer@student.hpi.uni-potsdam.de
|
21
|
+
- ashbbb@gmail.com
|
22
|
+
- james@jamesrgifford.com
|
23
|
+
- peter.fitzgibbons@gmail.com
|
24
|
+
- fism88@gmail.com
|
25
|
+
- jason@jasonrclark.net
|
26
|
+
on_success: change # [always|never|change] # default: change
|
27
|
+
on_failure: change # [always|never|change] # default: always
|
28
|
+
before_script:
|
29
|
+
- "export DISPLAY=:99.0"
|
30
|
+
- "sh -e /etc/init.d/xvfb start"
|
31
|
+
- "sleep 3"
|
data/CHANGELOG
CHANGED
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'rspec' do
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
6
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
7
|
+
watch(%r{^lib/shoes/mock/(.+)\.rb$}) { |m| "spec/shoes/#{m[1]}_spec.rb" }
|
8
|
+
watch(%r{^lib/shoes/swt/(.+)\.rb$}) { |m| "spec/swt_shoes/#{m[1]}_spec.rb" }
|
9
|
+
watch('lib/shoes/dsl.rb') { |m| "spec/swt_shoes/dsl_spec.rb" }
|
10
|
+
end
|
11
|
+
|
data/{COPYING → LICENSE}
RENAMED
data/README.md
CHANGED
@@ -1,76 +1,186 @@
|
|
1
|
-
|
2
|
-
((( |||_| ///\ [[[_ (((
|
3
|
-
))) || | \\/ [[_ )))
|
4
|
-
an artsy any-platform app kit
|
5
|
-
http://shoesrb.com
|
6
|
-
</pre>
|
1
|
+
# shoes4 [![Build Status](https://secure.travis-ci.org/shoes/shoes4.svg?branch=master)](http://travis-ci.org/shoes/shoes4)[![Code Climate](https://img.shields.io/codeclimate/github/shoes/shoes4.svg)](https://codeclimate.com/github/shoes/shoes4)[![Coverage Status](https://img.shields.io/coveralls/shoes/shoes4/badge/master.svg)](https://coveralls.io/r/shoes/shoes4)[![Dependency Status](https://img.shields.io/gemnasium/shoes/shoes4.svg)](https://gemnasium.com/shoes/shoes4)
|
7
2
|
|
8
|
-
|
3
|
+
Shoes 4 : the next version of Shoes
|
9
4
|
|
10
|
-
|
5
|
+
## Still in development
|
11
6
|
|
12
|
-
|
7
|
+
Hi there, thanks for checking by! Shoes4 is still in development. It doesn't support all of the shoes DSL just yet.
|
8
|
+
But if you want to check it out, that's awesome! If you're not too adventurous just yet you can still use the [old shoes](https://github.com/shoes/shoes)!
|
13
9
|
|
14
|
-
|
10
|
+
There is a first preview release now :)
|
15
11
|
|
16
|
-
|
12
|
+
## Installing Shoes4
|
17
13
|
|
18
|
-
|
14
|
+
There are two ways to get your hands on shoes 4 - the preview gem release and installing it straight from github. For both you need a current [JRuby](http://www.jruby.org/) installation.
|
19
15
|
|
20
|
-
Here's a little Shoes app. It's a stopwatch!
|
21
16
|
|
22
|
-
|
23
|
-
background rgb(240, 250, 208)
|
24
|
-
stack :margin => 10 do
|
25
|
-
button "Start" do
|
26
|
-
@time = Time.now
|
27
|
-
@label.replace "Stop watch started at #@time"
|
28
|
-
end
|
29
|
-
button "Stop" do
|
30
|
-
@label.replace "Stopped, ", strong("#{Time.now - @time}"), " seconds elapsed."
|
31
|
-
end
|
32
|
-
@label = para "Press ", strong("start"), " to begin timing."
|
33
|
-
end
|
34
|
-
end
|
17
|
+
### Get a JDK and JRuby
|
35
18
|
|
36
|
-
|
19
|
+
So your first step is to install a [JDK](http://www.oracle.com/technetwork/java/javase/downloads/) (shoes also works with [OpenJDK](http://openjdk.java.net/)) and [JRuby](http://jruby.org). Make sure to grab the appropriate JRuby version for your operating system. On Linux/Mac you can also use ruby installation tools to install JRuby. For instance [rvm](http://rvm.io/):
|
37
20
|
|
38
|
-
|
21
|
+
$ rvm install jruby
|
39
22
|
|
40
|
-
|
23
|
+
### Installing Shoes4 as a gem
|
41
24
|
|
42
|
-
|
25
|
+
gem install shoes --pre
|
43
26
|
|
44
|
-
If you'd like to use Shoes to develop some apps... awesome! It's super easy: Just go to the [downloads page on the Shoes website](http://shoesrb.com/downloads) and download a copy of Shoes for your platform. Mac OSX, Windows, and Linux supported!
|
45
27
|
|
46
|
-
|
28
|
+
### Installing Shoes4 from github
|
47
29
|
|
48
|
-
|
30
|
+
If you want to be on the bleeding edge or want to contribute code you need to install it straight from the github repository.
|
49
31
|
|
50
|
-
|
32
|
+
#### *nix (Mac OSX/Linux)
|
51
33
|
|
52
|
-
|
34
|
+
1. Fork the repository and clone your fork, or
|
53
35
|
|
54
|
-
|
36
|
+
$ git clone git://github.com/shoes/shoes4.git
|
55
37
|
|
56
|
-
|
38
|
+
2. Set up your local environment
|
57
39
|
|
58
|
-
|
40
|
+
$ cd shoes4
|
41
|
+
$ gem install bundler && bundle install
|
59
42
|
|
60
|
-
If you
|
43
|
+
Note: If you got rvm, rbenv or something like that installed it might complain that you should use jruby version xx. That's because we keep our .ruby-version files up to date. You should be able to run it with a JRuby version >= 1.7.0. We recommend up to date versions though.
|
61
44
|
|
62
|
-
|
63
|
-
* [Source Code @ GitHub](http://github.com/shoes/shoes)
|
64
|
-
* [Issue tracker @ GitHub](http://github.com/shoes/shoes/issues)
|
65
|
-
* [Mailing List](http://librelist.com/browser/shoes/) (send an email to shoes@librelist.com to join)
|
66
|
-
* [Twitter account](http://twitter.com/shoooesrb)
|
67
|
-
* [Facebook page](http://www.facebook.com/pages/Shoes/132605040125019)
|
68
|
-
* IRC room on Freenode, #shoes
|
45
|
+
3. You're ready to go!
|
69
46
|
|
70
|
-
|
47
|
+
#### Windows
|
71
48
|
|
72
|
-
|
49
|
+
1. Fork the repository and clone your fork, or
|
73
50
|
|
74
|
-
|
51
|
+
C:\tmp> git clone git://github.com/shoes/shoes4.git
|
75
52
|
|
76
|
-
|
53
|
+
2. Set up your local environment
|
54
|
+
|
55
|
+
C:\tmp>cd shoes4
|
56
|
+
C:\tmp\shoes4>jruby -S gem install bundler
|
57
|
+
C:\tmp\shoes4>jruby -S bundle install
|
58
|
+
|
59
|
+
3. You're ready to go!
|
60
|
+
|
61
|
+
## Running a Shoes App
|
62
|
+
|
63
|
+
Shoes 4 comes with a command-line app runner. Just pass it the filename of your Shoes app.
|
64
|
+
|
65
|
+
$ bin/shoes samples/simple-sound.rb
|
66
|
+
|
67
|
+
**Note:** For Windows, `C:\tmp\shoes4>bin\shoes samples\simple-sound.rb`
|
68
|
+
|
69
|
+
There is also a simple ruby starter script which you may use as follows:
|
70
|
+
|
71
|
+
$ bin/ruby-shoes samples/simple-sound.rb
|
72
|
+
|
73
|
+
This does not work yet on Mac as JRuby (the JVM) needs some additional parameters. Here you can just do the following (which basically is what bin/shoes does):
|
74
|
+
|
75
|
+
$ jruby -J-XstartOnFirstThread bin/ruby-shoes samples/simple-sound.rb
|
76
|
+
|
77
|
+
Another alternative yet is to put `require 'shoes'` at the top of your applications, then you can simply do
|
78
|
+
|
79
|
+
$ jruby path/to/file.rb
|
80
|
+
|
81
|
+
## Want to see what shoes can do?
|
82
|
+
|
83
|
+
You can run `rake samples` and random samples we believe are working will be run until you quit with Ctr + C. Some of them are really simple, while others are more complex or even games!
|
84
|
+
If you notice any issue with those samples please [let us know](https://github.com/shoes/shoes4/issues/new)!
|
85
|
+
|
86
|
+
## Packaging a Shoes App
|
87
|
+
|
88
|
+
Packaging is just a baby, so be gentle.
|
89
|
+
|
90
|
+
In order to package an app, you need to have the Shoes gem installed in your environment. If you didn't do the gem installation you can always generate a gem and install it from the current source:
|
91
|
+
|
92
|
+
$ rake gem
|
93
|
+
$ gem install pkg/shoes-4.0.0.pre1.gem
|
94
|
+
|
95
|
+
Now, you can package an app. But first, look here:
|
96
|
+
|
97
|
+
- The packager will include ***everything*** in the directory of your shoes script and below, unless you tell it not to.
|
98
|
+
- The packager will probably not work properly if it detects a `.gemspec` or a `Gemfile`. It uses Warbler, which always looks for those files. If you run the specs, you may notice some warnings like this:
|
99
|
+
|
100
|
+
> warning: Bundler \`path' components are not currently supported.
|
101
|
+
> The \`shoes-4.0.0.pre1' component was not bundled.
|
102
|
+
> Your application may fail to boot!
|
103
|
+
|
104
|
+
That's Warbler talking. Actually, we sneak the Shoes gem in anyway, but don't tell.
|
105
|
+
|
106
|
+
Okay, now for real. The simplest thing is to put your script in a directory by itself and then
|
107
|
+
|
108
|
+
$ bin/shoes -p swt:app path/to/directory-of/your-shoes-app.rb
|
109
|
+
|
110
|
+
You'll find your app at `path/to/directory-of/pkg/Shoes App.app`.
|
111
|
+
|
112
|
+
If you want more control (like you want to name your app something besides "Shoes App", or you don't want to include all of those files we talked about before), make an `app.yaml` file. See [the example](https://github.com/shoes/shoes4/blob/master/app.yaml) for more details.
|
113
|
+
|
114
|
+
***Note:*** *If you use an `app.yaml`, you will have to customize or comment out each option. The example is just an example ;)*
|
115
|
+
|
116
|
+
When you have an `app.yaml` file right next to your script, you have three options:
|
117
|
+
|
118
|
+
$ bin/shoes -p swt:app path/to/directory-of/your-shoes-app.rb
|
119
|
+
$ bin/shoes -p swt:app path/to/directory-of/app.yaml
|
120
|
+
$ bin/shoes -p swt:app path/to/directory-of
|
121
|
+
|
122
|
+
The packager will find your instructions using any of those commands. Again, you'll find your app in the `pkg` directory inside your project's directory. Find out more at `bin/shoes --help`.
|
123
|
+
|
124
|
+
Oh, and you can also just run your Shoes apps with `bin/shoes`.
|
125
|
+
|
126
|
+
## Want to contribute?
|
127
|
+
|
128
|
+
That's awesome, thank you!
|
129
|
+
|
130
|
+
You can go ahead an try to fix one of our [issues](https://github.com/shoes/shoes4/issues).
|
131
|
+
We have introduced a new tag 'Newcomer Friendly' for issues we believe are suitable to get started with shoes contributing. These issues either are relatively easy to accomplish or don't depend on a lot of other shoes code (e.g. completely new features) so that it's easier to get started.
|
132
|
+
Please feel free to tackle any issue - we will help you if needed. The tag is just a suggestion! =)
|
133
|
+
|
134
|
+
Also there is a list of samples that already work at samples/README, along with all the other samples. You can try to get a new sample to run. In order to do so you can run `rake non_samples` to run a random sample we think does not work. If you just want to list the non working samples you can also run `rake list_non_samples`.
|
135
|
+
|
136
|
+
With all you do, please make sure to write specs as Shoes 4 is developed TDD-style (see the [Running Specs](https://github.com/shoes/shoes4#running-specs) section below). So make sure that you don't break any tests :-)
|
137
|
+
|
138
|
+
We write our specs in rspec and are currently in the process of migrating from the old `should` syntax to the [new `expect` syntax](http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax). We basically say that whenever you touch a spec it'd be good if you converted it to the new syntax. Also new specs should be written in the new expect syntax.
|
139
|
+
|
140
|
+
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 Shoes 4!
|
141
|
+
|
142
|
+
In fact we greatly appreciate early pull requests to review code and help you find your way around Shoes4! =)
|
143
|
+
|
144
|
+
If you have questions, also feel free to drop by on the #shoes channel on FreeNode irc. People might not respond instantly, but after some time someone will respond :-)
|
145
|
+
|
146
|
+
It sometimes is also a good way to refactor some code or write some specs in order to get familiar with a project. If you want to try this approach you can have a look at our [Code Climate](https://codeclimate.com/github/shoes/shoes4) to find candidates for refactoring or after running the specs locally take a peak into the coverage directory and open index.html - it shows you our current coverage data. See something that isn't covered and maybe you can write a spec for it?
|
147
|
+
|
148
|
+
Refer to the following section for information on how to run the specs, that were mentioned before :-)
|
149
|
+
|
150
|
+
## Running Specs
|
151
|
+
|
152
|
+
Shoes 4 is developed in a TDD style. You should be writing and running the specs :)
|
153
|
+
|
154
|
+
There are two kinds of Shoes 4 specs:
|
155
|
+
|
156
|
+
1. **Integration specs:** These specify the functionality of the Shoes
|
157
|
+
DSL. They can be run with any compatible Shoes backend. Shoes 4 comes
|
158
|
+
with a mock backend and an Swt backend that can run the integration
|
159
|
+
specs.
|
160
|
+
|
161
|
+
2. **Isolation specs:** These specify the internal behavior of a Shoes
|
162
|
+
backend, in isolation from the DSL. Shoes 4 comes with an isolation spec
|
163
|
+
suite for the Swt backend.
|
164
|
+
|
165
|
+
There are rake tasks for running specs. Some examples:
|
166
|
+
|
167
|
+
$ rake spec # Run the whole spec suite
|
168
|
+
$ rake spec:shoes # Run integration specs using the mock backend
|
169
|
+
$ rake spec:swt # Run integration specs using the Swt backend, plus isolation specs for the Swt backend
|
170
|
+
$ rake spec:swt:isolation # Run isolation specs for the Swt backend
|
171
|
+
$ rake spec:swt:integration # Run integration specs using the Swt backend
|
172
|
+
$ rake spec[Shape] # Run the whole spec suite, but only for Shape
|
173
|
+
$ rake spec:shoes[Shape] # Run integration specs for Shape using the mock backend
|
174
|
+
$ rake spec:swt[Shape] # Run integration and isolation specs for Shape, using the Swt backend
|
175
|
+
$ rake spec:swt:isolation[Shape] # Run isolation specs for Shape using the Swt backend
|
176
|
+
|
177
|
+
**Note:** For Windows, `C:\tmp\shoes4>jruby -S rake spec`
|
178
|
+
|
179
|
+
## Contact
|
180
|
+
|
181
|
+
Want to get in touch with the shoes community? That's great! You can get in touch here:
|
182
|
+
|
183
|
+
* You can join the mailing list, simply send an email to shoes@librelist.com - you can also check out [the archives](http://librelist.com/browser/shoes/)
|
184
|
+
* We also have an irc channel #shoes on freenode - a lot of people are idling there so it might take some time to react
|
185
|
+
|
186
|
+
However we try to keep most discussions about the development in this repository/its issues so everyone can see them and look them up.
|
data/Rakefile
CHANGED
@@ -1,130 +1,217 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'rake'
|
3
2
|
require 'rake/clean'
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
require 'rubygems/package_task'
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
require 'bundler/gem_tasks'
|
6
|
+
|
7
|
+
PACKAGE_DIR = 'pkg'
|
8
|
+
SAMPLES_DIR = "samples"
|
9
|
+
|
10
|
+
CLEAN.include FileList[PACKAGE_DIR, 'doc', 'coverage', "spec/test_app/#{PACKAGE_DIR}"]
|
11
|
+
|
12
|
+
# Necessary for tasks to have description which is convenient in a few cases
|
13
|
+
Rake::TaskManager.record_task_metadata = true
|
14
|
+
|
15
|
+
require 'jruby'
|
16
|
+
JRuby.runtime.instance_config.runRubyInProcess = false
|
17
|
+
|
18
|
+
# thanks Dan Lucraft!
|
19
|
+
def jruby_run(cmd, swt = false)
|
20
|
+
opts = "-J-XstartOnFirstThread" if swt && RbConfig::CONFIG["host_os"] =~ /darwin/
|
21
|
+
|
22
|
+
# see https://github.com/jruby/jruby/wiki/FAQs
|
23
|
+
# "How can I increase the heap/memory size when launching a sub-JRuby?"
|
24
|
+
sh( "jruby --debug --1.9 -Ispec #{opts} -S #{cmd}" )
|
8
25
|
end
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
APP = YAML.load_file(File.join(ENV['APP'] || ".", "app.yaml"))
|
15
|
-
APPNAME = APP['name']
|
16
|
-
RELEASE_ID, RELEASE_NAME = APP['version'], APP['release']
|
17
|
-
NAME = APP['shortname'] || APP['name'].downcase.gsub(/\W+/, '')
|
18
|
-
SONAME = 'shoes'
|
19
|
-
|
20
|
-
require 'rake/testtask'
|
21
|
-
Rake::TestTask.new do |t|
|
22
|
-
t.pattern = "test/*_test.rb"
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'bundler'
|
26
|
-
Bundler::GemHelper.install_tasks
|
27
|
-
|
28
|
-
GIT = ENV['GIT'] || "git"
|
29
|
-
REVISION = (`#{GIT} rev-list HEAD`.split.length + 1).to_s
|
30
|
-
VERS = ENV['VERSION'] || "0.r#{REVISION}"
|
31
|
-
PKG = "#{NAME}-#{VERS}"
|
32
|
-
APPARGS = APP['run']
|
33
|
-
FLAGS = %w[DEBUG VIDEO]
|
34
|
-
VLC_VERSION = (RUBY_PLATFORM =~ /win32/ ? "0.8": `vlc --version 2>/dev/null`.split[2])
|
35
|
-
VLC_0_8 = VLC_VERSION !~ /^0\.9/
|
36
|
-
|
37
|
-
BIN = "*.{bundle,jar,o,so,obj,pdb,pch,res,lib,def,exp,exe,ilk}"
|
38
|
-
CLEAN.include ["{bin,shoes}/#{BIN}", "req/**/#{BIN}", "dist"]
|
39
|
-
|
40
|
-
RUBY_SO = Config::CONFIG['RUBY_SO_NAME']
|
41
|
-
RUBY_V = Config::CONFIG['ruby_version']
|
42
|
-
RUBY_1_9 = (RUBY_V =~ /^1\.9/)
|
43
|
-
if RUBY_1_9
|
44
|
-
$: << "."
|
26
|
+
|
27
|
+
def rspec(files, options = "")
|
28
|
+
rspec_opts = "#{options} #{files}"
|
29
|
+
"rspec --tty #{rspec_opts}"
|
45
30
|
end
|
46
31
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
32
|
+
# run rspec in separate Jruby JVM
|
33
|
+
# options :
|
34
|
+
# :swt - true/false(default) When True, will run Jruby with SWT-required -X-startOnFirstThread
|
35
|
+
# :rspec - string Options to pass to Rspec commandline.
|
36
|
+
#
|
37
|
+
def jruby_rspec(files, args)
|
38
|
+
swt = args.delete(:swt)
|
39
|
+
rspec_opts = spec_opts_from_args(args)
|
40
|
+
rspec_opts << " #{ENV['RSPEC_OPTS']}"
|
41
|
+
|
42
|
+
jruby_run(rspec(files, rspec_opts), swt)
|
43
|
+
|
44
|
+
#out = jruby_run(rspec(files, rspec_opts), swt)
|
45
|
+
#ok, result = out.split("\n").last
|
46
|
+
#examples_failures = result.match /\d* examples, \d* failures/
|
47
|
+
|
48
|
+
#return { :examples => examples_failures[1], :failures => examples_failures[2] }
|
53
49
|
end
|
54
50
|
|
55
|
-
|
56
|
-
|
51
|
+
def spec_opts_from_args(args)
|
52
|
+
opts = []
|
53
|
+
opts << "-e ::#{args[:module]}" if args[:module]
|
54
|
+
opts += Array(args[:require]).map {|lib| "-r#{lib}"}
|
55
|
+
opts += args[:excludes].map { |tag| "--tag ~#{tag}:true" } if args[:excludes]
|
56
|
+
opts += args[:includes].map { |tag| "--tag #{tag}:true" } if args[:includes]
|
57
|
+
opts.join ' '
|
57
58
|
end
|
58
59
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
Builder = MakeLinux
|
69
|
-
else
|
70
|
-
puts "Sorry, your platform [#{RUBY_PLATFORM}] is not supported..."
|
60
|
+
def swt_args(args)
|
61
|
+
args = args.to_hash
|
62
|
+
args[:swt] = true
|
63
|
+
args[:require] = 'swt_shoes/spec_helper'
|
64
|
+
# Adjust includes/excludes appropriately
|
65
|
+
# args[:includes] = [:swt]
|
66
|
+
args[:excludes] = [:no_swt]
|
67
|
+
args[:excludes] << :fails_on_osx if RbConfig::CONFIG["host_os"] =~ /darwin/
|
68
|
+
args
|
71
69
|
end
|
72
70
|
|
73
|
-
|
74
|
-
# common platform tasks
|
71
|
+
task :default => :spec
|
75
72
|
|
76
|
-
desc "
|
77
|
-
task :
|
73
|
+
desc "Run All Specs"
|
74
|
+
task :spec, [:module] => "spec:all" do
|
78
75
|
|
79
|
-
|
80
|
-
task :package => [:build, :installer]
|
76
|
+
end
|
81
77
|
|
82
|
-
|
83
|
-
|
84
|
-
|
78
|
+
namespace :spec do
|
79
|
+
desc "Run All Specs / All Modules"
|
80
|
+
task :default => ["spec:all"]
|
81
|
+
|
82
|
+
desc "Run Specs on Shoes + All Frameworks
|
83
|
+
Limit the examples to specific :modules :
|
84
|
+
Animation
|
85
|
+
App
|
86
|
+
Button
|
87
|
+
Flow
|
88
|
+
|
89
|
+
ie. $ rake spec:all[Flow]
|
90
|
+
"
|
91
|
+
task "all", [:module] do |t, args|
|
92
|
+
Rake::Task["spec:shoes"].invoke(args[:module])
|
93
|
+
Rake::Task["spec:swt"].invoke(args[:module])
|
85
94
|
end
|
86
|
-
end
|
87
95
|
|
88
|
-
task
|
89
|
-
|
90
|
-
f << %{shoes #{RELEASE_NAME.downcase} (0.r#{REVISION}) [#{RUBY_PLATFORM} Ruby#{RUBY_V}]}
|
91
|
-
%w[VIDEO DEBUG].each { |x| f << " +#{x.downcase}" if ENV[x] }
|
92
|
-
f << "\n"
|
96
|
+
task :swt, [:module] do |t, args|
|
97
|
+
Rake::Task['spec:swt:all'].invoke(args[:module])
|
93
98
|
end
|
94
|
-
end
|
95
99
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
+
namespace :swt do
|
101
|
+
desc "Run all specs with SWT backend
|
102
|
+
Limit the examples to specific :modules : "
|
103
|
+
task :all, [:module] do |t, args|
|
104
|
+
argh = swt_args(args)
|
105
|
+
files = (Dir['spec/swt_shoes/*_spec.rb'] + Dir['spec/shoes/*_spec.rb']).join ' '
|
106
|
+
jruby_rspec(files, argh)
|
107
|
+
end
|
108
|
+
|
109
|
+
desc "Run isolated Swt backend specs"
|
110
|
+
task :isolation, [:module] do |t, args|
|
111
|
+
argh = swt_args(args)
|
112
|
+
files = Dir['spec/swt_shoes/*_spec.rb'].join ' '
|
113
|
+
jruby_rspec(files, argh)
|
114
|
+
end
|
100
115
|
|
101
|
-
|
102
|
-
|
116
|
+
desc "Run integration specs with Swt backend"
|
117
|
+
task :integration, [:module] do |t, args|
|
118
|
+
argh = swt_args(args)
|
119
|
+
files = Dir['spec/shoes/*_spec.rb'].join ' '
|
120
|
+
jruby_rspec(files, argh)
|
121
|
+
end
|
122
|
+
end
|
103
123
|
|
104
|
-
desc "
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
end
|
124
|
+
desc "Specs for base Shoes libraries
|
125
|
+
Limit the examples to specific :modules : "
|
126
|
+
task "shoes", [:module] do |t, args|
|
127
|
+
argh = args.to_hash
|
128
|
+
files = Dir['spec/shoes/**/*_spec.rb'].join ' '
|
129
|
+
jruby_rspec(files, argh)
|
130
|
+
end
|
111
131
|
|
112
|
-
task "dist/#{NAME}" => ["dist/lib#{SONAME}.#{DLEXT}", "bin/main.o"] + ADD_DLL do |t|
|
113
|
-
Builder.make_app t.name
|
114
132
|
end
|
115
133
|
|
116
|
-
|
117
|
-
|
118
|
-
end
|
134
|
+
desc "Working with samples"
|
135
|
+
namespace :samples do
|
119
136
|
|
120
|
-
|
121
|
-
|
137
|
+
def samples_from_file(filename)
|
138
|
+
samples = File.read("#{SAMPLES_DIR}/#{filename}").lines
|
139
|
+
samples.map {|s| s.sub(/#.*$/, '')}.map(&:strip).select {|s| s != ''}.map {|s| "#{SAMPLES_DIR}/#{s}"}
|
140
|
+
end
|
141
|
+
|
142
|
+
def working_samples
|
143
|
+
samples = samples_from_file "README"
|
144
|
+
puts "#{samples.size} samples are known to work"
|
145
|
+
samples
|
146
|
+
end
|
147
|
+
|
148
|
+
def non_samples
|
149
|
+
all_samples = Dir[File.join(SAMPLES_DIR, '*.rb')]
|
150
|
+
result = all_samples - working_samples
|
151
|
+
puts "#{result.size} samples are not known to work"
|
152
|
+
result
|
153
|
+
end
|
154
|
+
|
155
|
+
def run_sample(sample_name, index, total)
|
156
|
+
print "Running #{sample_name} (#{index + 1} of #{total})...quit to run next sample"
|
157
|
+
system "bin/shoes #{sample_name}"
|
158
|
+
end
|
159
|
+
|
160
|
+
def run_samples(samples)
|
161
|
+
samples.each_with_index do |sample, index|
|
162
|
+
run_sample(sample, index, samples.size)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
desc "Run all working samples in random order"
|
167
|
+
task :random do |t|
|
168
|
+
puts t.comment
|
169
|
+
run_samples working_samples.shuffle
|
170
|
+
end
|
171
|
+
|
172
|
+
desc "Run all working samples in alphabetical order"
|
173
|
+
task :good do |t|
|
174
|
+
puts t.comment
|
175
|
+
run_samples working_samples.sort
|
176
|
+
end
|
177
|
+
|
178
|
+
desc "Run all non-working samples in random order"
|
179
|
+
task :bad do |t|
|
180
|
+
puts t.comment
|
181
|
+
run_samples non_samples.shuffle
|
182
|
+
end
|
183
|
+
|
184
|
+
desc "Create list of non-working samples"
|
185
|
+
task :bad_list do |t|
|
186
|
+
puts t.comment
|
187
|
+
non_samples.each{|non_sample| puts non_sample}
|
188
|
+
end
|
189
|
+
|
190
|
+
desc "Run all samples listed in samples/filename"
|
191
|
+
task :subset, [:filename] do |t, args|
|
192
|
+
puts t.comment
|
193
|
+
run_samples samples_from_file(args[:filename])
|
194
|
+
end
|
122
195
|
end
|
123
196
|
|
124
|
-
|
125
|
-
|
197
|
+
task :samples => ['samples:random']
|
198
|
+
task :non_samples => ['samples:bad']
|
199
|
+
task :list_non_samples => ['samples:bad_list']
|
200
|
+
|
201
|
+
begin
|
202
|
+
require 'yard'
|
203
|
+
|
204
|
+
YARD::Rake::YardocTask.new do |t|
|
205
|
+
t.options = ['-mmarkdown']
|
206
|
+
end
|
207
|
+
rescue LoadError
|
208
|
+
desc "Generate YARD Documentation"
|
209
|
+
task :yard do
|
210
|
+
abort 'YARD is not available. Try: gem install yard'
|
211
|
+
end
|
126
212
|
end
|
127
213
|
|
128
|
-
|
129
|
-
|
214
|
+
spec = Gem::Specification.load('shoes.gemspec')
|
215
|
+
Gem::PackageTask.new(spec) do |gem|
|
216
|
+
gem.package_dir = PACKAGE_DIR
|
130
217
|
end
|