ZenTest 3.9.3 → 3.10.0

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.
data/History.txt CHANGED
@@ -1,3 +1,20 @@
1
+ === 3.10.0 / 2008-06-17
2
+
3
+ * 1 major enhancement:
4
+
5
+ * Added multiruby_setup to help manage multiruby installed versions.
6
+
7
+ * 3 minor enhancements:
8
+
9
+ * Added autotest/once plugin to help plugin developers.
10
+ * Heavily refactored multiruby.
11
+ * Switched rubinius from shotgun/rubinius to bin/rbx, finally.
12
+
13
+ * 2 bug fixes:
14
+
15
+ * Refactored zentest_mapping test to avoid zentest altogether.
16
+ * zentest tests bail gracefully for rubinius.
17
+
1
18
  === 3.9.3 / 2008-06-09
2
19
 
3
20
  * 12 minor enhancements:
data/Manifest.txt CHANGED
@@ -7,6 +7,7 @@ articles/getting_started_with_autotest.html
7
7
  articles/how_to_use_zentest.txt
8
8
  bin/autotest
9
9
  bin/multiruby
10
+ bin/multiruby_setup
10
11
  bin/rails_test_audit
11
12
  bin/unit_diff
12
13
  bin/zentest
@@ -30,6 +31,7 @@ lib/autotest/kdenotify.rb
30
31
  lib/autotest/menu.rb
31
32
  lib/autotest/migrate.rb
32
33
  lib/autotest/notify.rb
34
+ lib/autotest/once.rb
33
35
  lib/autotest/pretty.rb
34
36
  lib/autotest/rails.rb
35
37
  lib/autotest/rcov.rb
@@ -39,6 +41,7 @@ lib/autotest/shame.rb
39
41
  lib/autotest/snarl.rb
40
42
  lib/autotest/timestamp.rb
41
43
  lib/functional_test_matrix.rb
44
+ lib/multiruby.rb
42
45
  lib/test/rails.rb
43
46
  lib/test/rails/controller_test_case.rb
44
47
  lib/test/rails/functional_test_case.rb
data/README.txt CHANGED
@@ -21,7 +21,8 @@ development. As soon as you save a file, autotest will run the
21
21
  corresponding dependent tests.
22
22
 
23
23
  multiruby runs anything you want on multiple versions of ruby. Great
24
- for compatibility checking!
24
+ for compatibility checking! Use multiruby_setup to manage your
25
+ installed versions.
25
26
 
26
27
  Test::Rails helps you build industrial-strength Rails code.
27
28
 
@@ -58,6 +59,7 @@ implementation.
58
59
 
59
60
  autotest
60
61
 
62
+ multiruby_setup mri:svn:current
61
63
  multiruby ./TestMyProject.rb
62
64
 
63
65
  (and other stuff for Test::Rails)
data/bin/multiruby CHANGED
@@ -1,104 +1,9 @@
1
1
  #!/usr/bin/env ruby -w
2
2
 
3
- require 'fileutils'
4
-
5
- def run(cmd)
6
- puts "Running command: #{cmd}"
7
- raise "ERROR: Command failed with exit code #{$?}" unless system cmd
8
- end
9
-
10
- def extract_latest_version url
11
- file = URI.parse(url).read
12
- versions = file.scan(/href="(ruby.*tar.gz)"/).flatten.reject { |s|
13
- s =~ /preview/
14
- }.sort_by { |s|
15
- s.split(/\D+/).map { |i| i.to_i }
16
- }.flatten.last
17
- end
18
-
19
- root_dir = File.expand_path(ENV['MULTIRUBY'] ||
20
- File.join(ENV['HOME'], ".multiruby"))
21
-
22
- unless test ?d, root_dir then
23
- puts "creating #{root_dir}"
24
- Dir.mkdir root_dir, 0700
25
- end
26
-
27
- versions = []
28
- Dir.chdir root_dir do
29
- %w(build install versions).each do |dir|
30
- unless test ?d, dir then
31
- puts "creating #{dir}"
32
- Dir.mkdir dir
33
- if dir == "versions" then
34
- warn " Downloading initial ruby tarballs to ~/.multiruby/versions:"
35
- Dir.chdir dir do
36
- require 'open-uri'
37
- base_url = "http://ftp.ruby-lang.org/pub/ruby"
38
-
39
- %w(1.8 1.9).each do |v|
40
- warn " Determining latest version for #{v}"
41
- base = extract_latest_version("#{base_url}/#{v}/")
42
- url = File.join base_url, v, base
43
- warn " Fetching #{base} via HTTP... this might take a while."
44
- open(url) do |f|
45
- File.open base, 'w' do |out|
46
- out.write f.read
47
- end
48
- end
49
- end
50
- end
51
- warn " ...done"
52
- warn " Put other ruby tarballs in ~/.multiruby/versions to use them."
53
- end
54
- end
55
- end
56
-
57
- tarballs = Dir["versions/rubygems*.tgz"]
58
- raise "You should delete all but one rubygem tarball" if tarballs.size > 1
59
- rubygem_tarball = File.expand_path tarballs.last rescue nil
60
-
61
- Dir.chdir "build" do
62
- Dir["../versions/ruby*.tar.gz"].each do |tarball|
63
- next if tarball =~ /rubygems/
64
- build_dir = File.basename tarball, ".tar.gz"
65
- version = build_dir.sub(/^ruby-?/, '')
66
- versions << version
67
- inst_dir = "#{root_dir}/install/#{version}"
68
- unless test ?d, inst_dir then
69
- unless test ?d, build_dir then
70
- puts "creating #{inst_dir}"
71
- Dir.mkdir inst_dir
72
- run "tar zxf #{tarball}"
73
- end
74
- Dir.chdir build_dir do
75
- puts "building and installing #{version}"
76
- run "autoconf" unless test ?f, "configure"
77
- FileUtils.rm_r "ext/readline" if test ?d, "ext/readline"
78
- run "./configure --prefix #{inst_dir} &> log.configure" unless test ?f, "Makefile"
79
- run "nice make -j4 &> log.build"
80
- run "make install &> log.install"
81
- build_dir = Dir.pwd
82
-
83
- if rubygem_tarball and version !~ /1[._-]9/ then
84
- rubygems = File.basename rubygem_tarball, ".tgz"
85
- run "tar zxf #{rubygem_tarball}" unless test ?d, rubygems
86
-
87
- Dir.chdir rubygems do
88
- run "../ruby ./setup.rb &> ../log.rubygems"
89
- end
90
- end
91
- end
92
- end
93
- end
94
- end
95
-
96
- # pick up rubinius - allows for simple symlinks to your build dir
97
- Dir.chdir('install') do
98
- versions.push(*Dir["rubinius*"])
99
- end
100
- end
3
+ require 'multiruby'
101
4
 
5
+ root_dir = Multiruby.root_dir
6
+ versions = Multiruby.build_and_install
102
7
  versions = ENV['VERSIONS'].split(/:/) if ENV.has_key? 'VERSIONS'
103
8
 
104
9
  if ENV.has_key? 'EXCLUDED_VERSIONS' then
@@ -109,7 +14,8 @@ end
109
14
  results = {}
110
15
  versions.each do |version|
111
16
  ruby = "#{root_dir}/install/#{version}/bin/ruby"
112
- ruby.sub!(/bin.ruby/, 'shotgun/rubinius') if version =~ /rubinius/
17
+
18
+ ruby.sub!(/bin.ruby/, 'bin/rbx') if version =~ /rubinius/
113
19
 
114
20
  puts
115
21
  puts "VERSION = #{version}"
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env ruby -w
2
+
3
+ require 'multiruby'
4
+
5
+ ARGV << "help" if ARGV.empty?
6
+
7
+ ARGV.each do |spec|
8
+ case spec
9
+ when "-h", "help" then
10
+ Multiruby.help
11
+ when "list" then
12
+ Multiruby.list
13
+ when /rm:(.*)/ then
14
+ Multiruby.rm $1
15
+ when "clean" then
16
+ Multiruby.clean
17
+ when "update" then
18
+ Multiruby.update
19
+ when "update:rubygems" then
20
+ Multiruby.update_rubygems
21
+ when "mri:svn:current" then
22
+ ARGV << "mri:svn:releases" << "mri:svn:branches"
23
+ when "mri:svn:releases" then
24
+ Multiruby::TAGS.each do |v|
25
+ ARGV << "mri:svn:#{v}"
26
+ end
27
+ when "mri:svn:branches" then
28
+ Multiruby::BRANCHES.each do |v|
29
+ ARGV << "mri:svn:#{v}"
30
+ end
31
+ when /mri:svn:branch:(.*)/ then
32
+ ver = $1
33
+ ver = "branches/ruby_#{ver}" unless ver == "trunk"
34
+
35
+ Multiruby.svn_co "#{Multiruby::MRI_SVN}/#{ver}", "mri_#{ver}"
36
+ when /mri:svn:tag:(.*)/ then
37
+ ver = $1
38
+ latest = Multiruby.tags.grep(/#{ver}/).last
39
+
40
+ Multiruby.svn_co "#{Multiruby::MRI_SVN}/tags/#{latest}", "mri_rel_#{ver}"
41
+ when /mri:tar:(.*)/ then
42
+ v = $1
43
+ Multiruby.fetch_tar v
44
+ else
45
+ warn "unknown spec #{spec}"
46
+ end
47
+ end
48
+
49
+ Multiruby.build_and_install
@@ -0,0 +1,9 @@
1
+ ##
2
+ # this is for autotest plugin developers only...
3
+
4
+ module Autotest::Once
5
+ Autotest.add_hook :ran_command do |at|
6
+ exit 0
7
+ end
8
+ end
9
+
data/lib/multiruby.rb ADDED
@@ -0,0 +1,303 @@
1
+ require 'fileutils'
2
+ require 'open-uri'
3
+
4
+ ##
5
+ # multiruby_setup is a script to help you manage multiruby.
6
+ #
7
+ # usage: multiruby_setup [-h|cmd|spec...]
8
+ #
9
+ # cmds:
10
+ #
11
+ # h, help - show this help.
12
+ # list - print installed versions.
13
+ # update - update svn builds.
14
+ # update:rubygems - update rubygems and nuke install dirs.
15
+ # rm:$version - remove a particular version.
16
+ # clean - clean scm build dirs and remove non-scm build dirs.
17
+ #
18
+ # specs:
19
+ #
20
+ # mri:svn:current - alias for mri:svn:releases and mri:svn:branches.
21
+ # mri:svn:releases - alias for supported releases of mri ruby.
22
+ # mri:svn:branches - alias for active branches of mri ruby.
23
+ # mri:svn:branch:$branch - install a specific $branch of mri from svn.
24
+ # mri:svn:tag:$tag - install a specific $tag of mri from svn.
25
+ # mri:tar:$version - install a specific $version of mri from tarball.
26
+ #
27
+ # NOTES:
28
+ #
29
+ # * you can add a symlink to your rubinius build into ~/.multiruby/install
30
+ # * I'll get to adding support for other implementations soon.
31
+ #
32
+ module Multiruby
33
+ MRI_SVN = "http://svn.ruby-lang.org/repos/ruby"
34
+ TAGS = %w( 1_8_6 1_8_7 1_9 ).map { |v| "tag:#{v}" }
35
+ BRANCHES = %w(1_8 1_8_6 1_8_7 trunk).map { |v| "branch:#{v}" }
36
+
37
+ def self.build_and_install
38
+ root_dir = self.root_dir
39
+ versions = []
40
+
41
+ Dir.chdir root_dir do
42
+ self.setup_dirs
43
+
44
+ rubygems = Dir["versions/rubygems*.tgz"]
45
+ abort "You should delete all but one rubygem tarball" if rubygems.size > 1
46
+ rubygem_tarball = File.expand_path rubygems.last rescue nil
47
+
48
+ Dir.chdir "build" do
49
+ Dir["../versions/*"].each do |tarball|
50
+ next if tarball =~ /rubygems/
51
+
52
+ build_dir = File.basename tarball, ".tar.gz"
53
+ version = build_dir.sub(/^ruby-?/, '')
54
+ versions << version
55
+ inst_dir = "#{root_dir}/install/#{version}"
56
+
57
+ unless test ?d, inst_dir then
58
+ unless test ?d, build_dir then
59
+ puts "creating #{inst_dir}"
60
+ Dir.mkdir inst_dir
61
+ run "tar zxf #{tarball}"
62
+ end
63
+ Dir.chdir build_dir do
64
+ puts "building and installing #{version}"
65
+ run "autoconf" unless test ?f, "configure"
66
+ FileUtils.rm_r "ext/readline" if test ?d, "ext/readline"
67
+ run "./configure --prefix #{inst_dir} &> log.configure" unless test ?f, "Makefile"
68
+ run "nice make -j4 &> log.build"
69
+ run "make install &> log.install"
70
+ build_dir = Dir.pwd
71
+
72
+ if rubygem_tarball and version !~ /1[._-]9|trunk/ then
73
+ rubygems = File.basename rubygem_tarball, ".tgz"
74
+ run "tar zxf #{rubygem_tarball}" unless test ?d, rubygems
75
+
76
+ Dir.chdir rubygems do
77
+ run "../ruby ./setup.rb --no-rdoc --no-ri &> ../log.rubygems"
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+
85
+ # pick up rubinius - allows for simple symlinks to your build dir
86
+ self.in_install_dir do
87
+ versions.push(*Dir["rubinius*"])
88
+ end
89
+ end
90
+
91
+ versions
92
+ end
93
+
94
+ def self.clean
95
+ self.each_scm_build_dir do |style|
96
+ case style
97
+ when :svn, :git then
98
+ if File.exist? "Makefile" then
99
+ system "make clean"
100
+ elsif File.exist? "Rakefile" then
101
+ system "rake clean"
102
+ end
103
+ else
104
+ FileUtils.rm_rf Dir.pwd
105
+ end
106
+ end
107
+ end
108
+
109
+ def self.each_scm_build_dir
110
+ Multiruby.in_build_dir do
111
+ Dir["*"].each do |dir|
112
+ next unless File.directory? dir
113
+ Dir.chdir dir do
114
+ if File.exist?(".svn") || File.exist?(".git") then
115
+ scm = File.exist?(".svn") ? :svn : :git
116
+ yield scm
117
+ else
118
+ yield :none
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
124
+
125
+ def self.extract_latest_version url
126
+ file = URI.parse(url).read
127
+ versions = file.scan(/href="(ruby.*tar.gz)"/).flatten.reject { |s|
128
+ s =~ /preview/
129
+ }.sort_by { |s|
130
+ s.split(/\D+/).map { |i| i.to_i }
131
+ }.flatten.last
132
+ end
133
+
134
+ def self.fetch_tar v
135
+ require 'open-uri'
136
+ base_url = "http://ftp.ruby-lang.org/pub/ruby"
137
+
138
+ in_versions_dir do
139
+ warn " Determining latest version for #{v}"
140
+ base = extract_latest_version("#{base_url}/#{v}/")
141
+ url = File.join base_url, v, base
142
+ warn " Fetching #{base} via HTTP... this might take a while."
143
+ open(url) do |f|
144
+ File.open base, 'w' do |out|
145
+ out.write f.read
146
+ end
147
+ end
148
+ end
149
+ end
150
+
151
+ def self.help
152
+ File.readlines(__FILE__).each do |line|
153
+ next unless line =~ /^#( |$)/
154
+ puts line.sub(/^# ?/, '')
155
+ end
156
+ end
157
+
158
+ def self.in_build_dir
159
+ Dir.chdir File.join(self.root_dir, "build") do
160
+ yield
161
+ end
162
+ end
163
+
164
+ def self.in_install_dir
165
+ Dir.chdir File.join(self.root_dir, "install") do
166
+ yield
167
+ end
168
+ end
169
+
170
+ def self.in_root_dir
171
+ Dir.chdir self.root_dir do
172
+ yield
173
+ end
174
+ end
175
+
176
+ def self.in_tmp_dir
177
+ Dir.chdir File.join(self.root_dir, "tmp") do
178
+ yield
179
+ end
180
+ end
181
+
182
+ def self.in_versions_dir
183
+ Dir.chdir File.join(self.root_dir, "versions") do
184
+ yield
185
+ end
186
+ end
187
+
188
+ def self.list
189
+ puts "Known versions:"
190
+ in_install_dir do
191
+ Dir["*"].sort.each do |d|
192
+ puts " #{d}"
193
+ end
194
+ end
195
+ end
196
+
197
+ def self.rm name
198
+ Multiruby.in_root_dir do
199
+ FileUtils.rm_rf Dir["*/#{name}"]
200
+ File.unlink "versions/ruby-#{name}.tar.gz"
201
+ end
202
+ end
203
+
204
+ def self.root_dir
205
+ root_dir = File.expand_path(ENV['MULTIRUBY'] ||
206
+ File.join(ENV['HOME'], ".multiruby"))
207
+
208
+ unless test ?d, root_dir then
209
+ puts "creating #{root_dir}"
210
+ Dir.mkdir root_dir, 0700
211
+ end
212
+
213
+ root_dir
214
+ end
215
+
216
+ def self.run(cmd)
217
+ puts "Running command: #{cmd}"
218
+ raise "ERROR: Command failed with exit code #{$?}" unless system cmd
219
+ end
220
+
221
+ def self.setup_dirs
222
+ %w(build install versions tmp).each do |dir|
223
+ unless test ?d, dir then
224
+ puts "creating #{dir}"
225
+ Dir.mkdir dir
226
+ if dir == "versions" then
227
+ warn " Downloading initial ruby tarballs to ~/.multiruby/versions:"
228
+ %w(1.8 1.9).each do |v|
229
+ self.fetch_tar v
230
+ end
231
+ warn " ...done"
232
+ warn " Put other ruby tarballs in ~/.multiruby/versions to use them."
233
+ end
234
+ end
235
+ end
236
+ end
237
+
238
+ def self.svn_co url, dir
239
+ Multiruby.in_versions_dir do
240
+ Multiruby.run "svn co #{url} #{dir}" unless File.directory? dir
241
+ FileUtils.ln_s "../versions/#{dir}", "../build/#{dir}"
242
+ end
243
+ end
244
+
245
+ def self.tags
246
+ tags = nil
247
+ Multiruby.in_tmp_dir do
248
+ cache = "svn.tag.cache"
249
+ File.unlink cache if Time.now - File.mtime(cache) > 86400 rescue nil
250
+
251
+ File.open cache, "w" do |f|
252
+ f.write `svn ls #{MRI_SVN}/tags/`
253
+ end unless File.exist? cache
254
+
255
+ tags = File.read(cache).split(/\n/).grep(/^v/).reject {|s| s =~ /preview/}
256
+ end
257
+
258
+ tags = tags.sort_by { |s| s.scan(/\d+/).map { |s| s.to_i } }
259
+ end
260
+
261
+ def self.update
262
+ # TODO:
263
+ # update will look at the dir name and act accordingly rel_.* will
264
+ # figure out latest tag on that name and svn sw to it trunk and
265
+ # others will just svn update
266
+
267
+ self.each_scm_build_dir do |style|
268
+ case style
269
+ when :svn then
270
+ dir = File.basename(Dir.pwd)
271
+ warn dir
272
+ case dir
273
+ when /mri_\d/ then
274
+ system "svn cleanup" # just in case
275
+ FileUtils.rm_rf "../install/#{dir}" if `svn up` =~ /^[ADUCG] /
276
+ when /tag/
277
+ warn "don't know how to update tags: #{dir}"
278
+ # url = `svn info`[/^URL: (.*)/, 1]
279
+ else
280
+ warn "don't know how to update: #{dir}"
281
+ end
282
+ else
283
+ warn "update in non-svn dir not supported yet: #{dir}"
284
+ end
285
+ end
286
+ end
287
+
288
+ def self.update_rubygems
289
+ url = "http://files.rubyforge.rubyuser.de/rubygems/"
290
+ html = URI.parse(url).read
291
+
292
+ versions = html.scan(/href="rubygems-update-(\d+(?:\.\d+)+).gem/).flatten
293
+ latest = versions.sort_by { |s| s.scan(/\d+/).map { |s| s.to_i } }.last
294
+
295
+ Multiruby.in_versions_dir do
296
+ File.unlink(*Dir["rubygems*"])
297
+ file = "rubygems-#{latest}.tgz"
298
+ File.open file, 'w' do |f|
299
+ f.write URI.parse(url+file).read
300
+ end
301
+ end
302
+ end
303
+ end
data/lib/zentest.rb CHANGED
@@ -56,7 +56,7 @@ end
56
56
 
57
57
  class ZenTest
58
58
 
59
- VERSION = '3.9.3'
59
+ VERSION = '3.10.0'
60
60
 
61
61
  include ZenTestMapping
62
62
 
data/test/test_zentest.rb CHANGED
@@ -1,5 +1,10 @@
1
1
  #!/usr/local/bin/ruby -w
2
2
 
3
+ if defined? RUBY_ENGINE then
4
+ warn "rubinius does not support features required by zentest. Skipping tests"
5
+ return
6
+ end
7
+
3
8
  require 'test/unit' unless defined? $ZENTEST and $ZENTEST
4
9
 
5
10
  $TESTING = true
@@ -2,16 +2,20 @@ require 'test/unit' unless defined? $ZENTEST and $ZENTEST
2
2
 
3
3
  $TESTING = true
4
4
 
5
- # I do this so I can still run ZenTest against the tests and itself...
6
- require 'zentest' unless defined? $ZENTEST
5
+ require 'zentest_mapping' unless defined? $ZENTEST
6
+
7
+ class Dummy
8
+ attr_accessor :inherited_methods
9
+ include ZenTestMapping
10
+ end
7
11
 
8
12
  class TestZentestMapping < Test::Unit::TestCase
9
13
  def setup
10
- @tester = ZenTest.new
14
+ @tester = Dummy.new
11
15
  end
12
16
 
13
17
  def util_simple_setup
14
- @tester.klasses = {
18
+ klasses = {
15
19
  "Something" =>
16
20
  {
17
21
  "method1" => true,
@@ -25,7 +29,7 @@ class TestZentestMapping < Test::Unit::TestCase
25
29
  "self.[]" => true,
26
30
  },
27
31
  }
28
- @tester.test_klasses = {
32
+ test_klasses = {
29
33
  "TestSomething" =>
30
34
  {
31
35
  "test_class_method4" => true,
@@ -35,7 +39,7 @@ class TestZentestMapping < Test::Unit::TestCase
35
39
  "test_class_index" => true,
36
40
  },
37
41
  }
38
- @tester.inherited_methods = @tester.test_klasses.merge(@tester.klasses)
42
+ @tester.inherited_methods = test_klasses.merge(klasses)
39
43
  @generated_code = "
40
44
  require 'test/unit' unless defined? $ZENTEST and $ZENTEST
41
45
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ZenTest
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.3
4
+ version: 3.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2008-06-09 00:00:00 -07:00
13
+ date: 2008-06-17 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -22,13 +22,14 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 1.5.3
24
24
  version:
25
- description: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails. ZenTest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. ZenTest only works with Ruby and Test::Unit. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Test::Rails helps you build industrial-strength Rails code."
25
+ description: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails. ZenTest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. ZenTest only works with Ruby and Test::Unit. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Use multiruby_setup to manage your installed versions. Test::Rails helps you build industrial-strength Rails code."
26
26
  email:
27
27
  - ryand-ruby@zenspider.com
28
28
  - drbrain@segment7.net
29
29
  executables:
30
30
  - autotest
31
31
  - multiruby
32
+ - multiruby_setup
32
33
  - rails_test_audit
33
34
  - unit_diff
34
35
  - zentest
@@ -50,6 +51,7 @@ files:
50
51
  - articles/how_to_use_zentest.txt
51
52
  - bin/autotest
52
53
  - bin/multiruby
54
+ - bin/multiruby_setup
53
55
  - bin/rails_test_audit
54
56
  - bin/unit_diff
55
57
  - bin/zentest
@@ -73,6 +75,7 @@ files:
73
75
  - lib/autotest/menu.rb
74
76
  - lib/autotest/migrate.rb
75
77
  - lib/autotest/notify.rb
78
+ - lib/autotest/once.rb
76
79
  - lib/autotest/pretty.rb
77
80
  - lib/autotest/rails.rb
78
81
  - lib/autotest/rcov.rb
@@ -82,6 +85,7 @@ files:
82
85
  - lib/autotest/snarl.rb
83
86
  - lib/autotest/timestamp.rb
84
87
  - lib/functional_test_matrix.rb
88
+ - lib/multiruby.rb
85
89
  - lib/test/rails.rb
86
90
  - lib/test/rails/controller_test_case.rb
87
91
  - lib/test/rails/functional_test_case.rb