test-unit 2.3.0 → 2.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/COPYING +9 -1
  2. data/{README.txt → README.textile} +24 -17
  3. data/Rakefile +301 -27
  4. data/lib/test/unit/assertions.rb +49 -23
  5. data/lib/test/unit/attribute.rb +1 -1
  6. data/lib/test/unit/collector/load.rb +3 -3
  7. data/lib/test/unit/runner/console.rb +11 -4
  8. data/lib/test/unit/testcase.rb +1 -1
  9. data/lib/test/unit/ui/console/outputlevel.rb +3 -2
  10. data/lib/test/unit/ui/console/testrunner.rb +101 -22
  11. data/lib/test/unit/version.rb +1 -1
  12. data/test/test-assertions.rb +20 -0
  13. data/test/test-data.rb +1 -1
  14. data/test/test-priority.rb +17 -2
  15. data/test/test-testcase.rb +3 -3
  16. metadata +62 -111
  17. data/History.txt +0 -302
  18. data/Manifest.txt +0 -118
  19. data/html/bar.png +0 -0
  20. data/html/bar.svg +0 -153
  21. data/html/developer.png +0 -0
  22. data/html/developer.svg +0 -469
  23. data/html/famfamfam-logo.png +0 -0
  24. data/html/favicon.ico +0 -0
  25. data/html/favicon.png +0 -0
  26. data/html/favicon.svg +0 -82
  27. data/html/github-logo.png +0 -0
  28. data/html/heading-mark.png +0 -0
  29. data/html/heading-mark.svg +0 -393
  30. data/html/index.html +0 -291
  31. data/html/index.html.ja +0 -306
  32. data/html/install.png +0 -0
  33. data/html/install.svg +0 -636
  34. data/html/jp.png +0 -0
  35. data/html/kinotan-failure.png +0 -0
  36. data/html/kinotan-pass.png +0 -0
  37. data/html/logo.png +0 -0
  38. data/html/logo.svg +0 -483
  39. data/html/reference.png +0 -0
  40. data/html/rubyforge.png +0 -0
  41. data/html/tango-logo.png +0 -0
  42. data/html/test-unit.css +0 -346
  43. data/html/tutorial.png +0 -0
  44. data/html/tutorial.svg +0 -559
  45. data/html/us.png +0 -0
  46. data/images/color-diff.png +0 -0
  47. data/test/fixtures/plus.csv +0 -3
@@ -356,6 +356,26 @@ EOM
356
356
  end
357
357
  end
358
358
 
359
+ def test_assert_equal_with_recursive_hash
360
+ alice = {"name" => "Alice"}
361
+ bob = {"name" => "Bob"}
362
+ alice["followers"] = [bob]
363
+ bob["followers"] = [alice]
364
+ message = <<-EOM.chomp
365
+ <{"followers"=>[{"followers"=>[{...}], "name"=>"Bob"}], "name"=>"Alice"}> expected but was
366
+ <{"followers"=>[{"followers"=>[{...}], "name"=>"Alice"}], "name"=>"Bob"}>.
367
+
368
+ diff:
369
+ - {"followers"=>[{"followers"=>[{...}], "name"=>"Bob"}], "name"=>"Alice"}
370
+ ? -----------------
371
+ + {"followers"=>[{"followers"=>[{...}], "name"=>"Alice"}], "name"=>"Bob"}
372
+ ? +++++++++++++++++
373
+ EOM
374
+ check_fails(message) do
375
+ assert_equal(alice, bob)
376
+ end
377
+ end
378
+
359
379
  def test_assert_raise_success
360
380
  return_value = nil
361
381
  check_nothing_fails(true) do
data/test/test-data.rb CHANGED
@@ -122,7 +122,7 @@ class TestData < Test::Unit::TestCase
122
122
  :test_case => TestCalc::TestDynamicDataSet,
123
123
  :data_set => [TestCalc::TestDynamicDataSet::DATA_PROC],
124
124
  })
125
- data("load-data-set",
125
+ data("load-data-set",
126
126
  {
127
127
  :test_case => TestCalc::TestLoadDataSet,
128
128
  :data_set => [{
@@ -63,12 +63,27 @@ class TestUnitPriority < Test::Unit::TestCase
63
63
  end
64
64
  end
65
65
 
66
- def test_priority
66
+ def test_priority_must
67
67
  assert_priority("must", 1.0, 0.0001)
68
+ end
69
+
70
+ def test_priority_important
68
71
  assert_priority("important", 0.9, 0.09)
72
+ end
73
+
74
+ def test_priority_high
69
75
  assert_priority("high", 0.70, 0.1)
76
+ end
77
+
78
+ def test_priority_normal
70
79
  assert_priority("normal", 0.5, 0.1)
80
+ end
81
+
82
+ def test_priority_low
71
83
  assert_priority("low", 0.25, 0.1)
84
+ end
85
+
86
+ def test_priority_never
72
87
  assert_priority("never", 0.0, 0.0001)
73
88
  end
74
89
 
@@ -82,7 +97,7 @@ class TestUnitPriority < Test::Unit::TestCase
82
97
  n = 1000
83
98
  n_need_to_run = 0
84
99
  n.times do |i|
85
- n_need_to_run +=1 if Test::Unit::Priority::Checker.need_to_run?(test)
100
+ n_need_to_run += 1 if Test::Unit::Priority::Checker.need_to_run?(test)
86
101
  end
87
102
  assert_in_delta(expected, n_need_to_run.to_f / n, delta)
88
103
  end
@@ -506,9 +506,9 @@ module Test
506
506
 
507
507
  test_case.test_order = :defined
508
508
 
509
- assert_equal(["declarative style test definition",
510
- "include parenthesis",
511
- "1 + 2 = 3"],
509
+ assert_equal(["test: declarative style test definition",
510
+ "test: include parenthesis",
511
+ "test: 1 + 2 = 3"],
512
512
  test_case.suite.tests.collect {|test| test.method_name})
513
513
 
514
514
  assert_equal(["declarative style test definition",
metadata CHANGED
@@ -1,112 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-unit
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 3
9
- - 0
10
- version: 2.3.0
9
+ - 1
10
+ version: 2.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kouhei Sutou
14
- - Ryan Davis
14
+ - Haruka Yoshihara
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-04-18 00:00:00 +09:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- name: rubyforge
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 7
31
- segments:
32
- - 2
33
- - 0
34
- - 4
35
- version: 2.0.4
36
- type: :development
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: hoe
40
- prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- hash: 21
47
- segments:
48
- - 2
49
- - 6
50
- - 1
51
- version: 2.6.1
52
- type: :development
53
- version_requirements: *id002
54
- description: |-
55
- Test::Unit 2.x - Improved version of Test::Unit bundled in
56
- Ruby 1.8.x.
57
-
19
+ date: 2011-08-06 00:00:00 Z
20
+ dependencies: []
21
+
22
+ description: |
58
23
  Ruby 1.9.x bundles minitest not Test::Unit. Test::Unit
59
24
  bundled in Ruby 1.8.x had not been improved but unbundled
60
- Test::Unit (Test::Unit 2.x) will be improved actively.
25
+ Test::Unit (test-unit 2) will be improved actively.
26
+
61
27
  email:
62
28
  - kou@cozmixng.org
63
- - ryand-ruby@zenspider.com
29
+ - yoshihara@clear-code.com
64
30
  executables:
65
31
  - testrb
66
32
  extensions: []
67
33
 
68
34
  extra_rdoc_files:
69
- - History.txt
70
- - Manifest.txt
71
- - README.txt
35
+ - README.textile
36
+ - TODO
72
37
  files:
73
38
  - COPYING
74
39
  - GPL
75
- - History.txt
76
- - Manifest.txt
77
40
  - PSFL
78
- - README.txt
41
+ - README.textile
79
42
  - Rakefile
80
43
  - TODO
81
44
  - bin/testrb
82
- - html/bar.png
83
- - html/bar.svg
84
- - html/developer.png
85
- - html/developer.svg
86
- - html/famfamfam-logo.png
87
- - html/favicon.ico
88
- - html/favicon.png
89
- - html/favicon.svg
90
- - html/github-logo.png
91
- - html/heading-mark.png
92
- - html/heading-mark.svg
93
- - html/index.html
94
- - html/index.html.ja
95
- - html/install.png
96
- - html/install.svg
97
- - html/jp.png
98
- - html/kinotan-failure.png
99
- - html/kinotan-pass.png
100
- - html/logo.png
101
- - html/logo.svg
102
- - html/reference.png
103
- - html/rubyforge.png
104
- - html/tango-logo.png
105
- - html/test-unit.css
106
- - html/tutorial.png
107
- - html/tutorial.svg
108
- - html/us.png
109
- - images/color-diff.png
110
45
  - lib/test/unit.rb
111
46
  - lib/test/unit/assertionfailederror.rb
112
47
  - lib/test/unit/assertions.rb
@@ -157,45 +92,42 @@ files:
157
92
  - sample/test_adder.rb
158
93
  - sample/test_subtracter.rb
159
94
  - sample/test_user.rb
95
+ - test/testunit-test-util.rb
96
+ - test/test-testcase.rb
97
+ - test/ui/test_testrunmediator.rb
98
+ - test/ui/test_tap.rb
99
+ - test/test_testresult.rb
100
+ - test/test-pending.rb
101
+ - test/test-emacs-runner.rb
102
+ - test/test-fixture.rb
103
+ - test/test-attribute.rb
104
+ - test/test_failure.rb
105
+ - test/test-data.rb
106
+ - test/test_testsuite.rb
107
+ - test/collector/test_objectspace.rb
160
108
  - test/collector/test-descendant.rb
161
- - test/collector/test-load.rb
162
109
  - test/collector/test_dir.rb
163
- - test/collector/test_objectspace.rb
164
- - test/fixtures/plus.csv
110
+ - test/collector/test-load.rb
165
111
  - test/run-test.rb
166
112
  - test/test-assertions.rb
167
- - test/test-attribute.rb
168
- - test/test-color-scheme.rb
169
- - test/test-color.rb
170
- - test/test-data.rb
171
- - test/test-diff.rb
172
- - test/test-emacs-runner.rb
173
- - test/test-fixture.rb
174
- - test/test-notification.rb
175
- - test/test-omission.rb
176
- - test/test-pending.rb
177
113
  - test/test-priority.rb
178
- - test/test-testcase.rb
179
- - test/test_error.rb
180
- - test/test_failure.rb
181
- - test/test_testresult.rb
182
- - test/test_testsuite.rb
183
- - test/testunit-test-util.rb
184
- - test/ui/test_tap.rb
185
- - test/ui/test_testrunmediator.rb
186
- - test/util/test-method-owner-finder.rb
187
- - test/util/test-output.rb
188
114
  - test/util/test_backtracefilter.rb
189
115
  - test/util/test_observable.rb
190
116
  - test/util/test_procwrapper.rb
191
- has_rdoc: true
192
- homepage: http://rubyforge.org/projects/test-unit/
193
- licenses: []
194
-
117
+ - test/util/test-method-owner-finder.rb
118
+ - test/util/test-output.rb
119
+ - test/test_error.rb
120
+ - test/test-diff.rb
121
+ - test/test-notification.rb
122
+ - test/test-color-scheme.rb
123
+ - test/test-omission.rb
124
+ - test/test-color.rb
125
+ homepage: http://test-unit.rubyforge.org/
126
+ licenses:
127
+ - Ruby's and PSFL (lib/test/unit/diff.rb)
195
128
  post_install_message:
196
- rdoc_options:
197
- - --main
198
- - README.txt
129
+ rdoc_options: []
130
+
199
131
  require_paths:
200
132
  - lib
201
133
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -219,19 +151,38 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
151
  requirements: []
220
152
 
221
153
  rubyforge_project: test-unit
222
- rubygems_version: 1.6.2
154
+ rubygems_version: 1.7.2
223
155
  signing_key:
224
156
  specification_version: 3
225
- summary: Test::Unit 2.x - Improved version of Test::Unit bundled in Ruby 1.8.x
157
+ summary: test-unit 2 - Improved version of Test::Unit bundled in Ruby 1.8.x.
226
158
  test_files:
159
+ - test/testunit-test-util.rb
160
+ - test/test-testcase.rb
227
161
  - test/ui/test_testrunmediator.rb
228
162
  - test/ui/test_tap.rb
229
163
  - test/test_testresult.rb
164
+ - test/test-pending.rb
165
+ - test/test-emacs-runner.rb
166
+ - test/test-fixture.rb
167
+ - test/test-attribute.rb
230
168
  - test/test_failure.rb
169
+ - test/test-data.rb
231
170
  - test/test_testsuite.rb
232
171
  - test/collector/test_objectspace.rb
172
+ - test/collector/test-descendant.rb
233
173
  - test/collector/test_dir.rb
174
+ - test/collector/test-load.rb
175
+ - test/run-test.rb
176
+ - test/test-assertions.rb
177
+ - test/test-priority.rb
234
178
  - test/util/test_backtracefilter.rb
235
179
  - test/util/test_observable.rb
236
180
  - test/util/test_procwrapper.rb
181
+ - test/util/test-method-owner-finder.rb
182
+ - test/util/test-output.rb
237
183
  - test/test_error.rb
184
+ - test/test-diff.rb
185
+ - test/test-notification.rb
186
+ - test/test-color-scheme.rb
187
+ - test/test-omission.rb
188
+ - test/test-color.rb
data/History.txt DELETED
@@ -1,302 +0,0 @@
1
- === 2.3.0 / 2011-04-17
2
-
3
- * 13 enhancements
4
- * improve Hash key sorting for diff.
5
- * [#28928] support any characters in declarative style description.
6
- [Daniel Berger]
7
- * add Error#location and make #backtrace deprecated.
8
- * make TestCase#passed? public.
9
- * add result finished and pass assertion notifications.
10
- * add TestSuite#passed? public.
11
- * add XML test runner.
12
- * add --output-file-descriptor option.
13
- * measure elapsed time for each test.
14
- * add --collector option.
15
- * support test driven test.
16
- [Haruka Yoshihara]
17
- * add cleanup hook it runs between after test and before teardown.
18
- * support recursive collection sort for diff.
19
-
20
- * Thanks
21
- * Daniel Berger
22
- * Haruka Yoshihara
23
-
24
- === 2.2.0 / 2011-02-14
25
-
26
- * 22 enhancements
27
- * [#28808] accept String as delta for assert_in_delta.
28
- [Daniel Berger]
29
- * [test-unit-users-en:00035] make GC-able finished tests.
30
- [Daniel Berger]
31
- * use also COLUMNS environment variable to guess terminal width.
32
- * make delta for assert_in_delta optional.
33
- [Nobuyoshi Nakada]
34
- * add assert_not_respond_to.
35
- [Nobuyoshi Nakada]
36
- * add assert_not_match. assert_no_match is deprecated.
37
- [Nobuyoshi Nakada]
38
- * add assert_not_in_delta.
39
- [Nobuyoshi Nakada]
40
- * add assert_in_epsilon.
41
- [Nobuyoshi Nakada]
42
- * add assert_not_in_epsilon.
43
- [Nobuyoshi Nakada]
44
- * add assert_include.
45
- [Nobuyoshi Nakada]
46
- * add assert_not_include.
47
- [Nobuyoshi Nakada]
48
- * add assert_empty.
49
- [Nobuyoshi Nakada]
50
- * add assert_not_empty.
51
- [Nobuyoshi Nakada]
52
- * notify require failed paths.
53
- * validate message value for assert.
54
- * show throughputs at the last.
55
- * support not ASCII compatible string diff.
56
- * support colorized diff on encoding different string.
57
- * normalize entry order of Hash for readable diff.
58
- * add --ignore-name option.
59
- * add --ignore-testcase option.
60
- * add assert_not_send.
61
-
62
- * Thanks
63
- * Daniel Berger
64
- * Nobuyoshi Nakada
65
-
66
- === 2.1.2 / 2010-11-25
67
-
68
- * 1 enhancement
69
- * support auto runner prepare hook.
70
-
71
- === 2.1.1 / 2010-07-29
72
-
73
- * 1 bug fix
74
- * [test-unit-users-en:00026] re-work tap runner.
75
- [Daniel Berger]
76
-
77
- * Thanks
78
- * Daniel Berger
79
-
80
- === 2.1.0 / 2010-07-17
81
-
82
- * 1 bug fix
83
- * [#28267] global config file ignored
84
- [Daniel Berger]
85
-
86
- * Thanks
87
- * Daniel Berger
88
-
89
- === 2.0.8 / 2010-06-02
90
-
91
- * 5 major enchancements
92
- * collect *_test.rb and *-test.rb files as test files.
93
- * [#28181] improve assert_in_delta message.
94
- [Suggested by David MARCHALAND]
95
- * show string encoding in assert_equal failure message if
96
- they are different.
97
- * change default color scheme:
98
- * success: green back + white
99
- * failure: red back + white
100
- * add capture_output.
101
-
102
- * 2 bug fixes
103
- * fix a bug that console runner on verbose mode causes an
104
- error for long test name (>= 61).
105
- * [#28093] Autorunner ignores all files in a directory named test by default
106
- [Reported by Florian Frank]
107
-
108
- * Thanks
109
- * Florian Frank
110
- * David MARCHALAND
111
-
112
- === 2.0.7 / 2010-03-09
113
-
114
- * 4 major enhancements
115
- * detect redefined test methods.
116
- * [INTERFACE IMCOMPATIBLE] multiple --name and --testcase
117
- options narrow down targets instead of adding targets.
118
- * [#27764] accept custom test_order for each test case.
119
- [Suggested by David MARCHALAND]
120
- * [#27790] ignore omitted tests from 'n% passed' report.
121
- [Suggested by Daniel Berger]
122
-
123
- * 2 minor enchancements
124
- * [#27832] ignore .git directory. [Suggested by Daniel Berger]
125
- * [#27792] require 'fileutils' and 'tmpdir' lazily for non-priority
126
- mode users. [Suggested by David MARCHALAND]
127
-
128
- * 2 bug fixes
129
- * [#27892] modify processed arguments array destructively.
130
- [Reported by Bob Saveland]
131
- * work without HOME environment variable.
132
- [Reported by Champak Ch]
133
-
134
- * Thanks
135
- * David MARCHALAND
136
- * Daniel Berger
137
- * Bob Saveland
138
- * Champak Ch
139
-
140
- === 2.0.6 / 2010-01-09
141
-
142
- * 3 major enhancements
143
- * [#27380] Declarative syntax? [Daniel Berger]
144
- support declarative syntax:
145
-
146
- test "test description in natural language" do
147
- ...
148
- end
149
- * support test description:
150
- description "test description in natural language"
151
- def test_my_test
152
- ...
153
- end
154
- * make max diff target string size customizable by
155
- TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE environment variable.
156
-
157
- * 2 bug fixes
158
- * [#27374] omit_if unexpected behavior [David MARCHALAND]
159
- * fix a bug that tests in sub directories aren't load with --basedir.
160
- [Daniel Berger]
161
-
162
- * Thanks
163
- * David MARCHALAND
164
- * Daniel Berger
165
-
166
- === 2.0.5 / 2009-10-18
167
-
168
- * 1 bug fixes
169
- * [#27314] fix diff may raise an exception. [Erik Hollensbe]
170
-
171
- * Thanks
172
- * Erik Hollensbe
173
-
174
- === 2.0.4 / 2009-10-17
175
-
176
- * 4 major enhancements
177
- * use ~/.test-unit.yml as global configuration file.
178
- * add TAP runner. (--runner tap)
179
- * support colorized diff:
180
- http://test-unit.rubyforge.org/svn/trunk/images/color-diff.png
181
- * add Test::Unit::AutoRunner.default_runner= to specify default test runner.
182
-
183
- * 4 minor enhancements
184
- * improve verbose mode output format. (use indent)
185
- * support NOT_PASS_THROUGH_EXCEPTIONS.
186
- * support arguments option in #{runner}_options.
187
- * TC_ -> Test in sample test case name.
188
-
189
- * 1 bug fixes
190
- * [#27195] test-unit-2.0.3 + ruby-1.9.1 cannot properly test
191
- DelegateClass subclasses [Mike Pomraning]
192
-
193
- * Thanks
194
- * Mike Pomraning
195
-
196
- === 2.0.3 / 2009-07-19
197
-
198
- * 6 major enhancements
199
- * add assert_predicate.
200
- * add assert_not_predicate.
201
- * [#24210] assert_kind_of supports an array of classes or modules.
202
- [Daniel Berger]
203
- * assert_instance_of supports an array of classes or modules.
204
- * add --default-priority option.
205
- * [#26627] add --order option. [Daniel Berger]
206
-
207
- * 4 minor enhancements
208
- * use yellow foreground + black background for error.
209
- * don't show diff for long string.
210
- * accept "*term-color" TERM environment as colorizable terminal.
211
- (e.g. Apple's Terminal)
212
- * [#26268] add a workaround for test-spec's after_all. [Angelo Lakra]
213
-
214
- * 1 bug fix
215
- * [#23586] re-support ruby 1.9.1. [Diego Pettenò]
216
-
217
- * Thanks
218
- * Diego Pettenò
219
- * Daniel Berger
220
- * Angelo Lakra
221
-
222
- === 2.0.2 / 2008-12-21
223
-
224
- * 2 major enhancements
225
-
226
- * re-support ruby 1.8.5.
227
- * improve exception object comparison.
228
-
229
- * 3 bug fixes
230
-
231
- * [#22723]: collector fails on anonymous classes
232
- * [#22986]: Test names with '?' blow up on Windows
233
- * [#22988]: don't create .test-result on non-priority mode.
234
-
235
- * Thanks
236
-
237
- * Erik Hollensbe
238
- * Daniel Berger
239
- * Bill Lear
240
-
241
- === 2.0.1 / 2008-11-09
242
-
243
- * 19 major enhancements
244
-
245
- * support ruby 1.9.1.
246
- * add run_test method to be extensible.
247
- * improve priority-mode auto off.
248
- * improve startup/shutdown RDoc. [Daniel Berger]
249
- * add assert_compare. [#20851] [Designing Patterns]
250
- * add assert_fail_assertion. [#20851] [Designing Patterns]
251
- * add assert_raise_message. [#20851] [Designing Patterns]
252
- * support folded diff.
253
- * add assert_raise_kind_of. [Daniel Berger]
254
- * ingore inherited test for nested test case.
255
- * add assert_const_defined.
256
- * add assert_not_const_defined.
257
- * support assert_raise with an exception object.
258
- * support assert_raise with no arguments that asserts any
259
- exception is raised. [#22602] [Daniel Berger]
260
- * support folded dot progress.
261
- * add --progress-row-max option.
262
- * support color scheme customize.
263
- * support configuration file. (YAML)
264
- * recognize test-XXX.rb files as test files not only test_XXX.rb
265
-
266
- * Thanks
267
-
268
- * Daniel Berger
269
- * Designing Patterns
270
-
271
- === 2.0.0 / 2008-06-18
272
-
273
- * 15 major enhancements
274
-
275
- * support startup/shutdown. (test case level setup/teardown)
276
- * support multiple setup/teardown.
277
- * support pending.
278
- * support omission.
279
- * support notification.
280
- * support colorize.
281
- * support diff.
282
- * support test attribute.
283
- * add assert_boolean.
284
- * add assert_true.
285
- * add assert_false.
286
- * add --priority-mode option.
287
- * don't use ObjectSpace to collect test cases.
288
- * make more customizable. (additional options, exception handling and so on)
289
- * improve Emacs integration.
290
-
291
- * 4 major changes
292
-
293
- * remove GTK+1 support.
294
- * split GTK+ runner as another gem.
295
- * split FOX runner as another gem.
296
- * split Tk runner as another gem.
297
-
298
- === 1.2.3 / 2008-02-25
299
-
300
- * 1 major enhancement
301
-
302
- * Birthday (as a gem)!