shoes 4.0.0.pre1 → 4.0.0.pre2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +84 -32
- data/Gemfile +22 -1
- data/README.md +28 -13
- data/Rakefile +7 -210
- data/bin/ruby-shoes +2 -2
- data/ext/install/shoes.bat +4 -1
- data/lib/shoes.rb +1 -121
- data/lib/shoes/{cli.rb → ui/cli.rb} +7 -1
- data/lib/shoes/{help.rb → ui/help.rb} +2 -2
- data/lib/shoes/{manual.rb → ui/manual.rb} +1 -1
- data/lib/shoes/version.rb +1 -1
- data/manifests/common.rb +34 -0
- data/manifests/shoes.rb +44 -0
- data/samples/Gemfile +3 -0
- data/samples/Gemfile.lock +35 -0
- data/samples/README +16 -5
- data/samples/boom.rb +239 -0
- data/samples/clicky.rb +24 -0
- data/samples/flow.rb +63 -0
- data/samples/gray.rb +11 -0
- data/samples/nks_booklist.rb +24 -0
- data/samples/nks_breadsticks.rb +7 -0
- data/samples/nks_dancing_circle.rb +13 -0
- data/samples/nks_dictionary.rb +23 -0
- data/samples/nks_edit_box.rb +4 -0
- data/samples/nks_edit_line.rb +6 -0
- data/samples/nks_notes.rb +16 -0
- data/samples/nks_self.rb +6 -0
- data/samples/nks_text_sizes.rb +10 -0
- data/samples/nks_trurl.rb +5 -0
- data/samples/packaging/package_me.rb +6 -0
- data/samples/present.rb +27 -0
- data/samples/progress.rb +10 -0
- data/samples/sample31.rb +1 -1
- data/samples/simple-calc.rb +1 -1
- data/samples/simple-tictactoe.rb +238 -0
- data/samples/simple-visibility.rb +11 -0
- data/samples/simple-widget.rb +9 -0
- data/samples/swt-raw.rb +20 -0
- data/samples/troll.rb +22 -0
- data/shoes.gemspec +10 -22
- data/snapshots/sample56.png +0 -0
- data/static/manual-en.txt +16 -7
- data/tasks/changelog.rb +92 -0
- data/tasks/gem.rb +38 -0
- data/tasks/rspec.rb +106 -0
- data/tasks/sample.rb +66 -0
- data/tasks/yard.rb +13 -0
- metadata +55 -488
- data/.gitignore +0 -53
- data/.rspec +0 -3
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -31
- data/bin/shoes +0 -59
- data/bin/shoes.bat +0 -6
- data/fonts/Coolvetica.ttf +0 -0
- data/fonts/Lacuna.ttf +0 -0
- data/lib/ext/highlighter.rb +0 -2
- data/lib/ext/highlighter/common.rb +0 -197
- data/lib/ext/highlighter/lang/ruby.rb +0 -316
- data/lib/ext/highlighter/markup.rb +0 -222
- data/lib/rubygems_plugin.rb +0 -19
- data/lib/shoes/animation.rb +0 -55
- data/lib/shoes/app.rb +0 -320
- data/lib/shoes/arc.rb +0 -35
- data/lib/shoes/background.rb +0 -30
- data/lib/shoes/border.rb +0 -33
- data/lib/shoes/builtin_methods.rb +0 -73
- data/lib/shoes/button.rb +0 -32
- data/lib/shoes/check_button.rb +0 -43
- data/lib/shoes/color.rb +0 -375
- data/lib/shoes/common/background_element.rb +0 -9
- data/lib/shoes/common/changeable.rb +0 -34
- data/lib/shoes/common/clickable.rb +0 -17
- data/lib/shoes/common/common_methods.rb +0 -70
- data/lib/shoes/common/fill.rb +0 -21
- data/lib/shoes/common/registration.rb +0 -33
- data/lib/shoes/common/state.rb +0 -18
- data/lib/shoes/common/stroke.rb +0 -28
- data/lib/shoes/common/style.rb +0 -34
- data/lib/shoes/common/style_normalizer.rb +0 -16
- data/lib/shoes/configuration.rb +0 -96
- data/lib/shoes/dialog.rb +0 -27
- data/lib/shoes/dimension.rb +0 -237
- data/lib/shoes/dimensions.rb +0 -194
- data/lib/shoes/download.rb +0 -117
- data/lib/shoes/dsl.rb +0 -478
- data/lib/shoes/font.rb +0 -49
- data/lib/shoes/gradient.rb +0 -18
- data/lib/shoes/image.rb +0 -33
- data/lib/shoes/image_pattern.rb +0 -10
- data/lib/shoes/input_box.rb +0 -68
- data/lib/shoes/key_event.rb +0 -17
- data/lib/shoes/line.rb +0 -38
- data/lib/shoes/link.rb +0 -49
- data/lib/shoes/link_hover.rb +0 -5
- data/lib/shoes/list_box.rb +0 -44
- data/lib/shoes/logger.rb +0 -66
- data/lib/shoes/logger/ruby.rb +0 -18
- data/lib/shoes/mock.rb +0 -30
- data/lib/shoes/mock/animation.rb +0 -8
- data/lib/shoes/mock/app.rb +0 -44
- data/lib/shoes/mock/arc.rb +0 -8
- data/lib/shoes/mock/background.rb +0 -10
- data/lib/shoes/mock/border.rb +0 -7
- data/lib/shoes/mock/button.rb +0 -10
- data/lib/shoes/mock/check.rb +0 -24
- data/lib/shoes/mock/common_methods.rb +0 -11
- data/lib/shoes/mock/dialog.rb +0 -13
- data/lib/shoes/mock/download.rb +0 -18
- data/lib/shoes/mock/font.rb +0 -17
- data/lib/shoes/mock/image.rb +0 -12
- data/lib/shoes/mock/image_pattern.rb +0 -9
- data/lib/shoes/mock/input_box.rb +0 -23
- data/lib/shoes/mock/keypress.rb +0 -8
- data/lib/shoes/mock/keyrelease.rb +0 -8
- data/lib/shoes/mock/line.rb +0 -14
- data/lib/shoes/mock/link.rb +0 -11
- data/lib/shoes/mock/list_box.rb +0 -16
- data/lib/shoes/mock/oval.rb +0 -11
- data/lib/shoes/mock/progress.rb +0 -10
- data/lib/shoes/mock/radio.rb +0 -26
- data/lib/shoes/mock/rect.rb +0 -13
- data/lib/shoes/mock/shape.rb +0 -19
- data/lib/shoes/mock/slot.rb +0 -14
- data/lib/shoes/mock/sound.rb +0 -8
- data/lib/shoes/mock/star.rb +0 -13
- data/lib/shoes/mock/text_block.rb +0 -29
- data/lib/shoes/mock/timer.rb +0 -8
- data/lib/shoes/oval.rb +0 -28
- data/lib/shoes/point.rb +0 -43
- data/lib/shoes/progress.rb +0 -26
- data/lib/shoes/radio.rb +0 -15
- data/lib/shoes/rect.rb +0 -28
- data/lib/shoes/renamed_delegate.rb +0 -15
- data/lib/shoes/shape.rb +0 -175
- data/lib/shoes/slot.rb +0 -232
- data/lib/shoes/slot_contents.rb +0 -56
- data/lib/shoes/sound.rb +0 -16
- data/lib/shoes/span.rb +0 -16
- data/lib/shoes/star.rb +0 -49
- data/lib/shoes/swt.rb +0 -114
- data/lib/shoes/swt/animation.rb +0 -46
- data/lib/shoes/swt/app.rb +0 -300
- data/lib/shoes/swt/arc.rb +0 -70
- data/lib/shoes/swt/background.rb +0 -31
- data/lib/shoes/swt/border.rb +0 -37
- data/lib/shoes/swt/button.rb +0 -18
- data/lib/shoes/swt/check.rb +0 -14
- data/lib/shoes/swt/check_button.rb +0 -19
- data/lib/shoes/swt/color.rb +0 -45
- data/lib/shoes/swt/common/child.rb +0 -16
- data/lib/shoes/swt/common/clear.rb +0 -24
- data/lib/shoes/swt/common/clickable.rb +0 -62
- data/lib/shoes/swt/common/container.rb +0 -28
- data/lib/shoes/swt/common/fill.rb +0 -37
- data/lib/shoes/swt/common/painter.rb +0 -83
- data/lib/shoes/swt/common/painter_updates_position.rb +0 -12
- data/lib/shoes/swt/common/resource.rb +0 -14
- data/lib/shoes/swt/common/selection_listener.rb +0 -14
- data/lib/shoes/swt/common/stroke.rb +0 -41
- data/lib/shoes/swt/common/toggle.rb +0 -13
- data/lib/shoes/swt/common/update_position.rb +0 -15
- data/lib/shoes/swt/dialog.rb +0 -89
- data/lib/shoes/swt/disposed_protection.rb +0 -23
- data/lib/shoes/swt/download.rb +0 -24
- data/lib/shoes/swt/fitted_text_layout.rb +0 -94
- data/lib/shoes/swt/fitted_text_layout_collection.rb +0 -108
- data/lib/shoes/swt/font.rb +0 -32
- data/lib/shoes/swt/gradient.rb +0 -77
- data/lib/shoes/swt/image.rb +0 -130
- data/lib/shoes/swt/image_pattern.rb +0 -19
- data/lib/shoes/swt/input_box.rb +0 -73
- data/lib/shoes/swt/key_listener.rb +0 -145
- data/lib/shoes/swt/line.rb +0 -57
- data/lib/shoes/swt/link.rb +0 -37
- data/lib/shoes/swt/link_segment.rb +0 -108
- data/lib/shoes/swt/list_box.rb +0 -49
- data/lib/shoes/swt/mouse_move_listener.rb +0 -61
- data/lib/shoes/swt/oval.rb +0 -53
- data/lib/shoes/swt/progress.rb +0 -35
- data/lib/shoes/swt/radio.rb +0 -29
- data/lib/shoes/swt/radio_group.rb +0 -54
- data/lib/shoes/swt/rect.rb +0 -31
- data/lib/shoes/swt/rect_painter.rb +0 -23
- data/lib/shoes/swt/redrawing_aspect.rb +0 -122
- data/lib/shoes/swt/shape.rb +0 -101
- data/lib/shoes/swt/shoes_layout.rb +0 -43
- data/lib/shoes/swt/slot.rb +0 -25
- data/lib/shoes/swt/sound.rb +0 -119
- data/lib/shoes/swt/star.rb +0 -51
- data/lib/shoes/swt/swt_button.rb +0 -49
- data/lib/shoes/swt/text_block.rb +0 -133
- data/lib/shoes/swt/text_block_cursor_painter.rb +0 -112
- data/lib/shoes/swt/text_block_fitter.rb +0 -180
- data/lib/shoes/swt/text_block_painter.rb +0 -49
- data/lib/shoes/swt/text_font_factory.rb +0 -27
- data/lib/shoes/swt/text_style_factory.rb +0 -88
- data/lib/shoes/swt/timer.rb +0 -19
- data/lib/shoes/swt/tooling/leak_hunter.rb +0 -84
- data/lib/shoes/text.rb +0 -14
- data/lib/shoes/text_block.rb +0 -162
- data/lib/shoes/timer.rb +0 -10
- data/lib/shoes/url.rb +0 -47
- data/lib/shoes/widget.rb +0 -73
- 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/good-clock-adjusted.rb +0 -49
- data/spec/async_helper.rb +0 -21
- data/spec/code_coverage.rb +0 -11
- data/spec/shoes/animation_spec.rb +0 -65
- data/spec/shoes/app_spec.rb +0 -411
- data/spec/shoes/arc_spec.rb +0 -53
- data/spec/shoes/background_spec.rb +0 -48
- data/spec/shoes/border_spec.rb +0 -43
- data/spec/shoes/builtin_methods_spec.rb +0 -84
- data/spec/shoes/button_spec.rb +0 -41
- data/spec/shoes/check_spec.rb +0 -31
- data/spec/shoes/cli_spec.rb +0 -16
- data/spec/shoes/color_spec.rb +0 -396
- data/spec/shoes/common/style_normalizer_spec.rb +0 -28
- data/spec/shoes/common/style_spec.rb +0 -58
- data/spec/shoes/configuration_spec.rb +0 -37
- data/spec/shoes/constants_spec.rb +0 -38
- data/spec/shoes/dialog_spec.rb +0 -163
- data/spec/shoes/dimension_spec.rb +0 -381
- data/spec/shoes/dimensions_spec.rb +0 -831
- data/spec/shoes/download_spec.rb +0 -133
- data/spec/shoes/flow_spec.rb +0 -92
- data/spec/shoes/font_spec.rb +0 -38
- data/spec/shoes/framework_learning_spec.rb +0 -30
- data/spec/shoes/helpers/fake_element.rb +0 -11
- data/spec/shoes/helpers/sample17_helper.rb +0 -66
- data/spec/shoes/image_spec.rb +0 -45
- data/spec/shoes/images/shoe.jpg +0 -0
- data/spec/shoes/input_box_spec.rb +0 -44
- data/spec/shoes/integration_spec.rb +0 -20
- data/spec/shoes/keypress_spec.rb +0 -11
- data/spec/shoes/keyrelease_spec.rb +0 -12
- data/spec/shoes/line_spec.rb +0 -47
- data/spec/shoes/link_spec.rb +0 -89
- data/spec/shoes/list_box_spec.rb +0 -63
- data/spec/shoes/logger/ruby_spec.rb +0 -9
- data/spec/shoes/logger_spec.rb +0 -45
- data/spec/shoes/oval_spec.rb +0 -20
- data/spec/shoes/point_spec.rb +0 -51
- data/spec/shoes/progress_spec.rb +0 -40
- data/spec/shoes/radio_spec.rb +0 -28
- data/spec/shoes/rect_spec.rb +0 -38
- data/spec/shoes/renamed_delegate_spec.rb +0 -70
- data/spec/shoes/shape_spec.rb +0 -54
- data/spec/shoes/shared_examples/button.rb +0 -6
- data/spec/shoes/shared_examples/changeable.rb +0 -26
- data/spec/shoes/shared_examples/clickable.rb +0 -5
- data/spec/shoes/shared_examples/common_methods.rb +0 -42
- data/spec/shoes/shared_examples/dimensions.rb +0 -32
- data/spec/shoes/shared_examples/dsl.rb +0 -42
- data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
- data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
- data/spec/shoes/shared_examples/dsl/background.rb +0 -26
- data/spec/shoes/shared_examples/dsl/border.rb +0 -10
- data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
- data/spec/shoes/shared_examples/dsl/check.rb +0 -11
- data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
- data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
- data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
- data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
- data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
- data/spec/shoes/shared_examples/dsl/gradient.rb +0 -52
- data/spec/shoes/shared_examples/dsl/image.rb +0 -21
- data/spec/shoes/shared_examples/dsl/line.rb +0 -9
- data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
- data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
- data/spec/shoes/shared_examples/dsl/oval.rb +0 -60
- data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
- data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
- data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
- data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
- data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
- data/spec/shoes/shared_examples/dsl/star.rb +0 -48
- data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
- data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
- data/spec/shoes/shared_examples/dsl/style.rb +0 -32
- data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
- data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
- data/spec/shoes/shared_examples/hover_leave.rb +0 -11
- data/spec/shoes/shared_examples/parent.rb +0 -6
- data/spec/shoes/shared_examples/shared_element_method.rb +0 -52
- data/spec/shoes/shared_examples/slot.rb +0 -272
- data/spec/shoes/shared_examples/state.rb +0 -19
- data/spec/shoes/shared_examples/style.rb +0 -24
- data/spec/shoes/slot_spec.rb +0 -60
- data/spec/shoes/sound_spec.rb +0 -15
- data/spec/shoes/span_spec.rb +0 -94
- data/spec/shoes/spec_helper.rb +0 -1
- data/spec/shoes/stack_spec.rb +0 -53
- data/spec/shoes/star_spec.rb +0 -30
- data/spec/shoes/text_block_spec.rb +0 -242
- data/spec/shoes/url_spec.rb +0 -66
- data/spec/shoes/widget_spec.rb +0 -34
- data/spec/shoes_spec.rb +0 -44
- data/spec/spec_helper.rb +0 -16
- data/spec/swt_shoes/animation_spec.rb +0 -86
- data/spec/swt_shoes/app_spec.rb +0 -75
- data/spec/swt_shoes/arc_spec.rb +0 -101
- data/spec/swt_shoes/background_spec.rb +0 -56
- data/spec/swt_shoes/border_spec.rb +0 -51
- data/spec/swt_shoes/button_spec.rb +0 -101
- data/spec/swt_shoes/check_spec.rb +0 -28
- data/spec/swt_shoes/color_spec.rb +0 -67
- data/spec/swt_shoes/common/painter_spec.rb +0 -29
- data/spec/swt_shoes/configuration_spec.rb +0 -12
- data/spec/swt_shoes/dialog_spec.rb +0 -106
- data/spec/swt_shoes/disposed_protection_spec.rb +0 -49
- data/spec/swt_shoes/fitted_text_layout_collection_spec.rb +0 -174
- data/spec/swt_shoes/fitted_text_layout_spec.rb +0 -130
- data/spec/swt_shoes/flow_spec.rb +0 -26
- data/spec/swt_shoes/font_spec.rb +0 -33
- data/spec/swt_shoes/gradient_spec.rb +0 -20
- data/spec/swt_shoes/image_pattern_spec.rb +0 -19
- data/spec/swt_shoes/image_spec.rb +0 -100
- data/spec/swt_shoes/input_box_spec.rb +0 -110
- data/spec/swt_shoes/integration_spec.rb +0 -18
- data/spec/swt_shoes/key_listener_spec.rb +0 -320
- data/spec/swt_shoes/line_spec.rb +0 -43
- data/spec/swt_shoes/link_segment_spec.rb +0 -103
- data/spec/swt_shoes/link_spec.rb +0 -59
- data/spec/swt_shoes/list_box_spec.rb +0 -51
- data/spec/swt_shoes/minimal.png +0 -0
- data/spec/swt_shoes/mouse_move_listener_spec.rb +0 -129
- data/spec/swt_shoes/oval_spec.rb +0 -51
- data/spec/swt_shoes/progress_spec.rb +0 -44
- data/spec/swt_shoes/radio_group_spec.rb +0 -73
- data/spec/swt_shoes/radio_spec.rb +0 -56
- data/spec/swt_shoes/rect_painter_spec.rb +0 -45
- data/spec/swt_shoes/rect_spec.rb +0 -19
- data/spec/swt_shoes/shape_spec.rb +0 -81
- data/spec/swt_shoes/shared_examples/button.rb +0 -24
- data/spec/swt_shoes/shared_examples/clearable.rb +0 -32
- data/spec/swt_shoes/shared_examples/clickable.rb +0 -60
- data/spec/swt_shoes/shared_examples/movable.rb +0 -36
- data/spec/swt_shoes/shared_examples/paintable_spec.rb +0 -7
- data/spec/swt_shoes/shared_examples/painter.rb +0 -83
- data/spec/swt_shoes/shared_examples/pattern.rb +0 -32
- data/spec/swt_shoes/shared_examples/swt_app_context.rb +0 -17
- data/spec/swt_shoes/shared_examples/togglable.rb +0 -15
- data/spec/swt_shoes/shell_control_listener_spec.rb +0 -23
- data/spec/swt_shoes/sound.rb +0 -10
- data/spec/swt_shoes/spec_helper.rb +0 -31
- data/spec/swt_shoes/star_spec.rb +0 -47
- data/spec/swt_shoes/text_block_cursor_painter_spec.rb +0 -202
- data/spec/swt_shoes/text_block_fitter_spec.rb +0 -181
- data/spec/swt_shoes/text_block_painter_spec.rb +0 -221
- data/spec/swt_shoes/text_block_spec.rb +0 -183
data/samples/swt-raw.rb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'java'
|
|
4
|
+
$:.unshift(File.expand_path("../../lib", __FILE__))
|
|
5
|
+
require 'swt'
|
|
6
|
+
|
|
7
|
+
class ButtonExample
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
style = ::Swt::SWT::CLOSE | ::Swt::SWT::MIN | ::Swt::SWT::V_SCROLL #| ::Swt::SWT::MAX | ::Swt::SWT::RESIZE
|
|
11
|
+
@shell = Swt::Widgets::Shell.new(style)
|
|
12
|
+
@shell.open
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def start
|
|
16
|
+
::Swt.event_loop { @shell.disposed? }
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
ButtonExample.new.start
|
data/samples/troll.rb
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'pry'
|
|
2
|
+
require 'pry-nav'
|
|
3
|
+
require 'shoes/swt/leak_hunter'
|
|
4
|
+
|
|
5
|
+
Shoes.app do
|
|
6
|
+
every(1) do
|
|
7
|
+
print "!"
|
|
8
|
+
clear
|
|
9
|
+
stack width:100 do
|
|
10
|
+
background green
|
|
11
|
+
|
|
12
|
+
button "quit" do
|
|
13
|
+
clear
|
|
14
|
+
quit
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
100.times do
|
|
18
|
+
para "b", link("kind", fg: red)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
data/shoes.gemspec
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
2
|
+
require_relative 'lib/shoes/version'
|
|
3
|
+
require_relative 'manifests/shoes'
|
|
3
4
|
|
|
4
5
|
Gem::Specification.new do |s|
|
|
5
6
|
s.name = "shoes"
|
|
@@ -12,30 +13,17 @@ Gem::Specification.new do |s|
|
|
|
12
13
|
s.description = %q{Shoes is the best little GUI toolkit for Ruby. Shoes makes building for Mac, Windows, and Linux super simple. Shoes runs on JRuby only for now.}
|
|
13
14
|
s.license = 'MIT'
|
|
14
15
|
|
|
15
|
-
s.files =
|
|
16
|
-
s.test_files =
|
|
16
|
+
s.files = ShoesManifest.files
|
|
17
|
+
s.test_files = ShoesManifest.test_files
|
|
17
18
|
s.require_paths = ["lib"]
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
s.
|
|
21
|
-
s.extensions = ['ext/install/Rakefile']
|
|
20
|
+
s.add_dependency "shoes-dsl", Shoes::VERSION
|
|
21
|
+
s.add_dependency "shoes-swt", Shoes::VERSION
|
|
22
22
|
|
|
23
|
-
s.add_dependency "
|
|
24
|
-
s.add_dependency "furoshiki", ">=0.1.2"
|
|
23
|
+
s.add_dependency "furoshiki", ">=0.1.2" # For packaging
|
|
25
24
|
s.add_dependency "nokogiri" # For converting the manual to HTML
|
|
26
|
-
s.add_dependency "after_do", "~>0.3"
|
|
27
|
-
|
|
28
|
-
s.add_development_dependency "guard"
|
|
29
|
-
s.add_development_dependency "guard-rspec"
|
|
30
|
-
s.add_development_dependency "pry"
|
|
31
25
|
|
|
32
|
-
|
|
33
|
-
s.
|
|
34
|
-
|
|
35
|
-
s.add_development_dependency "yard"
|
|
36
|
-
s.add_development_dependency "kramdown"
|
|
37
|
-
s.add_development_dependency 'simplecov'
|
|
38
|
-
s.add_development_dependency 'coveralls'
|
|
39
|
-
s.add_development_dependency 'jruby-lint'
|
|
40
|
-
s.add_development_dependency 'webmock'
|
|
26
|
+
# Curious why we don't install shoes? See ext/Rakefile for the nitty-gritty.
|
|
27
|
+
s.executables = ['shoes-stub', 'ruby-shoes']
|
|
28
|
+
s.extensions = ['ext/install/Rakefile']
|
|
41
29
|
end
|
|
Binary file
|
data/static/manual-en.txt
CHANGED
|
@@ -1692,10 +1692,10 @@ also set, shapes drawn will not be visible.
|
|
|
1692
1692
|
Draws a line using the current line color (aka "stroke") starting at
|
|
1693
1693
|
coordinates (left, top) and ending at coordinates (x2, y2).
|
|
1694
1694
|
|
|
1695
|
-
=== oval(left, top,
|
|
1695
|
+
=== oval(left, top, diameter) » Shoes::Shape ===
|
|
1696
1696
|
|
|
1697
1697
|
Draws a circular form at pixel coordinates (left, top) with a width and height
|
|
1698
|
-
of `
|
|
1698
|
+
of `diameter` pixels. The line and fill colors are used to draw the shape. By
|
|
1699
1699
|
default, the coordinates are for the oval's leftmost, top corner, but this can
|
|
1700
1700
|
be changed by calling the [[Art.transform]] method or by using the `:center`
|
|
1701
1701
|
style on the next method below.
|
|
@@ -1718,21 +1718,21 @@ Draw circular form using a style hash. The following styles are supported:
|
|
|
1718
1718
|
|
|
1719
1719
|
* `top`: the y-coordinate for the oval pen.
|
|
1720
1720
|
* `left`: the x-coordinate for the oval pen.
|
|
1721
|
-
* `
|
|
1721
|
+
* `diameter`: the width and height of the circle.
|
|
1722
1722
|
* `width`: a specific pixel width for the oval.
|
|
1723
1723
|
* `height`: a specific pixel height for the oval.
|
|
1724
1724
|
* `center`: do the coordinates specific the oval's center? (true or false)
|
|
1725
1725
|
|
|
1726
1726
|
These styles may also be altered using the `style` method on the Shape object.
|
|
1727
1727
|
|
|
1728
|
-
=== rect(
|
|
1728
|
+
=== rect(left, top, width, height, corners = 0) » Shoes::Shape ===
|
|
1729
1729
|
|
|
1730
|
-
Draws a rectangle starting from coordinates (
|
|
1730
|
+
Draws a rectangle starting from coordinates (left, top) with dimensions of
|
|
1731
1731
|
width x height. Optionally, you may give the rectangle rounded corners with a
|
|
1732
1732
|
fifth argument: the radius of the corners in pixels.
|
|
1733
1733
|
|
|
1734
1734
|
Alternate Call:
|
|
1735
|
-
rect(
|
|
1735
|
+
rect(left, top, sidelength): Will draw a square with sides having the given length
|
|
1736
1736
|
|
|
1737
1737
|
|
|
1738
1738
|
As with all other shapes, the rectangle is drawn using the stroke and fill colors.
|
|
@@ -1754,8 +1754,8 @@ method for a rectangle which defaults to filling its parent box.
|
|
|
1754
1754
|
|
|
1755
1755
|
Draw a rectangle using a style hash. The following styles are supported:
|
|
1756
1756
|
|
|
1757
|
-
* `top`: the y-coordinate for the rectangle.
|
|
1758
1757
|
* `left`: the x-coordinate for the rectangle.
|
|
1758
|
+
* `top`: the y-coordinate for the rectangle.
|
|
1759
1759
|
* `curve`: the pixel radius of the rectangle's corners.
|
|
1760
1760
|
* `width`: a specific pixel width for the rectangle.
|
|
1761
1761
|
* `height`: a specific pixel height for the rectangle.
|
|
@@ -1806,6 +1806,15 @@ the other methods in this [[Art]] section) inside a shape, but they will not be
|
|
|
1806
1806
|
part of the line. They will be more like a group of shapes are all drawn as
|
|
1807
1807
|
one.
|
|
1808
1808
|
|
|
1809
|
+
=== shape(styles) » Shoes::Shape ===
|
|
1810
|
+
|
|
1811
|
+
Draw an arbitrary shape using a style hash. The following styles are supported:
|
|
1812
|
+
|
|
1813
|
+
* `left`: the x-coordinate for the shape.
|
|
1814
|
+
* `top`: the y-coordinate for the shape.
|
|
1815
|
+
|
|
1816
|
+
These styles may also be altered using the `style` method on the shape object.
|
|
1817
|
+
|
|
1809
1818
|
=== star(left, top, points = 10, outer = 100.0, inner = 50.0) » Shoes::Shape ===
|
|
1810
1819
|
|
|
1811
1820
|
Draws a star using the stroke and fill colors. The star is positioned with its
|
data/tasks/changelog.rb
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
class Changelog
|
|
2
|
+
CATEGORY_MAPPING = [
|
|
3
|
+
{pattern: 'Changelog: feature', heading: 'New features'},
|
|
4
|
+
{pattern: 'Changelog: improvement', heading: 'Improvements'},
|
|
5
|
+
{pattern: 'Changelog: bugfix', heading: 'Bug Fixes'}
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
COMMIT_SEPARATOR = '<--COMMIT-->'
|
|
9
|
+
BODY_START_SEPARATOR = '<--BODY-START-->'
|
|
10
|
+
BODY_END_SEPARATOR = '<--BODY-END-->'
|
|
11
|
+
|
|
12
|
+
def generate(categories = CATEGORY_MAPPING)
|
|
13
|
+
commit_range = commits_on_master_since_last_release
|
|
14
|
+
changes = categorize_commits(categories, commit_range)
|
|
15
|
+
changes << contributors(commit_range) if changes.any?
|
|
16
|
+
changes.compact.join("\n\n")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
def categorize_commits(categories, commit_range)
|
|
21
|
+
categorized_commits = []
|
|
22
|
+
|
|
23
|
+
changes = categories.inject([]) do |list, category|
|
|
24
|
+
commits = commits_matching(category[:pattern], commit_range)
|
|
25
|
+
categorized_commits.concat commits
|
|
26
|
+
list << changes_under_heading(category[:heading], commits)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
changes << misc_changes(commit_range, categorized_commits)
|
|
30
|
+
changes
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def heading(title, count, underline_char = '-')
|
|
34
|
+
title_with_count = "#{title} (#{count})"
|
|
35
|
+
underline = underline_char * title_with_count.length
|
|
36
|
+
"#{title_with_count}\n#{underline}\n\n"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def commits_matching(pattern, commit_range)
|
|
40
|
+
grep_placeholder = '{TOKEN}'
|
|
41
|
+
log_command_template = "git log --regexp-ignore-case --grep '#{grep_placeholder}' --format='%s#{BODY_START_SEPARATOR}%b#{BODY_END_SEPARATOR} [%h]#{COMMIT_SEPARATOR}' #{commit_range}"
|
|
42
|
+
log_command = log_command_template.gsub(grep_placeholder, pattern)
|
|
43
|
+
|
|
44
|
+
commits =`#{log_command}`
|
|
45
|
+
raise "Bad \`git log\` command. Using <#{log_command}>" unless $?.success?
|
|
46
|
+
|
|
47
|
+
commits.split(COMMIT_SEPARATOR + "\n").map{|commit| uniform_change_log(commit)}
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def uniform_change_log(commit)
|
|
51
|
+
'* ' + extract_changelog_message(commit)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def extract_changelog_message commit
|
|
55
|
+
if commit =~ /Merge pull request/i
|
|
56
|
+
message = commit.sub(/Merge pull request.*#{BODY_START_SEPARATOR}/i, '')
|
|
57
|
+
message.sub /((\n.*#{BODY_END_SEPARATOR})|#{BODY_END_SEPARATOR})/m, ''
|
|
58
|
+
else
|
|
59
|
+
commit.sub /#{BODY_START_SEPARATOR}.*#{BODY_END_SEPARATOR}/m, ''
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def misc_changes(commit_range, categorized_commits)
|
|
64
|
+
misc_change_commits = commits_matching('Changelog', commit_range).reject {|commit| categorized_commits.include? commit }
|
|
65
|
+
changes_under_heading('Miscellaneous', misc_change_commits)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def changes_under_heading(title, commits)
|
|
69
|
+
if commits.any?
|
|
70
|
+
heading = heading(title, commits.length)
|
|
71
|
+
heading << commits.join("\n")
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def contributors(commit_range)
|
|
76
|
+
contributors = `git shortlog --numbered --summary #{commit_range}`.split("\n")
|
|
77
|
+
heading = heading("Contributors", contributors.length)
|
|
78
|
+
names = contributors.map {|line| line.sub(/^.*\t/, '')}.join(", ")
|
|
79
|
+
heading << names
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def commits_on_master_since_last_release
|
|
83
|
+
last_sha = `git rev-list --tags --max-count=1`.chomp
|
|
84
|
+
last_release = `git describe #{last_sha}`.chomp
|
|
85
|
+
commit_range = "#{last_release}..master"
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
desc "Generate changelog entries since last release"
|
|
90
|
+
task :changelog do
|
|
91
|
+
puts Changelog.new.generate
|
|
92
|
+
end
|
data/tasks/gem.rb
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'bundler/gem_helper'
|
|
2
|
+
|
|
3
|
+
# Define placeholder tasks so we can name them as dependencies. The bodies
|
|
4
|
+
# of these tasks will be defined by Bundler at runtime.
|
|
5
|
+
task :build
|
|
6
|
+
task :install
|
|
7
|
+
task :release
|
|
8
|
+
|
|
9
|
+
desc 'Build all gems'
|
|
10
|
+
task 'build:all'
|
|
11
|
+
|
|
12
|
+
desc 'Install all gems'
|
|
13
|
+
task 'install:all'
|
|
14
|
+
|
|
15
|
+
['shoes-dsl', 'shoes-swt', 'shoes'].each do |lib|
|
|
16
|
+
# Defer installing Bundler gem tasks until runtime, so we can install them
|
|
17
|
+
# for a particular gem. Still create tasks that will show up in `rake --tasks`
|
|
18
|
+
# Note that executing #install_tasks multiple times will *add* to the defined
|
|
19
|
+
# tasks, so we can build up build:all and install:all tasks.
|
|
20
|
+
task "install_gem_tasks:#{lib}" do
|
|
21
|
+
Bundler::GemHelper.install_tasks :name => lib
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
desc "Build the #{lib} gem"
|
|
25
|
+
task "build:#{lib}" => ["install_gem_tasks:#{lib}", :build]
|
|
26
|
+
|
|
27
|
+
desc "Install the #{lib} gem"
|
|
28
|
+
task "install:#{lib}" => ["install_gem_tasks:#{lib}", :install]
|
|
29
|
+
|
|
30
|
+
desc "Release the #{lib} gem"
|
|
31
|
+
task "release:#{lib}" => ["install_gem_tasks:#{lib}", :release]
|
|
32
|
+
|
|
33
|
+
task "build:all" => "install_gem_tasks:#{lib}"
|
|
34
|
+
task "install:all" => "install_gem_tasks:#{lib}"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
task 'build:all' => 'build'
|
|
38
|
+
task 'install:all' => 'install'
|
data/tasks/rspec.rb
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
require 'jruby'
|
|
2
|
+
JRuby.runtime.instance_config.runRubyInProcess = false
|
|
3
|
+
|
|
4
|
+
# thanks Dan Lucraft!
|
|
5
|
+
def jruby_run(cmd, swt = false)
|
|
6
|
+
opts = "-J-XstartOnFirstThread" if swt && RbConfig::CONFIG["host_os"] =~ /darwin/
|
|
7
|
+
|
|
8
|
+
# see https://github.com/jruby/jruby/wiki/FAQs
|
|
9
|
+
# "How can I increase the heap/memory size when launching a sub-JRuby?"
|
|
10
|
+
sh( "jruby --debug --1.9 -Ispec #{opts} -S #{cmd}" )
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def rspec(files, options = "")
|
|
14
|
+
rspec_opts = "#{options} #{files}"
|
|
15
|
+
"rspec --tty #{rspec_opts}"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# run rspec in separate Jruby JVM
|
|
19
|
+
def jruby_rspec(files, args)
|
|
20
|
+
swt = args.delete(:swt)
|
|
21
|
+
rspec_opts = spec_opts_from_args(args)
|
|
22
|
+
rspec_opts << " #{ENV['RSPEC_OPTS']}"
|
|
23
|
+
|
|
24
|
+
jruby_run(rspec(files, rspec_opts), swt)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def spec_opts_from_args(args)
|
|
28
|
+
opts = []
|
|
29
|
+
opts << "-e ::#{args[:module]}" if args[:module]
|
|
30
|
+
opts += Array(args[:require]).map {|lib| "-r#{lib}"}
|
|
31
|
+
opts += args[:excludes].map { |tag| "--tag ~#{tag}" } if args[:excludes]
|
|
32
|
+
opts += args[:includes].map { |tag| "--tag #{tag}" } if args[:includes]
|
|
33
|
+
opts.join ' '
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def swt_args(args)
|
|
37
|
+
args = args.to_hash
|
|
38
|
+
args[:swt] = true
|
|
39
|
+
args[:require] = 'swt_shoes/spec_helper'
|
|
40
|
+
# Adjust includes/excludes appropriately
|
|
41
|
+
# args[:includes] = [:swt]
|
|
42
|
+
args[:excludes] = [:no_swt]
|
|
43
|
+
args[:excludes] << :fails_on_osx if RbConfig::CONFIG["host_os"] =~ /darwin/
|
|
44
|
+
args
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
task :default => :spec
|
|
48
|
+
|
|
49
|
+
desc "Run all specs"
|
|
50
|
+
task :spec, [:module] => "spec:all"
|
|
51
|
+
|
|
52
|
+
namespace :spec do
|
|
53
|
+
desc "Run all specs for Shoes DSL and SWT backend
|
|
54
|
+
Limit the examples to specific :modules :
|
|
55
|
+
Animation
|
|
56
|
+
App
|
|
57
|
+
Button
|
|
58
|
+
Flow
|
|
59
|
+
|
|
60
|
+
ie. $ rake spec:all[Flow]
|
|
61
|
+
"
|
|
62
|
+
task "all", [:module] do |t, args|
|
|
63
|
+
Rake::Task["spec:shoes"].invoke(args[:module])
|
|
64
|
+
Rake::Task["spec:swt"].invoke(args[:module])
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
task :swt, [:module] do |t, args|
|
|
68
|
+
Rake::Task['spec:swt:all'].invoke(args[:module])
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
namespace :swt do
|
|
72
|
+
desc "Run all specs with SWT backend
|
|
73
|
+
Limit the examples to specific :modules : "
|
|
74
|
+
task :all, [:module] do |t, args|
|
|
75
|
+
argh = swt_args(args)
|
|
76
|
+
files = (Dir['spec/swt_shoes/**/*_spec.rb'] + Dir['spec/shoes/**/*_spec.rb']).join ' '
|
|
77
|
+
jruby_rspec(files, argh)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
desc "Run SWT backend specs isolated from DSL"
|
|
81
|
+
task :isolation, [:module] do |t, args|
|
|
82
|
+
argh = swt_args(args)
|
|
83
|
+
files = Dir['spec/swt_shoes/**/*_spec.rb'].join ' '
|
|
84
|
+
jruby_rspec(files, argh)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
desc "Run DSL specs integrated with SWT backend"
|
|
88
|
+
task :integration, [:module] do |t, args|
|
|
89
|
+
argh = swt_args(args)
|
|
90
|
+
files = Dir['spec/shoes/**/*_spec.rb'].join ' '
|
|
91
|
+
jruby_rspec(files, argh)
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
desc "Run specs for Shoes DSL
|
|
96
|
+
Limit the examples to specific :modules : "
|
|
97
|
+
task :dsl, [:module] do |t, args|
|
|
98
|
+
argh = args.to_hash
|
|
99
|
+
files = Dir['spec/shoes/**/*_spec.rb'].join ' '
|
|
100
|
+
jruby_rspec(files, argh)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
task :shoes, [:module] do |t, args|
|
|
104
|
+
Rake::Task['spec:dsl'].invoke(args[:module])
|
|
105
|
+
end
|
|
106
|
+
end
|
data/tasks/sample.rb
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
SAMPLES_DIR = "samples"
|
|
2
|
+
|
|
3
|
+
namespace :samples do
|
|
4
|
+
def samples_from_file(filename)
|
|
5
|
+
samples = File.read("#{SAMPLES_DIR}/#{filename}").lines
|
|
6
|
+
samples.map {|s| s.sub(/#.*$/, '')}.map(&:strip).select {|s| s != ''}.map {|s| "#{SAMPLES_DIR}/#{s}"}
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def working_samples
|
|
10
|
+
samples = samples_from_file "README"
|
|
11
|
+
puts "#{samples.size} samples are known to work"
|
|
12
|
+
samples
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def non_samples
|
|
16
|
+
all_samples = Dir[File.join(SAMPLES_DIR, '*.rb')]
|
|
17
|
+
result = all_samples - working_samples
|
|
18
|
+
puts "#{result.size} samples are not known to work"
|
|
19
|
+
result
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def run_sample(sample_name, index, total)
|
|
23
|
+
puts "Running #{sample_name} (#{index + 1} of #{total})...quit to run next sample"
|
|
24
|
+
system "bin/shoes #{sample_name}"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def run_samples(samples)
|
|
28
|
+
samples.each_with_index do |sample, index|
|
|
29
|
+
run_sample(sample, index, samples.size)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
desc "Run all working samples in random order"
|
|
34
|
+
task :random do |t|
|
|
35
|
+
puts t.comment
|
|
36
|
+
run_samples working_samples.shuffle
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
desc "Run all working samples in alphabetical order"
|
|
40
|
+
task :good do |t|
|
|
41
|
+
puts t.comment
|
|
42
|
+
run_samples working_samples.sort
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
desc "Run all non-working samples in random order"
|
|
46
|
+
task :bad do |t|
|
|
47
|
+
puts t.comment
|
|
48
|
+
run_samples non_samples.shuffle
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
desc "Create list of non-working samples"
|
|
52
|
+
task :bad_list do |t|
|
|
53
|
+
puts t.comment
|
|
54
|
+
non_samples.each{|non_sample| puts non_sample}
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
desc "Run all samples listed in samples/filename"
|
|
58
|
+
task :subset, [:filename] do |t, args|
|
|
59
|
+
puts t.comment
|
|
60
|
+
run_samples samples_from_file(args[:filename])
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
task :samples => ['samples:random']
|
|
65
|
+
task :non_samples => ['samples:bad']
|
|
66
|
+
task :list_non_samples => ['samples:bad_list']
|