rake 0.9.2.2 → 13.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +7 -0
  2. data/History.rdoc +2403 -0
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +64 -106
  5. data/doc/command_line_usage.rdoc +65 -21
  6. data/doc/glossary.rdoc +40 -49
  7. data/doc/jamis.rb +1 -0
  8. data/doc/rake.1 +156 -0
  9. data/doc/rakefile.rdoc +127 -62
  10. data/{bin → exe}/rake +1 -7
  11. data/lib/rake/application.rb +507 -271
  12. data/lib/rake/backtrace.rb +24 -0
  13. data/lib/rake/clean.rb +54 -8
  14. data/lib/rake/cloneable.rb +11 -19
  15. data/lib/rake/cpu_counter.rb +107 -0
  16. data/lib/rake/default_loader.rb +5 -0
  17. data/lib/rake/dsl_definition.rb +67 -48
  18. data/lib/rake/early_time.rb +5 -1
  19. data/lib/rake/ext/core.rb +5 -6
  20. data/lib/rake/ext/string.rb +61 -52
  21. data/lib/rake/file_creation_task.rb +4 -3
  22. data/lib/rake/file_list.rb +81 -49
  23. data/lib/rake/file_task.rb +15 -8
  24. data/lib/rake/file_utils.rb +63 -43
  25. data/lib/rake/file_utils_ext.rb +14 -25
  26. data/lib/rake/invocation_chain.rb +25 -19
  27. data/lib/rake/invocation_exception_mixin.rb +1 -0
  28. data/lib/rake/late_time.rb +18 -0
  29. data/lib/rake/linked_list.rb +112 -0
  30. data/lib/rake/loaders/makefile.rb +23 -9
  31. data/lib/rake/multi_task.rb +4 -6
  32. data/lib/rake/name_space.rb +36 -23
  33. data/lib/rake/packagetask.rb +71 -34
  34. data/lib/rake/phony.rb +16 -0
  35. data/lib/rake/private_reader.rb +21 -0
  36. data/lib/rake/promise.rb +100 -0
  37. data/lib/rake/pseudo_status.rb +8 -2
  38. data/lib/rake/rake_module.rb +41 -3
  39. data/lib/rake/rake_test_loader.rb +9 -4
  40. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  41. data/lib/rake/scope.rb +43 -0
  42. data/lib/rake/task.rb +186 -79
  43. data/lib/rake/task_argument_error.rb +1 -0
  44. data/lib/rake/task_arguments.rb +46 -15
  45. data/lib/rake/task_manager.rb +91 -67
  46. data/lib/rake/tasklib.rb +2 -12
  47. data/lib/rake/testtask.rb +61 -63
  48. data/lib/rake/thread_history_display.rb +49 -0
  49. data/lib/rake/thread_pool.rb +163 -0
  50. data/lib/rake/trace_output.rb +23 -0
  51. data/lib/rake/version.rb +5 -3
  52. data/lib/rake/win32.rb +14 -18
  53. data/lib/rake.rb +35 -33
  54. data/rake.gemspec +100 -0
  55. metadata +74 -176
  56. data/.gemtest +0 -0
  57. data/CHANGES +0 -522
  58. data/Rakefile +0 -369
  59. data/TODO +0 -20
  60. data/doc/rake.1.gz +0 -0
  61. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  62. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  63. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  64. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  65. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  66. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  67. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  68. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  69. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  70. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  71. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  72. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  73. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  74. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  75. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  76. data/doc/release_notes/rake-0.8.6.rdoc +0 -55
  77. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  78. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  79. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  80. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  81. data/install.rb +0 -90
  82. data/lib/rake/alt_system.rb +0 -109
  83. data/lib/rake/classic_namespace.rb +0 -11
  84. data/lib/rake/contrib/compositepublisher.rb +0 -21
  85. data/lib/rake/contrib/ftptools.rb +0 -150
  86. data/lib/rake/contrib/publisher.rb +0 -73
  87. data/lib/rake/contrib/rubyforgepublisher.rb +0 -16
  88. data/lib/rake/contrib/sshpublisher.rb +0 -50
  89. data/lib/rake/contrib/sys.rb +0 -191
  90. data/lib/rake/ext/module.rb +0 -39
  91. data/lib/rake/ext/time.rb +0 -14
  92. data/lib/rake/gempackagetask.rb +0 -15
  93. data/lib/rake/pathmap.rb +0 -1
  94. data/lib/rake/rdoctask.rb +0 -234
  95. data/lib/rake/ruby182_test_unit_fix.rb +0 -25
  96. data/lib/rake/runtest.rb +0 -21
  97. data/test/file_creation.rb +0 -34
  98. data/test/helper.rb +0 -492
  99. data/test/test_rake.rb +0 -40
  100. data/test/test_rake_application.rb +0 -489
  101. data/test/test_rake_application_options.rb +0 -335
  102. data/test/test_rake_clean.rb +0 -14
  103. data/test/test_rake_definitions.rb +0 -80
  104. data/test/test_rake_directory_task.rb +0 -46
  105. data/test/test_rake_dsl.rb +0 -77
  106. data/test/test_rake_early_time.rb +0 -31
  107. data/test/test_rake_extension.rb +0 -59
  108. data/test/test_rake_file_creation_task.rb +0 -56
  109. data/test/test_rake_file_list.rb +0 -628
  110. data/test/test_rake_file_list_path_map.rb +0 -8
  111. data/test/test_rake_file_task.rb +0 -102
  112. data/test/test_rake_file_utils.rb +0 -305
  113. data/test/test_rake_ftp_file.rb +0 -59
  114. data/test/test_rake_functional.rb +0 -450
  115. data/test/test_rake_invocation_chain.rb +0 -52
  116. data/test/test_rake_makefile_loader.rb +0 -44
  117. data/test/test_rake_multi_task.rb +0 -51
  118. data/test/test_rake_name_space.rb +0 -43
  119. data/test/test_rake_package_task.rb +0 -79
  120. data/test/test_rake_path_map.rb +0 -157
  121. data/test/test_rake_path_map_explode.rb +0 -34
  122. data/test/test_rake_path_map_partial.rb +0 -18
  123. data/test/test_rake_pseudo_status.rb +0 -21
  124. data/test/test_rake_rake_test_loader.rb +0 -21
  125. data/test/test_rake_rdoc_task.rb +0 -83
  126. data/test/test_rake_require.rb +0 -40
  127. data/test/test_rake_rules.rb +0 -327
  128. data/test/test_rake_task.rb +0 -267
  129. data/test/test_rake_task_argument_parsing.rb +0 -103
  130. data/test/test_rake_task_arguments.rb +0 -88
  131. data/test/test_rake_task_lib.rb +0 -9
  132. data/test/test_rake_task_manager.rb +0 -157
  133. data/test/test_rake_task_manager_argument_resolution.rb +0 -36
  134. data/test/test_rake_task_with_arguments.rb +0 -173
  135. data/test/test_rake_test_task.rb +0 -120
  136. data/test/test_rake_top_level_functions.rb +0 -111
  137. data/test/test_rake_win32.rb +0 -72
  138. data/test/test_sys.rb +0 -20
data/test/helper.rb DELETED
@@ -1,492 +0,0 @@
1
- require 'rubygems'
2
-
3
- begin
4
- gem 'minitest'
5
- rescue Gem::LoadError
6
- end
7
-
8
- require 'minitest/autorun'
9
- require 'rake'
10
- require 'tmpdir'
11
- require File.expand_path('../file_creation', __FILE__)
12
-
13
- begin
14
- require 'test/ruby/envutil'
15
- rescue LoadError
16
- # for ruby trunk
17
- end
18
-
19
- class Rake::TestCase < MiniTest::Unit::TestCase
20
- include FileCreation
21
-
22
- include Rake::DSL
23
-
24
- class TaskManager
25
- include Rake::TaskManager
26
- end
27
-
28
- RUBY = defined?(EnvUtil) ? EnvUtil.rubybin : Gem.ruby
29
-
30
- def setup
31
- ARGV.clear
32
-
33
- @orig_PWD = Dir.pwd
34
- @orig_APPDATA = ENV['APPDATA']
35
- @orig_HOME = ENV['HOME']
36
- @orig_HOMEDRIVE = ENV['HOMEDRIVE']
37
- @orig_HOMEPATH = ENV['HOMEPATH']
38
- @orig_RAKE_COLUMNS = ENV['RAKE_COLUMNS']
39
- @orig_RAKE_SYSTEM = ENV['RAKE_SYSTEM']
40
- @orig_RAKEOPT = ENV['RAKEOPT']
41
- @orig_USERPROFILE = ENV['USERPROFILE']
42
- ENV.delete 'RAKE_COLUMNS'
43
- ENV.delete 'RAKE_SYSTEM'
44
- ENV.delete 'RAKEOPT'
45
-
46
- tmpdir = Dir.chdir Dir.tmpdir do Dir.pwd end
47
- @tempdir = File.join tmpdir, "test_rake_#{$$}"
48
-
49
- FileUtils.mkdir_p @tempdir
50
-
51
- Dir.chdir @tempdir
52
-
53
- Rake.application = Rake::Application.new
54
- Rake::TaskManager.record_task_metadata = true
55
- RakeFileUtils.verbose_flag = false
56
- end
57
-
58
- def teardown
59
- Dir.chdir @orig_PWD
60
- FileUtils.rm_rf @tempdir
61
-
62
- if @orig_APPDATA then
63
- ENV['APPDATA'] = @orig_APPDATA
64
- else
65
- ENV.delete 'APPDATA'
66
- end
67
-
68
- ENV['HOME'] = @orig_HOME
69
- ENV['HOMEDRIVE'] = @orig_HOMEDRIVE
70
- ENV['HOMEPATH'] = @orig_HOMEPATH
71
- ENV['RAKE_COLUMNS'] = @orig_RAKE_COLUMNS
72
- ENV['RAKE_SYSTEM'] = @orig_RAKE_SYSTEM
73
- ENV['RAKEOPT'] = @orig_RAKEOPT
74
- ENV['USERPROFILE'] = @orig_USERPROFILE
75
- end
76
-
77
- def ignore_deprecations
78
- Rake.application.options.ignore_deprecate = true
79
- yield
80
- ensure
81
- Rake.application.options.ignore_deprecate = false
82
- end
83
-
84
- def rake_system_dir
85
- @system_dir = 'system'
86
-
87
- FileUtils.mkdir_p @system_dir
88
-
89
- open File.join(@system_dir, 'sys1.rake'), 'w' do |io|
90
- io << <<-SYS
91
- task "sys1" do
92
- puts "SYS1"
93
- end
94
- SYS
95
- end
96
-
97
- ENV['RAKE_SYSTEM'] = @system_dir
98
- end
99
-
100
- def rakefile contents
101
- open 'Rakefile', 'w' do |io|
102
- io << contents
103
- end
104
- end
105
-
106
- def rakefile_access
107
- rakefile <<-ACCESS
108
- TOP_LEVEL_CONSTANT = 0
109
-
110
- def a_top_level_function
111
- end
112
-
113
- task :default => [:work, :obj, :const]
114
-
115
- task :work do
116
- begin
117
- a_top_level_function
118
- puts "GOOD:M Top level methods can be called in tasks"
119
- rescue NameError => ex
120
- puts "BAD:M Top level methods can not be called in tasks"
121
- end
122
- end
123
-
124
- # TODO: remove `disabled_' when DeprecatedObjectDSL removed
125
- task :obj
126
- task :disabled_obj do
127
- begin
128
- Object.new.instance_eval { task :xyzzy }
129
- puts "BAD:D Rake DSL are polluting objects"
130
- rescue StandardError => ex
131
- puts "GOOD:D Rake DSL are not polluting objects"
132
- end
133
- end
134
-
135
- task :const do
136
- begin
137
- TOP_LEVEL_CONSTANT
138
- puts "GOOD:C Top level constants are available in tasks"
139
- rescue StandardError => ex
140
- puts "BAD:C Top level constants are NOT available in tasks"
141
- end
142
- end
143
- ACCESS
144
- end
145
-
146
- def rakefile_chains
147
- rakefile <<-DEFAULT
148
- task :default => "play.app"
149
-
150
- file "play.scpt" => "base" do |t|
151
- cp t.prerequisites.first, t.name
152
- end
153
-
154
- rule ".app" => ".scpt" do |t|
155
- cp t.source, t.name
156
- end
157
-
158
- file 'base' do
159
- touch 'base'
160
- end
161
- DEFAULT
162
- end
163
-
164
- def rakefile_comments
165
- rakefile <<-COMMENTS
166
- # comment for t1
167
- task :t1 do
168
- end
169
-
170
- # no comment or task because there's a blank line
171
-
172
- task :t2 do
173
- end
174
-
175
- desc "override comment for t3"
176
- # this is not the description
177
- multitask :t3 do
178
- end
179
-
180
- # this is not the description
181
- desc "override comment for t4"
182
- file :t4 do
183
- end
184
- COMMENTS
185
- end
186
-
187
- def rakefile_default
188
- rakefile <<-DEFAULT
189
- if ENV['TESTTOPSCOPE']
190
- puts "TOPSCOPE"
191
- end
192
-
193
- task :default do
194
- puts "DEFAULT"
195
- end
196
-
197
- task :other => [:default] do
198
- puts "OTHER"
199
- end
200
-
201
- task :task_scope do
202
- if ENV['TESTTASKSCOPE']
203
- puts "TASKSCOPE"
204
- end
205
- end
206
- DEFAULT
207
- end
208
-
209
- def rakefile_dryrun
210
- rakefile <<-DRYRUN
211
- task :default => ["temp_main"]
212
-
213
- file "temp_main" => [:all_apps] do touch "temp_main" end
214
-
215
- task :all_apps => [:one, :two]
216
- task :one => ["temp_one"]
217
- task :two => ["temp_two"]
218
-
219
- file "temp_one" do |t|
220
- touch "temp_one"
221
- end
222
- file "temp_two" do |t|
223
- touch "temp_two"
224
- end
225
-
226
- task :clean do
227
- ["temp_one", "temp_two", "temp_main"].each do |file|
228
- rm_f file
229
- end
230
- end
231
- DRYRUN
232
-
233
- FileUtils.touch 'temp_main'
234
- FileUtils.touch 'temp_two'
235
- end
236
-
237
- def rakefile_extra
238
- rakefile 'task :default'
239
-
240
- FileUtils.mkdir_p 'rakelib'
241
-
242
- open File.join('rakelib', 'extra.rake'), 'w' do |io|
243
- io << <<-EXTRA_RAKE
244
- # Added for testing
245
-
246
- namespace :extra do
247
- desc "An Extra Task"
248
- task :extra do
249
- puts "Read all about it"
250
- end
251
- end
252
- EXTRA_RAKE
253
- end
254
- end
255
-
256
- def rakefile_file_creation
257
- rakefile <<-'FILE_CREATION'
258
- N = 2
259
-
260
- task :default => :run
261
-
262
- BUILD_DIR = 'build'
263
- task :clean do
264
- rm_rf 'build'
265
- rm_rf 'src'
266
- end
267
-
268
- task :run
269
-
270
- TARGET_DIR = 'build/copies'
271
-
272
- FileList['src/*'].each do |src|
273
- directory TARGET_DIR
274
- target = File.join TARGET_DIR, File.basename(src)
275
- file target => [src, TARGET_DIR] do
276
- cp src, target
277
- # sleep 3 if src !~ /foo#{N-1}$/ # I'm commenting out this sleep, it doesn't seem to do anything.
278
- end
279
- task :run => target
280
- end
281
-
282
- task :prep => :clean do
283
- mkdir_p 'src'
284
- N.times do |n|
285
- touch "src/foo#{n}"
286
- end
287
- end
288
- FILE_CREATION
289
- end
290
-
291
- def rakefile_imports
292
- rakefile <<-IMPORTS
293
- require 'rake/loaders/makefile'
294
-
295
- task :default
296
-
297
- task :other do
298
- puts "OTHER"
299
- end
300
-
301
- file "dynamic_deps" do |t|
302
- open(t.name, "w") do |f| f.puts "puts 'DYNAMIC'" end
303
- end
304
-
305
- import "dynamic_deps"
306
- import "static_deps"
307
- import "static_deps"
308
- import "deps.mf"
309
- puts "FIRST"
310
- IMPORTS
311
-
312
- open 'deps.mf', 'w' do |io|
313
- io << <<-DEPS
314
- default: other
315
- DEPS
316
- end
317
-
318
- open "static_deps", "w" do |f|
319
- f.puts 'puts "STATIC"'
320
- end
321
- end
322
-
323
- def rakefile_multidesc
324
- rakefile <<-MULTIDESC
325
- task :b
326
-
327
- desc "A"
328
- task :a
329
-
330
- desc "B"
331
- task :b
332
-
333
- desc "A2"
334
- task :a
335
-
336
- task :c
337
-
338
- desc "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
339
- task :d
340
- MULTIDESC
341
- end
342
-
343
- def rakefile_namespace
344
- rakefile <<-NAMESPACE
345
- desc "copy"
346
- task :copy do
347
- puts "COPY"
348
- end
349
-
350
- namespace "nest" do
351
- desc "nest copy"
352
- task :copy do
353
- puts "NEST COPY"
354
- end
355
- task :xx => :copy
356
- end
357
-
358
- anon_ns = namespace do
359
- desc "anonymous copy task"
360
- task :copy do
361
- puts "ANON COPY"
362
- end
363
- end
364
-
365
- desc "Top level task to run the anonymous version of copy"
366
- task :anon => anon_ns[:copy]
367
-
368
- namespace "very" do
369
- namespace "nested" do
370
- task "run" => "rake:copy"
371
- end
372
- end
373
-
374
- namespace "a" do
375
- desc "Run task in the 'a' namespace"
376
- task "run" do
377
- puts "IN A"
378
- end
379
- end
380
-
381
- namespace "b" do
382
- desc "Run task in the 'b' namespace"
383
- task "run" => "a:run" do
384
- puts "IN B"
385
- end
386
- end
387
-
388
- namespace "file1" do
389
- file "xyz.rb" do
390
- puts "XYZ1"
391
- end
392
- end
393
-
394
- namespace "file2" do
395
- file "xyz.rb" do
396
- puts "XYZ2"
397
- end
398
- end
399
-
400
- namespace "scopedep" do
401
- task :prepare do
402
- touch "scopedep.rb"
403
- puts "PREPARE"
404
- end
405
- file "scopedep.rb" => [:prepare] do
406
- puts "SCOPEDEP"
407
- end
408
- end
409
- NAMESPACE
410
- end
411
-
412
- def rakefile_nosearch
413
- FileUtils.touch 'dummy'
414
- end
415
-
416
- def rakefile_rakelib
417
- FileUtils.mkdir_p 'rakelib'
418
-
419
- Dir.chdir 'rakelib' do
420
- open 'test1.rb', 'w' do |io|
421
- io << <<-TEST1
422
- task :default do
423
- puts "TEST1"
424
- end
425
- TEST1
426
- end
427
-
428
- open 'test2.rake', 'w' do |io|
429
- io << <<-TEST1
430
- task :default do
431
- puts "TEST2"
432
- end
433
- TEST1
434
- end
435
- end
436
- end
437
-
438
- def rakefile_rbext
439
- open 'rakefile.rb', 'w' do |io|
440
- io << 'task :default do puts "OK" end'
441
- end
442
- end
443
-
444
- def rakefile_unittest
445
- rakefile '# Empty Rakefile for Unit Test'
446
-
447
- readme = File.join 'subdir', 'README'
448
- FileUtils.mkdir_p File.dirname readme
449
-
450
- FileUtils.touch readme
451
- end
452
-
453
- def rakefile_verbose
454
- rakefile <<-VERBOSE
455
- task :standalone_verbose_true do
456
- verbose true
457
- sh "#{RUBY} -e '0'"
458
- end
459
-
460
- task :standalone_verbose_false do
461
- verbose false
462
- sh "#{RUBY} -e '0'"
463
- end
464
-
465
- task :inline_verbose_default do
466
- sh "#{RUBY} -e '0'"
467
- end
468
-
469
- task :inline_verbose_false do
470
- sh "#{RUBY} -e '0'", :verbose => false
471
- end
472
-
473
- task :inline_verbose_true do
474
- sh "#{RUBY} -e '0'", :verbose => true
475
- end
476
-
477
- task :block_verbose_true do
478
- verbose(true) do
479
- sh "#{RUBY} -e '0'"
480
- end
481
- end
482
-
483
- task :block_verbose_false do
484
- verbose(false) do
485
- sh "#{RUBY} -e '0'"
486
- end
487
- end
488
- VERBOSE
489
- end
490
-
491
- end
492
-
data/test/test_rake.rb DELETED
@@ -1,40 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRake < Rake::TestCase
4
- def test_each_dir_parent
5
- assert_equal ['a'], alldirs('a')
6
- assert_equal ['a/b', 'a'], alldirs('a/b')
7
- assert_equal ['/a/b', '/a', '/'], alldirs('/a/b')
8
- if File.dirname("c:/foo") == "c:"
9
- # Under Unix
10
- assert_equal ['c:/a/b', 'c:/a', 'c:'], alldirs('c:/a/b')
11
- assert_equal ['c:a/b', 'c:a'], alldirs('c:a/b')
12
- else
13
- # Under Windows
14
- assert_equal ['c:/a/b', 'c:/a', 'c:/'], alldirs('c:/a/b')
15
- assert_equal ['c:a/b', 'c:a'], alldirs('c:a/b')
16
- end
17
- end
18
-
19
- def alldirs(fn)
20
- result = []
21
- Rake.each_dir_parent(fn) { |d| result << d }
22
- result
23
- end
24
-
25
- def test_can_override_application
26
- old_app = Rake.application
27
- fake_app = Object.new
28
- Rake.application = fake_app
29
-
30
- assert_equal fake_app, Rake.application
31
-
32
- ensure
33
- Rake.application = old_app
34
- end
35
-
36
- def test_original_dir_reports_current_dir
37
- assert_equal @tempdir, Rake.original_dir
38
- end
39
-
40
- end