shoes 4.0.0.pre2 → 4.0.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +32 -21
- metadata +18 -337
- data/CHANGELOG +0 -84
- data/Gemfile +0 -24
- data/Guardfile +0 -11
- data/Rakefile +0 -14
- data/app.yaml +0 -60
- data/benchmark/app_clear.rb +0 -21
- data/benchmark/clear.rb +0 -69
- data/benchmark/memory/text_dispose.rb +0 -9
- data/benchmark/para_creator.rb +0 -9
- data/benchmark/paras.rb +0 -52
- data/benchmark/urls.rb +0 -40
- data/bin/ruby-shoes +0 -6
- data/bin/shoes-guard +0 -8
- data/bin/shoes-stub +0 -59
- data/ext/install/Rakefile +0 -29
- data/ext/install/shoes.bat +0 -9
- data/lib/shoes.rb +0 -5
- data/lib/shoes/ui/cli.rb +0 -102
- data/lib/shoes/ui/help.rb +0 -535
- data/lib/shoes/ui/manual.rb +0 -6
- data/lib/shoes/version.rb +0 -3
- data/manifests/common.rb +0 -34
- data/manifests/shoes.rb +0 -44
- data/samples/Gemfile +0 -3
- data/samples/Gemfile.lock +0 -35
- data/samples/README +0 -97
- data/samples/boom.rb +0 -239
- data/samples/class-book-adjusted.rb +0 -45
- data/samples/class-book.rb +0 -43
- data/samples/class-book.yaml +0 -387
- data/samples/clicky.rb +0 -24
- data/samples/cy.png +0 -0
- data/samples/expert-definr.rb +0 -23
- data/samples/expert-funnies.rb +0 -60
- data/samples/expert-game-of-life-adjusted.rb +0 -249
- data/samples/expert-game-of-life.rb +0 -243
- data/samples/expert-irb-adjusted.rb +0 -110
- data/samples/expert-irb.rb +0 -112
- data/samples/expert-minesweeper-adjusted.rb +0 -272
- data/samples/expert-minesweeper.rb +0 -267
- data/samples/expert-othello-adjusted.rb +0 -325
- data/samples/expert-othello.rb +0 -318
- data/samples/expert-pong.rb +0 -62
- data/samples/expert-snake.rb +0 -78
- data/samples/expert-tankspank.rb +0 -385
- data/samples/flow.rb +0 -63
- data/samples/good-arc.rb +0 -45
- data/samples/good-clock.rb +0 -51
- data/samples/good-displace.rb +0 -98
- data/samples/good-follow.rb +0 -26
- data/samples/good-potato-chopping.rb +0 -22
- data/samples/good-reminder.rb +0 -174
- data/samples/good-vjot.rb +0 -58
- data/samples/gray.rb +0 -11
- data/samples/loogink.png +0 -0
- data/samples/nks_booklist.rb +0 -24
- data/samples/nks_breadsticks.rb +0 -7
- data/samples/nks_dancing_circle.rb +0 -13
- data/samples/nks_dictionary.rb +0 -23
- data/samples/nks_edit_box.rb +0 -4
- data/samples/nks_edit_line.rb +0 -6
- data/samples/nks_notes.rb +0 -16
- data/samples/nks_poem.rb +0 -22
- data/samples/nks_self.rb +0 -6
- data/samples/nks_text_sizes.rb +0 -10
- data/samples/nks_trurl.rb +0 -5
- data/samples/original-manual-adjusted.rb +0 -475
- data/samples/original-manual.rb +0 -472
- data/samples/packaging/package_me.rb +0 -6
- 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/present.rb +0 -27
- data/samples/progress.rb +0 -10
- data/samples/sample1.rb +0 -30
- data/samples/sample12.rb +0 -21
- data/samples/sample13.rb +0 -13
- data/samples/sample14.rb +0 -64
- data/samples/sample15.rb +0 -18
- data/samples/sample16.rb +0 -10
- data/samples/sample17.rb +0 -10
- data/samples/sample2.rb +0 -14
- data/samples/sample21.rb +0 -5
- data/samples/sample23.rb +0 -8
- data/samples/sample24.rb +0 -21
- data/samples/sample27.rb +0 -18
- data/samples/sample3.rb +0 -14
- data/samples/sample31.rb +0 -22
- data/samples/sample34.rb +0 -27
- data/samples/sample35.rb +0 -32
- data/samples/sample37.rb +0 -8
- data/samples/sample4.rb +0 -7
- data/samples/sample42.rb +0 -14
- data/samples/sample45.rb +0 -11
- data/samples/sample56.rb +0 -10
- data/samples/sample6.rb +0 -9
- data/samples/sample7.rb +0 -3
- data/samples/sample8.rb +0 -7
- data/samples/sample9.rb +0 -10
- data/samples/simple-accordion.rb +0 -75
- data/samples/simple-anim-shapes.rb +0 -17
- data/samples/simple-anim-text.rb +0 -13
- data/samples/simple-animate.rb +0 -12
- data/samples/simple-arc.rb +0 -23
- data/samples/simple-bounce.rb +0 -24
- data/samples/simple-brightness-transitions.rb +0 -8
- data/samples/simple-button-animate.rb +0 -16
- data/samples/simple-calc-2.rb +0 -34
- data/samples/simple-calc.rb +0 -70
- data/samples/simple-color-selector.rb +0 -10
- data/samples/simple-color-transitions.rb +0 -11
- data/samples/simple-control-sizes.rb +0 -24
- data/samples/simple-curve.rb +0 -26
- data/samples/simple-dialogs-outside.rb +0 -12
- data/samples/simple-dialogs.rb +0 -32
- data/samples/simple-displace.rb +0 -15
- data/samples/simple-downloader.rb +0 -27
- data/samples/simple-draw.rb +0 -13
- data/samples/simple-editor.rb +0 -28
- data/samples/simple-face.rb +0 -14
- data/samples/simple-flow-wrap.rb +0 -11
- data/samples/simple-font.rb +0 -17
- data/samples/simple-form.rb +0 -29
- data/samples/simple-form.shy +0 -0
- data/samples/simple-fullscreen.rb +0 -4
- data/samples/simple-guess-game.rb +0 -28
- data/samples/simple-keypress.rb +0 -14
- data/samples/simple-manual.rb +0 -2
- data/samples/simple-mask.rb +0 -21
- data/samples/simple-menu.rb +0 -47
- data/samples/simple-mouse-follow.rb +0 -8
- data/samples/simple-move.rb +0 -13
- data/samples/simple-oval.rb +0 -3
- data/samples/simple-sample-executor.rb +0 -6
- data/samples/simple-shoes-intro.rb +0 -22
- data/samples/simple-slide.rb +0 -56
- data/samples/simple-sound.rb +0 -30
- data/samples/simple-sphere.rb +0 -28
- data/samples/simple-stripes.rb +0 -8
- data/samples/simple-tictactoe.rb +0 -238
- data/samples/simple-timer.rb +0 -15
- data/samples/simple-video.rb +0 -13
- data/samples/simple-visibility.rb +0 -11
- data/samples/simple-widget.rb +0 -9
- 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/samples/swt-raw.rb +0 -20
- data/samples/troll.rb +0 -22
- data/shoes.gemspec +0 -29
- 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/sample56.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/static/PKGBUILD +0 -47
- data/static/Shoes.icns +0 -0
- data/static/avatar.png +0 -0
- data/static/code_highlighter.js +0 -188
- data/static/code_highlighter_ruby.js +0 -26
- data/static/downloading.png +0 -0
- data/static/icon-debug.png +0 -0
- data/static/icon-error.png +0 -0
- data/static/icon-info.png +0 -0
- data/static/icon-warn.png +0 -0
- data/static/listbox_button1.png +0 -0
- data/static/listbox_button2.png +0 -0
- data/static/man-app.png +0 -0
- data/static/man-builds.png +0 -0
- data/static/man-builds1.png +0 -0
- data/static/man-editor-notepad.png +0 -0
- data/static/man-editor-osx.png +0 -0
- data/static/man-ele-background.png +0 -0
- data/static/man-ele-border.png +0 -0
- data/static/man-ele-button.png +0 -0
- data/static/man-ele-check.png +0 -0
- data/static/man-ele-editbox.png +0 -0
- data/static/man-ele-editline.png +0 -0
- data/static/man-ele-image.png +0 -0
- data/static/man-ele-listbox.png +0 -0
- data/static/man-ele-progress.png +0 -0
- data/static/man-ele-radio.png +0 -0
- data/static/man-ele-shape.png +0 -0
- data/static/man-ele-textblock.png +0 -0
- data/static/man-ele-video.png +0 -0
- data/static/man-intro-dmg.png +0 -0
- data/static/man-intro-exe.png +0 -0
- data/static/man-look-tiger.png +0 -0
- data/static/man-look-ubuntu.png +0 -0
- data/static/man-look-vista.png +0 -0
- data/static/man-run-osx.png +0 -0
- data/static/man-run-vista.png +0 -0
- data/static/man-run-xp.png +0 -0
- data/static/man-shot1.png +0 -0
- data/static/manual-en.txt +0 -3531
- data/static/manual-ja.txt +0 -2829
- data/static/manual.css +0 -184
- data/static/menu-corner1.png +0 -0
- data/static/menu-corner2.png +0 -0
- data/static/menu-gray.png +0 -0
- data/static/menu-left.png +0 -0
- data/static/menu-right.png +0 -0
- data/static/menu-top.png +0 -0
- data/static/shoes-dmg.jpg +0 -0
- data/static/shoes-icon-blue.png +0 -0
- data/static/shoes-icon-brown.png +0 -0
- data/static/shoes-icon.png +0 -0
- data/static/shoes-manual-apps.gif +0 -0
- data/static/shoes-manual-apps.png +0 -0
- data/static/shoes_main_window.png +0 -0
- data/static/stripe.png +0 -0
- data/static/tutor-back.png +0 -0
- data/tasks/changelog.rb +0 -92
- data/tasks/gem.rb +0 -38
- data/tasks/rspec.rb +0 -106
- data/tasks/sample.rb +0 -66
- data/tasks/yard.rb +0 -13
data/static/manual.css
DELETED
@@ -1,184 +0,0 @@
|
|
1
|
-
body {
|
2
|
-
font-family: verdana, arial, sans-serif;
|
3
|
-
background: #DDD;
|
4
|
-
margin: 0; padding: 0;
|
5
|
-
}
|
6
|
-
a {
|
7
|
-
color: #378;
|
8
|
-
text-decoration: none;
|
9
|
-
}
|
10
|
-
a.hi {
|
11
|
-
color: #C30;
|
12
|
-
font-weight: bold;
|
13
|
-
}
|
14
|
-
a:hover {
|
15
|
-
text-decoration: underline;
|
16
|
-
}
|
17
|
-
#main {
|
18
|
-
width: 720px;
|
19
|
-
margin: 40px auto;
|
20
|
-
}
|
21
|
-
.sidebar {
|
22
|
-
position: fixed;
|
23
|
-
width: 120px;
|
24
|
-
}
|
25
|
-
#manual {
|
26
|
-
float: right;
|
27
|
-
width: 540px;
|
28
|
-
padding: 20px;
|
29
|
-
border: solid 1px #BBB;
|
30
|
-
background: #eee;
|
31
|
-
margin-bottom: 80px;
|
32
|
-
}
|
33
|
-
#manual2 {
|
34
|
-
float: right;
|
35
|
-
padding: 20px;
|
36
|
-
border: solid 1px #BBB;
|
37
|
-
background: #eee;
|
38
|
-
margin-bottom: 80px;
|
39
|
-
}
|
40
|
-
#manual li {
|
41
|
-
margin-bottom: 8px;
|
42
|
-
}
|
43
|
-
h1 {
|
44
|
-
font-weight: normal;
|
45
|
-
font-size: 42px;
|
46
|
-
margin-top: 0;
|
47
|
-
}
|
48
|
-
h2 {
|
49
|
-
font-weight: normal;
|
50
|
-
font-size: 12px;
|
51
|
-
color: #777;
|
52
|
-
margin: 0;
|
53
|
-
}
|
54
|
-
h4 {
|
55
|
-
font-weight: normal;
|
56
|
-
font-size: 32px;
|
57
|
-
margin-bottom: 0;
|
58
|
-
}
|
59
|
-
#manual img {
|
60
|
-
display: block;
|
61
|
-
margin: 0 auto;
|
62
|
-
padding: 10px;
|
63
|
-
}
|
64
|
-
div.divmethod {
|
65
|
-
background: #333;
|
66
|
-
padding: 4px;
|
67
|
-
color: #CCC;
|
68
|
-
}
|
69
|
-
div.divmethod a {
|
70
|
-
color: white;
|
71
|
-
text-decoration: none;
|
72
|
-
font-weight: bold;
|
73
|
-
}
|
74
|
-
.intro {
|
75
|
-
font-size: 140%;
|
76
|
-
border-bottom: solid 1px #BBB;
|
77
|
-
}
|
78
|
-
.sidebar ul {
|
79
|
-
list-style: none;
|
80
|
-
text-align: center;
|
81
|
-
margin: 0; padding: 10px;
|
82
|
-
font-size: 18px;
|
83
|
-
}
|
84
|
-
.sidebar ul.sub {
|
85
|
-
margin: 6px 0; padding: 0;
|
86
|
-
border-left: solid 1px #CCC;
|
87
|
-
border-right: solid 1px #CCC;
|
88
|
-
}
|
89
|
-
.sidebar ul.sub li {
|
90
|
-
margin: 0; padding: 0;
|
91
|
-
font-size: 14px;
|
92
|
-
}
|
93
|
-
.sidebar ul.sub a {
|
94
|
-
font-weight: normal;
|
95
|
-
}
|
96
|
-
.sidebar a {
|
97
|
-
color: #666;
|
98
|
-
font-weight: bold;
|
99
|
-
text-decoration: none;
|
100
|
-
}
|
101
|
-
.sidebar .prime {
|
102
|
-
display: block;
|
103
|
-
color: #BBB;
|
104
|
-
font-size: 38px;
|
105
|
-
margin-bottom: 20px;
|
106
|
-
}
|
107
|
-
.sidebar a:hover {
|
108
|
-
color: black;
|
109
|
-
}
|
110
|
-
div.color {
|
111
|
-
width: 31%;
|
112
|
-
float: left;
|
113
|
-
text-align: center;
|
114
|
-
padding: 6px;
|
115
|
-
font-size: 80%;
|
116
|
-
}
|
117
|
-
div.color h3, div.color p {
|
118
|
-
margin: 4px;
|
119
|
-
}
|
120
|
-
div.sample {
|
121
|
-
width: 13%;
|
122
|
-
float: left;
|
123
|
-
text-align: center;
|
124
|
-
padding: 6px;
|
125
|
-
font-size: 50%;
|
126
|
-
}
|
127
|
-
div.sample h3, div.sample p {
|
128
|
-
margin: 0px;
|
129
|
-
}
|
130
|
-
p.next {
|
131
|
-
clear: both;
|
132
|
-
border-top: solid 1px #BBB;
|
133
|
-
text-align: right;
|
134
|
-
font-size: 120%;
|
135
|
-
padding: 8px;
|
136
|
-
}
|
137
|
-
|
138
|
-
/* code highlighting */
|
139
|
-
pre {
|
140
|
-
background: white;
|
141
|
-
padding: 8px 0;
|
142
|
-
border: solid 1px #ddd;
|
143
|
-
}
|
144
|
-
pre .comment, .ruby .comment {
|
145
|
-
color: #696;
|
146
|
-
} pre .string, .ruby .string {
|
147
|
-
color: teal;
|
148
|
-
}
|
149
|
-
pre .constant, .ruby .constant {
|
150
|
-
font-weight: bold;
|
151
|
-
}
|
152
|
-
pre .symbol, .ruby .symbol {
|
153
|
-
color: green;
|
154
|
-
}
|
155
|
-
pre .keywords, .ruby .keywords {
|
156
|
-
color: #662;
|
157
|
-
}
|
158
|
-
pre .global, pre .ivar, .ruby .ivar {
|
159
|
-
color: #F60;
|
160
|
-
}
|
161
|
-
pre .brackets, .ruby .brackets {
|
162
|
-
color: #993;
|
163
|
-
}
|
164
|
-
|
165
|
-
/* index pages */
|
166
|
-
#index .hibox {
|
167
|
-
background: white;
|
168
|
-
border: solid 1px #ddd;
|
169
|
-
}
|
170
|
-
#index .hibox p {
|
171
|
-
font-size: 14px;
|
172
|
-
margin: 8px;
|
173
|
-
}
|
174
|
-
#index h1 {
|
175
|
-
margin: 0;
|
176
|
-
}
|
177
|
-
#index ul {
|
178
|
-
list-style: none;
|
179
|
-
font-size: 13px;
|
180
|
-
}
|
181
|
-
#index ul a.hi,
|
182
|
-
#index ul a.lo {
|
183
|
-
font-size: 18px;
|
184
|
-
}
|
data/static/menu-corner1.png
DELETED
Binary file
|
data/static/menu-corner2.png
DELETED
Binary file
|
data/static/menu-gray.png
DELETED
Binary file
|
data/static/menu-left.png
DELETED
Binary file
|
data/static/menu-right.png
DELETED
Binary file
|
data/static/menu-top.png
DELETED
Binary file
|
data/static/shoes-dmg.jpg
DELETED
Binary file
|
data/static/shoes-icon-blue.png
DELETED
Binary file
|
data/static/shoes-icon-brown.png
DELETED
Binary file
|
data/static/shoes-icon.png
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/static/stripe.png
DELETED
Binary file
|
data/static/tutor-back.png
DELETED
Binary file
|
data/tasks/changelog.rb
DELETED
@@ -1,92 +0,0 @@
|
|
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
DELETED
@@ -1,38 +0,0 @@
|
|
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
DELETED
@@ -1,106 +0,0 @@
|
|
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
|