rake 0.4.11 → 13.4.2

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.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/History.rdoc +2454 -0
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +155 -0
  5. data/doc/command_line_usage.rdoc +171 -0
  6. data/doc/glossary.rdoc +40 -49
  7. data/doc/jamis.rb +135 -107
  8. data/doc/proto_rake.rdoc +22 -22
  9. data/doc/rake.1 +156 -0
  10. data/doc/rakefile.rdoc +428 -27
  11. data/doc/rational.rdoc +6 -6
  12. data/exe/rake +27 -0
  13. data/lib/rake/application.rb +847 -0
  14. data/lib/rake/backtrace.rb +25 -0
  15. data/lib/rake/clean.rb +57 -10
  16. data/lib/rake/cloneable.rb +17 -0
  17. data/lib/rake/cpu_counter.rb +122 -0
  18. data/lib/rake/default_loader.rb +15 -0
  19. data/lib/rake/dsl_definition.rb +196 -0
  20. data/lib/rake/early_time.rb +22 -0
  21. data/lib/rake/ext/core.rb +26 -0
  22. data/lib/rake/ext/string.rb +176 -0
  23. data/lib/rake/file_creation_task.rb +25 -0
  24. data/lib/rake/file_list.rb +435 -0
  25. data/lib/rake/file_task.rb +58 -0
  26. data/lib/rake/file_utils.rb +137 -0
  27. data/lib/rake/file_utils_ext.rb +135 -0
  28. data/lib/rake/invocation_chain.rb +57 -0
  29. data/lib/rake/invocation_exception_mixin.rb +17 -0
  30. data/lib/rake/late_time.rb +18 -0
  31. data/lib/rake/linked_list.rb +112 -0
  32. data/lib/rake/loaders/makefile.rb +54 -0
  33. data/lib/rake/multi_task.rb +14 -0
  34. data/lib/rake/name_space.rb +38 -0
  35. data/lib/rake/options.rb +31 -0
  36. data/lib/rake/packagetask.rb +124 -54
  37. data/lib/rake/phony.rb +16 -0
  38. data/lib/rake/private_reader.rb +21 -0
  39. data/lib/rake/promise.rb +100 -0
  40. data/lib/rake/pseudo_status.rb +30 -0
  41. data/lib/rake/rake_module.rb +67 -0
  42. data/lib/rake/rake_test_loader.rb +27 -0
  43. data/lib/rake/rule_recursion_overflow_error.rb +20 -0
  44. data/lib/rake/scope.rb +43 -0
  45. data/lib/rake/task.rb +434 -0
  46. data/lib/rake/task_argument_error.rb +8 -0
  47. data/lib/rake/task_arguments.rb +113 -0
  48. data/lib/rake/task_manager.rb +333 -0
  49. data/lib/rake/tasklib.rb +4 -16
  50. data/lib/rake/testtask.rb +110 -36
  51. data/lib/rake/thread_history_display.rb +49 -0
  52. data/lib/rake/thread_pool.rb +157 -0
  53. data/lib/rake/trace_output.rb +23 -0
  54. data/lib/rake/version.rb +10 -0
  55. data/lib/rake/win32.rb +17 -0
  56. data/lib/rake.rb +64 -992
  57. data/rake.gemspec +102 -0
  58. metadata +117 -89
  59. data/CHANGES +0 -153
  60. data/README +0 -209
  61. data/Rakefile +0 -215
  62. data/TODO +0 -19
  63. data/bin/rake +0 -8
  64. data/install.rb +0 -88
  65. data/lib/rake/contrib/compositepublisher.rb +0 -24
  66. data/lib/rake/contrib/ftptools.rb +0 -139
  67. data/lib/rake/contrib/publisher.rb +0 -75
  68. data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  69. data/lib/rake/contrib/sshpublisher.rb +0 -47
  70. data/lib/rake/contrib/sys.rb +0 -207
  71. data/lib/rake/gempackagetask.rb +0 -98
  72. data/lib/rake/rdoctask.rb +0 -128
  73. data/lib/rake/runtest.rb +0 -23
  74. data/test/contrib/testsys.rb +0 -47
  75. data/test/data/rbext/rakefile.rb +0 -3
  76. data/test/filecreation.rb +0 -26
  77. data/test/functional.rb +0 -82
  78. data/test/shellcommand.rb +0 -3
  79. data/test/testclean.rb +0 -13
  80. data/test/testfilelist.rb +0 -255
  81. data/test/testfileutils.rb +0 -83
  82. data/test/testftp.rb +0 -55
  83. data/test/testpackagetask.rb +0 -81
  84. data/test/testtasks.rb +0 -371
  85. data/test/testtesttask.rb +0 -71
data/test/testfilelist.rb DELETED
@@ -1,255 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'test/unit'
4
- require 'rake'
5
-
6
- class TestFileList < Test::Unit::TestCase
7
- FileList = Rake::FileList
8
-
9
- def setup
10
- create_test_data
11
- end
12
-
13
- def teardown
14
- FileList.select_default_ignore_patterns
15
- end
16
-
17
- def test_create
18
- fl = FileList.new
19
- assert_equal 0, fl.size
20
- end
21
-
22
- def test_create_with_args
23
- fl = FileList.new("testdata/*.c", "x")
24
- assert_equal ["testdata/abc.c", "testdata/x.c", "testdata/xyz.c", "x"].sort,
25
- fl.sort
26
- end
27
-
28
- def test_create_with_block
29
- fl = FileList.new { |f| f.include("x") }
30
- assert_equal ["x"], fl.resolve
31
- end
32
-
33
- def test_create_with_brackets
34
- fl = FileList["testdata/*.c", "x"]
35
- assert_equal ["testdata/abc.c", "testdata/x.c", "testdata/xyz.c", "x"].sort,
36
- fl.sort
37
- end
38
-
39
- def test_append
40
- fl = FileList.new
41
- fl << "a.rb" << "b.rb"
42
- assert_equal ['a.rb', 'b.rb'], fl
43
- end
44
-
45
- def test_add_many
46
- fl = FileList.new
47
- fl.include %w(a d c )
48
- fl.include('x', 'y')
49
- assert_equal ['a', 'd', 'c', 'x', 'y'], fl.resolve
50
- end
51
-
52
- def test_add_return
53
- f = FileList.new
54
- g = f << "x"
55
- assert_equal f.id, g.id
56
- h = f.include("y")
57
- assert_equal f.id, h.id
58
- end
59
-
60
- def test_match
61
- fl = FileList.new
62
- fl.include('test/test*.rb')
63
- assert fl.include?("test/testfilelist.rb")
64
- assert fl.size > 3
65
- fl.each { |fn| assert_match /\.rb$/, fn }
66
- end
67
-
68
- def test_add_matching
69
- fl = FileList.new
70
- fl << "a.java"
71
- fl.include("test/*.rb")
72
- assert_equal "a.java", fl[0]
73
- assert fl.size > 2
74
- assert fl.include?("test/testfilelist.rb")
75
- end
76
-
77
- def test_multiple_patterns
78
- create_test_data
79
- fl = FileList.new
80
- fl.include('*.c', '*xist*')
81
- assert_equal [], fl
82
- fl.include('testdata/*.c', 'testdata/*xist*')
83
- assert_equal [
84
- 'testdata/x.c', 'testdata/xyz.c', 'testdata/abc.c', 'testdata/existing'
85
- ].sort, fl.sort
86
- end
87
-
88
- def test_reject
89
- fl = FileList.new
90
- fl.include %w(testdata/x.c testdata/abc.c testdata/xyz.c testdata/existing)
91
- fl.reject! { |fn| fn =~ %r{/x} }
92
- assert_equal [
93
- 'testdata/abc.c', 'testdata/existing'
94
- ], fl
95
- end
96
-
97
- def test_exclude
98
- fl = FileList['testdata/x.c', 'testdata/abc.c', 'testdata/xyz.c', 'testdata/existing']
99
- fl.each { |fn| touch fn, :verbose => false }
100
- x = fl.exclude(%r{/x.+\.})
101
- assert_equal FileList, x.class
102
- assert_equal [
103
- 'testdata/x.c', 'testdata/abc.c', 'testdata/existing'
104
- ], fl
105
- assert_equal fl.id, x.id
106
- fl.exclude('testdata/*.c')
107
- assert_equal ['testdata/existing'], fl
108
- fl.exclude('testdata/existing')
109
- assert_equal [], fl
110
- end
111
-
112
- def test_exclude_return_on_create
113
- fl = FileList['testdata/*'].exclude(/.*\.c$/)
114
- assert_equal FileList, fl.class
115
- end
116
-
117
- def test_default_exclude
118
- fl = FileList.new
119
- fl.clear_exclude
120
- fl.include("**/*~", "**/*.bak", "**/core")
121
- assert fl.member?("testdata/core"), "Should include core"
122
- assert fl.member?("testdata/x.bak"), "Should include .bak files"
123
- end
124
-
125
- def test_unique
126
- fl = FileList.new
127
- fl << "x.c" << "a.c" << "b.rb" << "a.c"
128
- assert_equal ['x.c', 'a.c', 'b.rb', 'a.c'], fl
129
- fl.uniq!
130
- assert_equal ['x.c', 'a.c', 'b.rb'], fl
131
- end
132
-
133
- def test_to_string
134
- fl = FileList.new
135
- fl << "a.java" << "b.java"
136
- assert_equal "a.java b.java", fl.to_s
137
- assert_equal "a.java b.java", "#{fl}"
138
- end
139
-
140
- def test_to_s_pending
141
- fl = FileList['testdata/abc.*']
142
- assert_equal %{testdata/abc.c}, fl.to_s
143
- end
144
-
145
- def test_inspect_pending
146
- fl = FileList['testdata/abc.*']
147
- assert_equal %{["testdata/abc.c"]}, fl.inspect
148
- end
149
-
150
- def test_sub
151
- fl = FileList["testdata/*.c"]
152
- f2 = fl.sub(/\.c$/, ".o")
153
- assert_equal FileList, f2.class
154
- assert_equal ["testdata/abc.o", "testdata/x.o", "testdata/xyz.o"].sort,
155
- f2.sort
156
- f3 = fl.gsub(/\.c$/, ".o")
157
- assert_equal FileList, f3.class
158
- assert_equal ["testdata/abc.o", "testdata/x.o", "testdata/xyz.o"].sort,
159
- f3.sort
160
- end
161
-
162
- def test_sub!
163
- f = "x/a.c"
164
- fl = FileList[f, "x/b.c"]
165
- res = fl.sub!(/\.c$/, ".o")
166
- assert_equal ["x/a.o", "x/b.o"].sort, fl.sort
167
- assert_equal "x/a.c", f
168
- assert_equal fl.id, res.id
169
- end
170
-
171
- def test_sub_with_block
172
- fl = FileList["src/org/onestepback/a.java", "src/org/onestepback/b.java"]
173
- # The block version doesn't work the way I want it to ...
174
- # f2 = fl.sub(%r{^src/(.*)\.java$}) { |x| "classes/" + $1 + ".class" }
175
- f2 = fl.sub(%r{^src/(.*)\.java$}, "classes/\\1.class")
176
- assert_equal [
177
- "classes/org/onestepback/a.class",
178
- "classes/org/onestepback/b.class"
179
- ].sort,
180
- f2.sort
181
- end
182
-
183
- def test_gsub
184
- create_test_data
185
- fl = FileList["testdata/*.c"]
186
- f2 = fl.gsub(/a/, "A")
187
- assert_equal ["testdAtA/Abc.c", "testdAtA/x.c", "testdAtA/xyz.c"].sort,
188
- f2.sort
189
- end
190
-
191
- def test_ignore_special
192
- f = FileList['testdata/*']
193
- assert ! f.include?("testdata/CVS"), "Should not contain CVS"
194
- assert ! f.include?("testdata/.dummy"), "Should not contain dot files"
195
- assert ! f.include?("testdata/x.bak"), "Should not contain .bak files"
196
- assert ! f.include?("testdata/x~"), "Should not contain ~ files"
197
- assert ! f.include?("testdata/core"), "Should not contain core files"
198
- end
199
-
200
- def test_clear_ignore_patterns
201
- f = FileList['testdata/*']
202
- f.clear_exclude
203
- assert f.include?("testdata/abc.c")
204
- assert f.include?("testdata/xyz.c")
205
- assert f.include?("testdata/CVS")
206
- assert f.include?("testdata/x.bak")
207
- assert f.include?("testdata/x~")
208
- end
209
-
210
- def test_exclude_with_alternate_file_seps
211
- fl = FileList.new
212
- assert fl.exclude?("x/CVS/y")
213
- assert fl.exclude?("x\\CVS\\y")
214
- assert fl.exclude?("x/core")
215
- assert fl.exclude?("x\\core")
216
- end
217
-
218
- def test_add_default_exclude_list
219
- fl = FileList.new
220
- fl.exclude(/~\d+$/)
221
- assert fl.exclude?("x/CVS/y")
222
- assert fl.exclude?("x\\CVS\\y")
223
- assert fl.exclude?("x/core")
224
- assert fl.exclude?("x\\core")
225
- assert fl.exclude?("x/abc~1")
226
- end
227
-
228
- def test_basic_array_functions
229
- f = FileList['b', 'c', 'a']
230
- assert_equal 'b', f.first
231
- assert_equal 'b', f[0]
232
- assert_equal 'a', f.last
233
- assert_equal 'a', f[2]
234
- assert_equal 'a', f[-1]
235
- assert_equal ['a', 'b', 'c'], f.sort
236
- f.sort!
237
- assert_equal ['a', 'b', 'c'], f
238
- end
239
-
240
- def create_test_data
241
- verbose(false) do
242
- mkdir "testdata" unless File.exist? "testdata"
243
- mkdir "testdata/CVS" rescue nil
244
- touch "testdata/.dummy"
245
- touch "testdata/x.bak"
246
- touch "testdata/x~"
247
- touch "testdata/core"
248
- touch "testdata/x.c"
249
- touch "testdata/xyz.c"
250
- touch "testdata/abc.c"
251
- touch "testdata/existing"
252
- end
253
- end
254
-
255
- end
@@ -1,83 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rake'
4
- require 'test/unit'
5
- require 'test/filecreation'
6
- require 'fileutils'
7
-
8
- class TestFileUtils < Test::Unit::TestCase
9
- include FileCreation
10
-
11
- def test_rm_one_file
12
- create_file("testdata/a")
13
- FileUtils.rm_r "testdata/a"
14
- assert ! File.exist?("testdata/a")
15
- end
16
-
17
- def test_rm_two_files
18
- create_file("testdata/a")
19
- create_file("testdata/b")
20
- FileUtils.rm_r ["testdata/a", "testdata/b"]
21
- assert ! File.exist?("testdata/a")
22
- assert ! File.exist?("testdata/b")
23
- end
24
-
25
- def test_rm_filelist
26
- list = Rake::FileList.new << "testdata/a" << "testdata/b"
27
- list.each { |fn| create_file(fn) }
28
- FileUtils.rm_r list
29
- assert ! File.exist?("testdata/a")
30
- assert ! File.exist?("testdata/b")
31
- end
32
-
33
- def test_verbose
34
- verbose true
35
- assert_equal true, verbose
36
- verbose false
37
- assert_equal false, verbose
38
- verbose(true){
39
- assert_equal true, verbose
40
- }
41
- assert_equal false, verbose
42
- end
43
-
44
- def test_nowrite
45
- nowrite true
46
- assert_equal true, nowrite
47
- nowrite false
48
- assert_equal false, nowrite
49
- nowrite(true){
50
- assert_equal true, nowrite
51
- }
52
- assert_equal false, nowrite
53
- end
54
-
55
- def test_sh
56
- verbose(false) { sh %{test/shellcommand.rb} }
57
- assert true, "should not fail"
58
- end
59
-
60
- def test_sh_failure
61
- assert_raises(RuntimeError) {
62
- verbose(false) { sh %{test/shellcommand.rb 1} }
63
- }
64
- end
65
-
66
- def test_sh_special_handling
67
- count = 0
68
- verbose(false) {
69
- sh(%{test/shellcommand.rb}) do |ok, res|
70
- assert(ok)
71
- assert_equal 0, res.exitstatus
72
- count += 1
73
- end
74
- sh(%{test/shellcommand.rb 1}) do |ok, res|
75
- assert(!ok)
76
- assert_equal 1, res.exitstatus
77
- count += 1
78
- end
79
- }
80
- assert_equal 2, count, "Block count should be 2"
81
- end
82
-
83
- end
data/test/testftp.rb DELETED
@@ -1,55 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'date'
4
- require 'test/unit'
5
- require 'rake/contrib/ftptools'
6
-
7
- class FakeDate
8
- def self.today
9
- Date.new(2003,10,3)
10
- end
11
- end
12
-
13
-
14
- class TestFtpFile < Test::Unit::TestCase
15
-
16
- def setup
17
- Rake::FtpFile.class_eval { @date_class = FakeDate }
18
- end
19
-
20
- def test_general
21
- file = Rake::FtpFile.new("here", "-rw-r--r-- 1 a279376 develop 121770 Mar 6 14:50 wiki.pl")
22
- assert_equal "wiki.pl", file.name
23
- assert_equal "here/wiki.pl", file.path
24
- assert_equal "a279376", file.owner
25
- assert_equal "develop", file.group
26
- assert_equal 0644, file.mode
27
- assert_equal 121770, file.size
28
- assert_equal Time.mktime(2003,3,6,14,50,0,0), file.time
29
- assert ! file.directory?
30
- assert ! file.symlink?
31
- end
32
-
33
- def test_far_date
34
- file = Rake::FtpFile.new(".", "drwxr-xr-x 3 a279376 develop 4096 Nov 26 2001 vss")
35
- assert_equal Time.mktime(2001,11,26,0,0,0,0), file.time
36
- end
37
-
38
- def test_close_date
39
- file = Rake::FtpFile.new(".", "drwxr-xr-x 3 a279376 develop 4096 Nov 26 15:35 vss")
40
- assert_equal Time.mktime(2002,11,26,15,35,0,0), file.time
41
- end
42
-
43
- def test_directory
44
- file = Rake::FtpFile.new(".", "drwxrwxr-x 9 a279376 develop 4096 Mar 13 14:32 working")
45
- assert file.directory?
46
- assert !file.symlink?
47
- end
48
-
49
- def test_symlink
50
- file = Rake::FtpFile.new(".", "lrwxrwxrwx 1 a279376 develop 64 Mar 26 2002 xtrac -> /home/a279376/working/ics/development/java/com/fmr/fwp/ics/xtrac")
51
- assert_equal 'xtrac', file.name
52
- assert file.symlink?
53
- assert !file.directory?
54
- end
55
- end
@@ -1,81 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'test/unit'
4
- require 'rake/packagetask'
5
-
6
- class TestPackageTask < Test::Unit::TestCase
7
- def test_create
8
- pkg = Rake::PackageTask.new("pkgr", "1.2.3") { |p|
9
- p.package_files << "install.rb"
10
- p.package_files.include(
11
- '[A-Z]*',
12
- 'bin/**/*',
13
- 'lib/**/*.rb',
14
- 'test/**/*.rb',
15
- 'doc/**/*',
16
- 'build/rubyapp.rb',
17
- '*.blurb')
18
- p.package_files.exclude(/\bCVS\b/)
19
- p.package_files.exclude(/~$/)
20
- p.package_dir = 'pkg'
21
- p.need_tar = true
22
- p.need_zip = true
23
- }
24
- assert_equal "pkg", pkg.package_dir
25
- assert pkg.package_files.include?("bin/rake")
26
- assert "pkgr", pkg.name
27
- assert "1.2.3", pkg.version
28
- assert Task[:package]
29
- assert Task['pkg/pkgr-1.2.3.tgz']
30
- assert Task['pkg/pkgr-1.2.3.zip']
31
- assert Task["pkg/pkgr-1.2.3"]
32
- assert Task[:clobber_package]
33
- assert Task[:repackage]
34
- end
35
-
36
- def test_missing_version
37
- assert_raises(RuntimeError) {
38
- pkg = Rake::PackageTask.new("pkgr") { |p| }
39
- }
40
- end
41
-
42
- def test_no_version
43
- pkg = Rake::PackageTask.new("pkgr", :noversion) { |p| }
44
- assert "pkgr", pkg.send(:package_name)
45
- end
46
-
47
- def test_clone
48
- pkg = Rake::PackageTask.new("x", :noversion)
49
- p2 = pkg.clone
50
- pkg.package_files << "y"
51
- p2.package_files << "x"
52
- assert_equal ["y"], pkg.package_files
53
- assert_equal ["x"], p2.package_files
54
- end
55
- end
56
-
57
-
58
- begin
59
- require 'rubygems'
60
- require 'rake/gempackagetask'
61
- rescue Exception
62
- puts "WARNING: RubyGems not installed"
63
- end
64
-
65
- if ! defined?(Gem)
66
- puts "WARNING: Unable to test GemPackaging ... requires RubyGems"
67
- else
68
- class TestGemPackageTask < Test::Unit::TestCase
69
- def test_gem_package
70
- gem = Gem::Specification.new do |g|
71
- g.name = "pkgr"
72
- g.version = "1.2.3"
73
- g.files = FileList["x"].resolve
74
- end
75
- pkg = Rake::GemPackageTask.new(gem) do |p|
76
- p.package_files << "y"
77
- end
78
- assert_equal ["x", "y"], pkg.package_files
79
- end
80
- end
81
- end