rake 0.5.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rake might be problematic. Click here for more details.

Files changed (42) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGES +24 -0
  3. data/README +28 -11
  4. data/Rakefile +22 -30
  5. data/bin/rake +1 -1
  6. data/doc/jamis.rb +132 -105
  7. data/doc/release_notes/rake-0.6.0.rdoc +141 -0
  8. data/lib/rake.rb +661 -455
  9. data/lib/rake/classic_namespace.rb +8 -0
  10. data/lib/rake/gempackagetask.rb +5 -3
  11. data/lib/rake/packagetask.rb +0 -2
  12. data/lib/rake/rake_test_loader.rb +1 -1
  13. data/lib/rake/testtask.rb +8 -2
  14. data/test/data/chains/Rakefile +15 -0
  15. data/test/data/default/Rakefile +19 -0
  16. data/test/data/dryrun/Rakefile +22 -0
  17. data/test/data/file_creation_task/Rakefile +30 -0
  18. data/test/data/imports/Rakefile +19 -0
  19. data/test/data/imports/deps.mf +1 -0
  20. data/test/data/multidesc/Rakefile +14 -0
  21. data/test/data/sample.mf +9 -0
  22. data/test/filecreation.rb +18 -9
  23. data/test/functional.rb +2 -130
  24. data/test/session_functional.rb +159 -0
  25. data/test/{testclean.rb → test_clean.rb} +1 -0
  26. data/test/test_definitions.rb +82 -0
  27. data/test/test_earlytime.rb +31 -0
  28. data/test/test_file_creation_task.rb +56 -0
  29. data/test/test_file_task.rb +140 -0
  30. data/test/{testfilelist.rb → test_filelist.rb} +17 -2
  31. data/test/{testfileutils.rb → test_fileutils.rb} +10 -2
  32. data/test/{testftp.rb → test_ftp.rb} +0 -0
  33. data/test/test_makefile_loader.rb +2 -0
  34. data/test/{testpackagetask.rb → test_package_task.rb} +45 -0
  35. data/test/test_rake.rb +21 -0
  36. data/test/test_rules.rb +206 -0
  37. data/test/test_tasks.rb +77 -0
  38. data/test/{testtesttask.rb → test_test_task.rb} +5 -0
  39. metadata +72 -12
  40. metadata.gz.sig +2 -0
  41. data/TAGS +0 -126
  42. data/test/testtasks.rb +0 -400
data/test/test_rake.rb ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+
6
+ class TestRake < Test::Unit::TestCase
7
+ def test_each_dir_parent
8
+ assert_equal ['a'], alldirs('a')
9
+ assert_equal ['a/b', 'a'], alldirs('a/b')
10
+ assert_equal ['/a/b', '/a', '/'], alldirs('/a/b')
11
+ assert_equal ['c:/a/b', 'c:/a', 'c:'], alldirs('c:/a/b')
12
+ assert_equal ['c:a/b', 'c:a'], alldirs('c:a/b')
13
+ end
14
+
15
+ def alldirs(fn)
16
+ result = []
17
+ Rake.each_dir_parent(fn) { |d| result << d }
18
+ result
19
+ end
20
+
21
+ end
@@ -0,0 +1,206 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'fileutils'
5
+ require 'rake'
6
+ require 'test/filecreation'
7
+
8
+ ######################################################################
9
+ class TestRules < Test::Unit::TestCase
10
+ include Rake
11
+ include FileCreation
12
+
13
+ SRCFILE = "testdata/abc.c"
14
+ SRCFILE2 = "testdata/xyz.c"
15
+ FTNFILE = "testdata/abc.f"
16
+ OBJFILE = "testdata/abc.o"
17
+
18
+ def setup
19
+ Task.clear
20
+ @runs = []
21
+ end
22
+
23
+ def teardown
24
+ FileList['testdata/*'].each do |f| rm_r(f, :verbose=>false) end
25
+ end
26
+
27
+ def test_multiple_rules1
28
+ create_file(FTNFILE)
29
+ delete_file(SRCFILE)
30
+ delete_file(OBJFILE)
31
+ rule(/\.o$/ => ['.c']) do @runs << :C end
32
+ rule(/\.o$/ => ['.f']) do @runs << :F end
33
+ t = Task[OBJFILE]
34
+ t.invoke
35
+ Task[OBJFILE].invoke
36
+ assert_equal [:F], @runs
37
+ end
38
+
39
+ def test_multiple_rules2
40
+ create_file(FTNFILE)
41
+ delete_file(SRCFILE)
42
+ delete_file(OBJFILE)
43
+ rule(/\.o$/ => ['.f']) do @runs << :F end
44
+ rule(/\.o$/ => ['.c']) do @runs << :C end
45
+ Task[OBJFILE].invoke
46
+ assert_equal [:F], @runs
47
+ end
48
+
49
+ def test_create_with_source
50
+ create_file(SRCFILE)
51
+ rule(/\.o$/ => ['.c']) do |t|
52
+ @runs << t.name
53
+ assert_equal OBJFILE, t.name
54
+ assert_equal SRCFILE, t.source
55
+ end
56
+ Task[OBJFILE].invoke
57
+ assert_equal [OBJFILE], @runs
58
+ end
59
+
60
+ def test_single_dependent
61
+ create_file(SRCFILE)
62
+ rule(/\.o$/ => '.c') do |t|
63
+ @runs << t.name
64
+ end
65
+ Task[OBJFILE].invoke
66
+ assert_equal [OBJFILE], @runs
67
+ end
68
+
69
+ def test_create_by_string
70
+ create_file(SRCFILE)
71
+ rule '.o' => ['.c'] do |t|
72
+ @runs << t.name
73
+ end
74
+ Task[OBJFILE].invoke
75
+ assert_equal [OBJFILE], @runs
76
+ end
77
+
78
+ def test_rule_and_no_action_task
79
+ create_file(SRCFILE)
80
+ create_file(SRCFILE2)
81
+ delete_file(OBJFILE)
82
+ rule '.o' => '.c' do |t|
83
+ @runs << t.source
84
+ end
85
+ file OBJFILE => [SRCFILE2]
86
+ Task[OBJFILE].invoke
87
+ assert_equal [SRCFILE], @runs
88
+ end
89
+
90
+ def test_string_close_matches
91
+ create_file("testdata/x.c")
92
+ rule '.o' => ['.c'] do |t|
93
+ @runs << t.name
94
+ end
95
+ assert_raises(RuntimeError) { Task['testdata/x.obj'].invoke }
96
+ assert_raises(RuntimeError) { Task['testdata/x.xyo'].invoke }
97
+ end
98
+
99
+ def test_precedence_rule_vs_implicit
100
+ create_timed_files(OBJFILE, SRCFILE)
101
+ rule(/\.o$/ => ['.c']) do
102
+ @runs << :RULE
103
+ end
104
+ Task[OBJFILE].invoke
105
+ assert_equal [:RULE], @runs
106
+ end
107
+
108
+ def test_rule_with_two_sources
109
+ create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
110
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
111
+ @runs << :RULE
112
+ end
113
+ Task[OBJFILE].invoke
114
+ assert_equal [:RULE], @runs
115
+ end
116
+
117
+ def test_rule_with_two_sources_but_one_missing
118
+ create_timed_files(OBJFILE, SRCFILE)
119
+ delete_file(SRCFILE2)
120
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
121
+ @runs << :RULE
122
+ end
123
+ Task[OBJFILE].invoke
124
+ assert_equal [], @runs
125
+ end
126
+
127
+ def test_rule_ordering_finding_second_rule
128
+ create_timed_files(OBJFILE, SRCFILE)
129
+ delete_file(SRCFILE2)
130
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
131
+ @runs << :RULE1
132
+ end
133
+ rule OBJFILE => [lambda{SRCFILE}] do
134
+ @runs << :RULE2
135
+ end
136
+ Task[OBJFILE].invoke
137
+ assert_equal [:RULE2], @runs
138
+ end
139
+
140
+ def test_rule_ordering_finding_first_rule
141
+ create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
142
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
143
+ @runs << :RULE1
144
+ end
145
+ rule OBJFILE => [lambda{SRCFILE}] do
146
+ @runs << :RULE2
147
+ end
148
+ Task[OBJFILE].invoke
149
+ assert_equal [:RULE1], @runs
150
+ end
151
+
152
+ def test_rule_ordering_not_finding_second_rule
153
+ create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
154
+ rule OBJFILE => [lambda{SRCFILE}] do
155
+ @runs << :RULE1
156
+ end
157
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
158
+ @runs << :RULE2
159
+ end
160
+ Task[OBJFILE].invoke
161
+ assert_equal [:RULE1], @runs
162
+ end
163
+
164
+ def test_proc_dependent
165
+ ran = false
166
+ File.makedirs("testdata/src/jw")
167
+ create_file("testdata/src/jw/X.java")
168
+ rule %r(classes/.*\.class) => [
169
+ proc { |fn| fn.sub(/^classes/, 'testdata/src').sub(/\.class$/, '.java') }
170
+ ] do |task|
171
+ assert_equal task.name, 'classes/jw/X.class'
172
+ assert_equal task.source, 'testdata/src/jw/X.java'
173
+ ran = true
174
+ end
175
+ Task['classes/jw/X.class'].invoke
176
+ assert ran, "Should have triggered rule"
177
+ ensure
178
+ rm_r("testdata/src", :verbose=>false) rescue nil
179
+ end
180
+
181
+ def test_recursive_rules
182
+ actions = []
183
+ create_file("testdata/abc.xml")
184
+ rule '.y' => '.xml' do actions << 'y' end
185
+ rule '.c' => '.y' do actions << 'c'end
186
+ rule '.o' => '.c' do actions << 'o'end
187
+ rule '.exe' => '.o' do actions << 'exe'end
188
+ Task["testdata/abc.exe"].invoke
189
+ assert_equal ['y', 'c', 'o', 'exe'], actions
190
+ end
191
+
192
+ def test_recursive_overflow
193
+ create_file("testdata/a.a")
194
+ prev = 'a'
195
+ ('b'..'z').each do |letter|
196
+ rule ".#{letter}" => ".#{prev}" do |t| puts "#{t.name}" end
197
+ prev = letter
198
+ end
199
+ ex = assert_raises(Rake::RuleRecursionOverflowError) {
200
+ Task["testdata/a.z"].invoke
201
+ }
202
+ assert_match(/a\.z => testdata\/a.y/, ex.message)
203
+ end
204
+
205
+ end
206
+
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'fileutils'
5
+ require 'rake'
6
+ require 'test/filecreation'
7
+
8
+ ######################################################################
9
+ class TestTask < Test::Unit::TestCase
10
+ include Rake
11
+
12
+ def setup
13
+ Task.clear
14
+ end
15
+
16
+ def test_create
17
+ arg = nil
18
+ t = Task.lookup(:name).enhance { |task| arg = task; 1234 }
19
+ assert_equal "name", t.name
20
+ assert_equal [], t.prerequisites
21
+ assert t.prerequisites.is_a?(FileList)
22
+ assert t.needed?
23
+ t.execute
24
+ assert_equal t, arg
25
+ assert_nil t.source
26
+ end
27
+
28
+ def test_invoke
29
+ runlist = []
30
+ t1 = Task.lookup(:t1).enhance([:t2, :t3]) { |t| runlist << t.name; 3321 }
31
+ t2 = Task.lookup(:t2).enhance { |t| runlist << t.name }
32
+ t3 = Task.lookup(:t3).enhance { |t| runlist << t.name }
33
+ assert_equal [:t2, :t3], t1.prerequisites
34
+ t1.invoke
35
+ assert_equal ["t2", "t3", "t1"], runlist
36
+ end
37
+
38
+ def test_no_double_invoke
39
+ runlist = []
40
+ t1 = Task.lookup(:t1).enhance([:t2, :t3]) { |t| runlist << t.name; 3321 }
41
+ t2 = Task.lookup(:t2).enhance([:t3]) { |t| runlist << t.name }
42
+ t3 = Task.lookup(:t3).enhance { |t| runlist << t.name }
43
+ t1.invoke
44
+ assert_equal ["t3", "t2", "t1"], runlist
45
+ end
46
+
47
+ def test_find
48
+ task :tfind
49
+ assert_equal "tfind", Task[:tfind].name
50
+ ex = assert_raises(RuntimeError) { Task[:leaves] }
51
+ assert_equal "Don't know how to build task 'leaves'", ex.message
52
+ end
53
+
54
+ def test_defined
55
+ assert ! Task.task_defined?(:a)
56
+ task :a
57
+ assert Task.task_defined?(:a)
58
+ end
59
+
60
+ def test_multi_invocations
61
+ runs = []
62
+ p = proc do |t| runs << t.name end
63
+ task({:t1=>[:t2,:t3]}, &p)
64
+ task({:t2=>[:t3]}, &p)
65
+ task(:t3, &p)
66
+ Task[:t1].invoke
67
+ assert_equal ["t1", "t2", "t3"], runs.sort
68
+ end
69
+
70
+ def test_task_list
71
+ task :t2
72
+ task :t1 => [:t2]
73
+ assert_equal ["t1", "t2"], Task.tasks.collect {|t| t.name}
74
+ end
75
+
76
+ end
77
+
@@ -4,11 +4,16 @@ require 'test/unit'
4
4
  require 'rake/testtask'
5
5
 
6
6
  class TestTestTask < Test::Unit::TestCase
7
+ include Rake
7
8
  def setup
8
9
  Task.clear
9
10
  ENV['TEST'] = nil
10
11
  end
11
12
 
13
+ def teardown
14
+ FileUtils.rm_rf("testdata")
15
+ end
16
+
12
17
  def test_no_task
13
18
  assert ! Task.task_defined?(:test)
14
19
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.10.1
2
+ rubygems_version: 0.8.11.1
3
3
  specification_version: 1
4
4
  name: rake
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.5.4
7
- date: 2005-04-30
6
+ version: 0.6.0
7
+ date: 2005-09-05 00:00:00 -04:00
8
8
  summary: Ruby based make-like utility.
9
9
  require_paths:
10
10
  - lib
@@ -24,15 +24,57 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
24
24
  version: 0.0.0
25
25
  version:
26
26
  platform: ruby
27
+ signing_key:
28
+ cert_chain:
29
+ - >
30
+ -----BEGIN CERTIFICATE-----
31
+
32
+ MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMQwwCgYDVQQDDANqaW0x
33
+
34
+ HDAaBgoJkiaJk/IsZAEZFgx3ZWlyaWNoaG91c2UxEzARBgoJkiaJk/IsZAEZFgNv
35
+
36
+ cmcwHhcNMDUwNzA4MTMxMzI0WhcNMDYwNzA4MTMxMzI0WjBBMQwwCgYDVQQDDANq
37
+
38
+ aW0xHDAaBgoJkiaJk/IsZAEZFgx3ZWlyaWNoaG91c2UxEzARBgoJkiaJk/IsZAEZ
39
+
40
+ FgNvcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEZ8QN22xELXnR
41
+
42
+ x3iF0jL+vm214vecz5EOSsUlAssldq0JwSXKejDDJwJx64BDKnFQQHGAWKCQrQPQ
43
+
44
+ dPu6rXYIyrtklv51nVMHsT6PkxDX7Yrdm4Wtj8gf9CCElxYL6DQB7U5nGDVCKcD5
45
+
46
+ DLGtxdUfUilJaZBKPK4SIC4peYuoS9Oc7ApheGhsplauHsGlbpXYLtHq2uOXMu8C
47
+
48
+ 8tRIEAofPktSjsi+kbCYEzzhYsbwoACC7cJPpbcNYKShLncS0w/rj5j3yoxNjF35
49
+
50
+ lj452VvSRNP0+RDg5VqFIetMvftaDYwyVjvsS+Iiz0yTvwop0vfqrFAabaQtInfZ
51
+
52
+ aplJAFubAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
53
+
54
+ BBROMTjLDSxY4fQiL2eg4OlAVSFv4TANBgkqhkiG9w0BAQUFAAOCAQEAvrw0L8Lp
55
+
56
+ 6HwukkUbupu3FT6drO8V/731Uaac1gf/8zsczHh2C1PWj8eRyFe43kM4TRrbeh92
57
+
58
+ kV08sRjm8CzTtDHFN5xqwonHJmGfwl85nUwcHfWvqrXBwKw3gz7RHUfuwEpuN3q3
59
+
60
+ bR3HlVIrK9jpgeezsvDBAAK8k2yFNOdW3iJOBAbH+IXDGUrrizVhJsFTs0QTVqvd
61
+
62
+ UQBJCQ1z5YmaLvAs9kRyYDjuW99WN2CRjsLNVfCPFyPZvLBMx4iJsysR3i2IBUCo
63
+
64
+ M1ah2DSyL+5j2PhA7GAZQqGgTR8cjF8wfAfc1VvvRztBYwhz8w1O7DFW6xCPvqxE
65
+
66
+ e91eqgc77OpHsw==
67
+
68
+ -----END CERTIFICATE-----
69
+
27
70
  authors:
28
71
  - Jim Weirich
29
72
  files:
30
73
  - install.rb
31
74
  - CHANGES
32
- - README
33
75
  - Rakefile
76
+ - README
34
77
  - TODO
35
- - TAGS
36
78
  - MIT-LICENSE
37
79
  - bin/rake
38
80
  - lib/rake.rb
@@ -45,6 +87,7 @@ files:
45
87
  - lib/rake/gempackagetask.rb
46
88
  - lib/rake/ruby182_test_unit_fix.rb
47
89
  - lib/rake/rake_test_loader.rb
90
+ - lib/rake/classic_namespace.rb
48
91
  - lib/rake/contrib/ftptools.rb
49
92
  - lib/rake/contrib/sys.rb
50
93
  - lib/rake/contrib/compositepublisher.rb
@@ -53,18 +96,33 @@ files:
53
96
  - lib/rake/contrib/sshpublisher.rb
54
97
  - lib/rake/loaders/makefile.rb
55
98
  - test/filecreation.rb
56
- - test/testclean.rb
57
- - test/testfilelist.rb
58
- - test/testtasks.rb
59
- - test/testftp.rb
60
- - test/testfileutils.rb
99
+ - test/test_filelist.rb
100
+ - test/test_fileutils.rb
101
+ - test/test_package_task.rb
102
+ - test/test_ftp.rb
103
+ - test/test_clean.rb
61
104
  - test/shellcommand.rb
62
- - test/testpackagetask.rb
105
+ - test/test_tasks.rb
63
106
  - test/functional.rb
64
- - test/testtesttask.rb
107
+ - test/test_rake.rb
65
108
  - test/test_makefile_loader.rb
109
+ - test/test_test_task.rb
110
+ - test/session_functional.rb
111
+ - test/test_rules.rb
112
+ - test/test_file_creation_task.rb
113
+ - test/test_file_task.rb
114
+ - test/test_earlytime.rb
115
+ - test/test_definitions.rb
66
116
  - test/contrib/testsys.rb
67
117
  - test/data/rbext/rakefile.rb
118
+ - test/data/sample.mf
119
+ - test/data/imports/deps.mf
120
+ - test/data/default/Rakefile
121
+ - test/data/multidesc/Rakefile
122
+ - test/data/chains/Rakefile
123
+ - test/data/dryrun/Rakefile
124
+ - test/data/imports/Rakefile
125
+ - test/data/file_creation_task/Rakefile
68
126
  - doc/example
69
127
  - doc/glossary.rdoc
70
128
  - doc/proto_rake.rdoc
@@ -81,6 +139,7 @@ files:
81
139
  - doc/release_notes/rake-0.4.14.rdoc
82
140
  - doc/release_notes/rake-0.5.3.rdoc
83
141
  - doc/release_notes/rake-0.4.15.rdoc
142
+ - doc/release_notes/rake-0.6.0.rdoc
84
143
  - doc/release_notes/rake-0.5.0.rdoc
85
144
  - doc/release_notes/rake-0.5.4.rdoc
86
145
  test_files: []
@@ -102,6 +161,7 @@ extra_rdoc_files:
102
161
  - doc/release_notes/rake-0.4.14.rdoc
103
162
  - doc/release_notes/rake-0.5.3.rdoc
104
163
  - doc/release_notes/rake-0.4.15.rdoc
164
+ - doc/release_notes/rake-0.6.0.rdoc
105
165
  - doc/release_notes/rake-0.5.0.rdoc
106
166
  - doc/release_notes/rake-0.5.4.rdoc
107
167
  executables: