zentest-without-autotest 4.3.2 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +23 -0
- data/VERSION +1 -1
- data/bin/multiruby_setup +7 -0
- data/bin/zentest +1 -6
- data/lib/multiruby.rb +25 -32
- data/lib/zentest.rb +41 -14
- data/zentest-without-autotest.gemspec +2 -2
- metadata +4 -4
data/History.txt
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
=== 4.4.0 / 2010-09-01
|
2
|
+
|
3
|
+
* 1 major enhancement:
|
4
|
+
|
5
|
+
* Removed git building. I'm dropping direct support for rubinius.
|
6
|
+
|
7
|
+
* 3 minor enhancements:
|
8
|
+
|
9
|
+
* Added multiruby mri:list:x.y.z command so you can see what's available.
|
10
|
+
* Enabled installing specific patch versions of ruby.
|
11
|
+
* multiruby rubygems:update now forces a build to be less confusing.
|
12
|
+
|
13
|
+
* 1 bug fix:
|
14
|
+
|
15
|
+
* Removed redundant test_to_normal, now in zentest_mappings
|
16
|
+
|
17
|
+
=== 4.3.3 / 2010-06-17
|
18
|
+
|
19
|
+
* 2 minor enhancements:
|
20
|
+
|
21
|
+
* Added options and removed pattern from Autotest::RCov
|
22
|
+
* update_rubygems now deletes cached rubygems installs
|
23
|
+
|
1
24
|
=== 4.3.2 / 2010-06-02
|
2
25
|
|
3
26
|
* 1 minor enhancement:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.4.0
|
data/bin/multiruby_setup
CHANGED
@@ -30,6 +30,7 @@ ARGV.each do |spec|
|
|
30
30
|
Multiruby.merge_rubygems
|
31
31
|
when "rubygems:update", "update:rubygems" then
|
32
32
|
Multiruby.update_rubygems
|
33
|
+
ARGV << "build"
|
33
34
|
when "update" then
|
34
35
|
Multiruby.update
|
35
36
|
when "tags" then
|
@@ -57,6 +58,12 @@ ARGV.each do |spec|
|
|
57
58
|
ARGV << "build"
|
58
59
|
when /mri:svn:tag:(.*)/ then
|
59
60
|
ARGV << "mri:svn:tag:#{$1}:#{$1}" << "build"
|
61
|
+
when /mri:list:(.*)/ then
|
62
|
+
v = $1
|
63
|
+
ver = v[/\d+\.\d+/]
|
64
|
+
url = "#{Multiruby::RUBY_URL}/#{ver}/"
|
65
|
+
|
66
|
+
puts Multiruby.matching_versions(url, v).join("\n")
|
60
67
|
when /mri:tar:(.*)/ then
|
61
68
|
Multiruby.fetch_tar $1
|
62
69
|
ARGV << "build"
|
data/bin/zentest
CHANGED
@@ -10,12 +10,7 @@ if defined? $v then
|
|
10
10
|
end
|
11
11
|
|
12
12
|
if defined? $h then
|
13
|
-
|
14
|
-
puts " -h display this information"
|
15
|
-
puts " -v display version information"
|
16
|
-
puts " -r Reverse mapping (ClassTest instead of TestClass)"
|
17
|
-
puts " -e (Rapid XP) eval the code generated instead of printing it"
|
18
|
-
exit 0
|
13
|
+
ZenTest.usage_with_exit
|
19
14
|
end
|
20
15
|
|
21
16
|
code = ZenTest.fix(*ARGV)
|
data/lib/multiruby.rb
CHANGED
@@ -123,7 +123,7 @@ module Multiruby
|
|
123
123
|
def self.clean
|
124
124
|
self.each_scm_build_dir do |style|
|
125
125
|
case style
|
126
|
-
when :svn
|
126
|
+
when :svn then
|
127
127
|
if File.exist? "Rakefile" then
|
128
128
|
run "rake clean"
|
129
129
|
elsif File.exist? "Makefile" then
|
@@ -140,9 +140,8 @@ module Multiruby
|
|
140
140
|
Dir["*"].each do |dir|
|
141
141
|
next unless File.directory? dir
|
142
142
|
Dir.chdir dir do
|
143
|
-
if File.exist?(".svn")
|
144
|
-
|
145
|
-
yield scm
|
143
|
+
if File.exist?(".svn") then
|
144
|
+
yield :svn
|
146
145
|
else
|
147
146
|
yield :none
|
148
147
|
end
|
@@ -151,23 +150,31 @@ module Multiruby
|
|
151
150
|
end
|
152
151
|
end
|
153
152
|
|
154
|
-
def self.
|
153
|
+
def self.matching_versions url, matching=nil
|
155
154
|
file = URI.parse(url).read
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
155
|
+
|
156
|
+
map = {
|
157
|
+
"preview" => "beta",
|
158
|
+
"rc" => "beta2",
|
159
|
+
"p" => "release",
|
160
|
+
"tar" => "aargh",
|
161
|
+
"gz" => "aargh",
|
162
|
+
}
|
163
|
+
|
164
|
+
versions = file.scan(/href="(ruby.*tar.gz)"/).flatten.sort_by { |s|
|
165
|
+
s.scan(/\d+|[a-z]+/).map { |a| Integer(a) rescue map[a] || a }
|
166
|
+
}
|
161
167
|
|
162
168
|
versions = versions.grep(/#{Regexp.escape(matching)}/) if matching
|
163
|
-
|
169
|
+
|
170
|
+
versions
|
164
171
|
end
|
165
172
|
|
166
173
|
def self.fetch_tar v
|
167
174
|
in_versions_dir do
|
168
175
|
warn " Determining latest version for #{v}"
|
169
176
|
ver = v[/\d+\.\d+/]
|
170
|
-
base =
|
177
|
+
base = matching_versions("#{RUBY_URL}/#{ver}/", v).last
|
171
178
|
abort "Could not determine release for #{v}" unless base
|
172
179
|
url = File.join RUBY_URL, ver, base
|
173
180
|
unless File.file? base then
|
@@ -181,13 +188,6 @@ module Multiruby
|
|
181
188
|
end
|
182
189
|
end
|
183
190
|
|
184
|
-
def self.git_clone url, dir
|
185
|
-
Multiruby.in_versions_dir do
|
186
|
-
Multiruby.run "git clone #{url} #{dir}" unless File.directory? dir
|
187
|
-
FileUtils.ln_sf "../versions/#{dir}", "../build/#{dir}"
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
191
|
def self.gnu_utils_build inst_dir
|
192
192
|
run "autoconf" unless test ?f, "configure"
|
193
193
|
run "./configure --enable-shared --prefix #{inst_dir}", "log.configure" unless
|
@@ -201,31 +201,31 @@ module Multiruby
|
|
201
201
|
end
|
202
202
|
|
203
203
|
def self.in_build_dir
|
204
|
-
|
204
|
+
in_root_dir "build" do
|
205
205
|
yield
|
206
206
|
end
|
207
207
|
end
|
208
208
|
|
209
209
|
def self.in_install_dir
|
210
|
-
|
210
|
+
in_root_dir "install" do
|
211
211
|
yield
|
212
212
|
end
|
213
213
|
end
|
214
214
|
|
215
|
-
def self.in_root_dir
|
216
|
-
Dir.chdir self.root_dir do
|
215
|
+
def self.in_root_dir subdir = ""
|
216
|
+
Dir.chdir File.join(self.root_dir, subdir) do
|
217
217
|
yield
|
218
218
|
end
|
219
219
|
end
|
220
220
|
|
221
221
|
def self.in_tmp_dir
|
222
|
-
|
222
|
+
in_root_dir "tmp" do
|
223
223
|
yield
|
224
224
|
end
|
225
225
|
end
|
226
226
|
|
227
227
|
def self.in_versions_dir
|
228
|
-
|
228
|
+
in_root_dir "versions" do
|
229
229
|
yield
|
230
230
|
end
|
231
231
|
end
|
@@ -370,13 +370,6 @@ module Multiruby
|
|
370
370
|
else
|
371
371
|
warn " update in this svn dir not supported yet: #{dir}"
|
372
372
|
end
|
373
|
-
when :git then
|
374
|
-
case dir
|
375
|
-
when /rubinius/ then
|
376
|
-
run "rake git:update build" # minor cheat by building here
|
377
|
-
else
|
378
|
-
warn " update in this git dir not supported yet: #{dir}"
|
379
|
-
end
|
380
373
|
else
|
381
374
|
warn " update in non-svn dir not supported yet: #{dir}"
|
382
375
|
end
|
data/lib/zentest.rb
CHANGED
@@ -419,20 +419,6 @@ class ZenTest
|
|
419
419
|
end # @klasses[klassname]
|
420
420
|
end
|
421
421
|
|
422
|
-
def test_to_normal(_name, klassname=nil)
|
423
|
-
super do |name|
|
424
|
-
if defined? @inherited_methods then
|
425
|
-
known_methods = (@inherited_methods[klassname] || {}).keys.sort.reverse
|
426
|
-
known_methods_re = known_methods.map {|s| Regexp.escape(s) }.join("|")
|
427
|
-
|
428
|
-
name = name.sub(/^(#{known_methods_re})(_.*)?$/) { $1 } unless
|
429
|
-
known_methods_re.empty?
|
430
|
-
|
431
|
-
name
|
432
|
-
end
|
433
|
-
end
|
434
|
-
end
|
435
|
-
|
436
422
|
# create a given method at a given
|
437
423
|
# indentation. Returns an array containing
|
438
424
|
# the lines of the method.
|
@@ -538,10 +524,51 @@ class ZenTest
|
|
538
524
|
return @result.join("\n")
|
539
525
|
end
|
540
526
|
|
527
|
+
# Provide a certain amount of help.
|
528
|
+
def self.usage
|
529
|
+
puts <<-EO_USAGE
|
530
|
+
usage: #{File.basename $0} [options] test-and-implementation-files...
|
531
|
+
|
532
|
+
ZenTest scans your target and unit-test code and writes your missing
|
533
|
+
code based on simple naming rules, enabling XP at a much quicker
|
534
|
+
pace. ZenTest only works with Ruby and Test::Unit.
|
535
|
+
|
536
|
+
ZenTest uses the following rules to figure out what code should be
|
537
|
+
generated:
|
538
|
+
|
539
|
+
* Definition:
|
540
|
+
* CUT = Class Under Test
|
541
|
+
* TC = Test Class (for CUT)
|
542
|
+
* TC's name is the same as CUT w/ "Test" prepended at every scope level.
|
543
|
+
* Example: TestA::TestB vs A::B.
|
544
|
+
* CUT method names are used in CT, with "test_" prependend and optional "_ext" extensions for differentiating test case edge boundaries.
|
545
|
+
* Example:
|
546
|
+
* A::B#blah
|
547
|
+
* TestA::TestB#test_blah_normal
|
548
|
+
* TestA::TestB#test_blah_missing_file
|
549
|
+
* All naming conventions are bidirectional with the exception of test extensions.
|
550
|
+
|
551
|
+
options:
|
552
|
+
-h display this information
|
553
|
+
-v display version information
|
554
|
+
-r Reverse mapping (ClassTest instead of TestClass)
|
555
|
+
-e (Rapid XP) eval the code generated instead of printing it
|
556
|
+
|
557
|
+
EO_USAGE
|
558
|
+
end
|
559
|
+
|
560
|
+
# Give help, then quit.
|
561
|
+
def self.usage_with_exit
|
562
|
+
self.usage
|
563
|
+
exit 0
|
564
|
+
end
|
565
|
+
|
541
566
|
# Runs ZenTest over all the supplied files so that
|
542
567
|
# they are analysed and the missing methods have
|
543
568
|
# skeleton code written.
|
569
|
+
# If no files are supplied, splutter out some help.
|
544
570
|
def self.fix(*files)
|
571
|
+
ZenTest.usage_with_exit if files.empty?
|
545
572
|
zentest = ZenTest.new
|
546
573
|
zentest.scan_files(*files)
|
547
574
|
zentest.analyze
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{zentest-without-autotest}
|
8
|
-
s.version = "4.
|
8
|
+
s.version = "4.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ryan Davis"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-09-29}
|
13
13
|
s.executables = ["multigem", "zentest", "multiruby", "multiruby_setup"]
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"README.markdown"
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 4
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 4.
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 4.4.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Ryan Davis
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-09-29 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|