rake 10.5.0 → 13.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +13 -8
  3. data/Gemfile +10 -0
  4. data/History.rdoc +2015 -288
  5. data/README.rdoc +40 -24
  6. data/Rakefile +25 -65
  7. data/bin/bundle +105 -0
  8. data/bin/console +7 -0
  9. data/bin/rake +20 -24
  10. data/bin/rdoc +29 -0
  11. data/bin/rubocop +29 -0
  12. data/bin/setup +6 -0
  13. data/doc/jamis.rb +1 -0
  14. data/doc/rake.1 +139 -124
  15. data/doc/rakefile.rdoc +2 -4
  16. data/exe/rake +27 -0
  17. data/lib/rake.rb +35 -43
  18. data/lib/rake/application.rb +124 -90
  19. data/lib/rake/backtrace.rb +3 -2
  20. data/lib/rake/clean.rb +7 -5
  21. data/lib/rake/cloneable.rb +1 -0
  22. data/lib/rake/cpu_counter.rb +10 -28
  23. data/lib/rake/default_loader.rb +1 -0
  24. data/lib/rake/dsl_definition.rb +5 -11
  25. data/lib/rake/early_time.rb +1 -0
  26. data/lib/rake/ext/core.rb +1 -0
  27. data/lib/rake/ext/string.rb +22 -21
  28. data/lib/rake/file_creation_task.rb +4 -3
  29. data/lib/rake/file_list.rb +34 -27
  30. data/lib/rake/file_task.rb +12 -4
  31. data/lib/rake/file_utils.rb +38 -32
  32. data/lib/rake/file_utils_ext.rb +8 -18
  33. data/lib/rake/invocation_chain.rb +1 -0
  34. data/lib/rake/invocation_exception_mixin.rb +1 -0
  35. data/lib/rake/late_time.rb +2 -1
  36. data/lib/rake/linked_list.rb +24 -15
  37. data/lib/rake/loaders/makefile.rb +5 -4
  38. data/lib/rake/multi_task.rb +2 -1
  39. data/lib/rake/name_space.rb +1 -1
  40. data/lib/rake/packagetask.rb +40 -17
  41. data/lib/rake/phony.rb +2 -1
  42. data/lib/rake/private_reader.rb +1 -0
  43. data/lib/rake/promise.rb +13 -12
  44. data/lib/rake/pseudo_status.rb +1 -0
  45. data/lib/rake/rake_module.rb +30 -1
  46. data/lib/rake/rake_test_loader.rb +18 -13
  47. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  48. data/lib/rake/scope.rb +3 -2
  49. data/lib/rake/task.rb +82 -31
  50. data/lib/rake/task_argument_error.rb +1 -0
  51. data/lib/rake/task_arguments.rb +15 -4
  52. data/lib/rake/task_manager.rb +54 -30
  53. data/lib/rake/tasklib.rb +2 -14
  54. data/lib/rake/testtask.rb +37 -61
  55. data/lib/rake/thread_history_display.rb +4 -3
  56. data/lib/rake/thread_pool.rb +16 -17
  57. data/lib/rake/trace_output.rb +2 -1
  58. data/lib/rake/version.rb +4 -1
  59. data/lib/rake/win32.rb +10 -15
  60. data/rake.gemspec +43 -0
  61. metadata +32 -219
  62. data/.autotest +0 -7
  63. data/.rubocop.yml +0 -27
  64. data/.togglerc +0 -7
  65. data/Manifest.txt +0 -166
  66. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  67. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  68. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  69. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  70. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  71. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  72. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  73. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  74. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  75. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  76. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  77. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  78. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  79. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  80. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  81. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  82. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  83. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  84. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  85. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  86. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  87. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  88. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  89. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  90. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  91. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  92. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  93. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  94. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  95. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  96. data/lib/rake/alt_system.rb +0 -110
  97. data/lib/rake/contrib/.document +0 -1
  98. data/lib/rake/contrib/compositepublisher.rb +0 -21
  99. data/lib/rake/contrib/ftptools.rb +0 -137
  100. data/lib/rake/contrib/publisher.rb +0 -81
  101. data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  102. data/lib/rake/contrib/sshpublisher.rb +0 -61
  103. data/lib/rake/contrib/sys.rb +0 -4
  104. data/lib/rake/ext/module.rb +0 -2
  105. data/lib/rake/ext/pathname.rb +0 -25
  106. data/lib/rake/ext/time.rb +0 -18
  107. data/lib/rake/gempackagetask.rb +0 -4
  108. data/lib/rake/pathmap.rb +0 -3
  109. data/lib/rake/rdoctask.rb +0 -4
  110. data/lib/rake/ruby182_test_unit_fix.rb +0 -29
  111. data/lib/rake/runtest.rb +0 -27
  112. data/rakelib/publish.rake +0 -20
  113. data/rakelib/test_times.rake +0 -25
  114. data/test/file_creation.rb +0 -34
  115. data/test/helper.rb +0 -129
  116. data/test/support/rakefile_definitions.rb +0 -478
  117. data/test/support/ruby_runner.rb +0 -34
  118. data/test/test_private_reader.rb +0 -42
  119. data/test/test_rake.rb +0 -40
  120. data/test/test_rake_application.rb +0 -643
  121. data/test/test_rake_application_options.rb +0 -468
  122. data/test/test_rake_backtrace.rb +0 -119
  123. data/test/test_rake_clean.rb +0 -61
  124. data/test/test_rake_cpu_counter.rb +0 -68
  125. data/test/test_rake_definitions.rb +0 -84
  126. data/test/test_rake_directory_task.rb +0 -76
  127. data/test/test_rake_dsl.rb +0 -40
  128. data/test/test_rake_early_time.rb +0 -31
  129. data/test/test_rake_extension.rb +0 -59
  130. data/test/test_rake_file_creation_task.rb +0 -56
  131. data/test/test_rake_file_list.rb +0 -670
  132. data/test/test_rake_file_list_path_map.rb +0 -8
  133. data/test/test_rake_file_task.rb +0 -197
  134. data/test/test_rake_file_utils.rb +0 -314
  135. data/test/test_rake_ftp_file.rb +0 -74
  136. data/test/test_rake_functional.rb +0 -482
  137. data/test/test_rake_invocation_chain.rb +0 -64
  138. data/test/test_rake_late_time.rb +0 -18
  139. data/test/test_rake_linked_list.rb +0 -84
  140. data/test/test_rake_makefile_loader.rb +0 -46
  141. data/test/test_rake_multi_task.rb +0 -64
  142. data/test/test_rake_name_space.rb +0 -57
  143. data/test/test_rake_package_task.rb +0 -79
  144. data/test/test_rake_path_map.rb +0 -168
  145. data/test/test_rake_path_map_explode.rb +0 -34
  146. data/test/test_rake_path_map_partial.rb +0 -18
  147. data/test/test_rake_pathname_extensions.rb +0 -15
  148. data/test/test_rake_pseudo_status.rb +0 -21
  149. data/test/test_rake_rake_test_loader.rb +0 -20
  150. data/test/test_rake_reduce_compat.rb +0 -26
  151. data/test/test_rake_require.rb +0 -40
  152. data/test/test_rake_rules.rb +0 -388
  153. data/test/test_rake_scope.rb +0 -44
  154. data/test/test_rake_task.rb +0 -393
  155. data/test/test_rake_task_argument_parsing.rb +0 -119
  156. data/test/test_rake_task_arguments.rb +0 -127
  157. data/test/test_rake_task_lib.rb +0 -9
  158. data/test/test_rake_task_manager.rb +0 -178
  159. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  160. data/test/test_rake_task_with_arguments.rb +0 -172
  161. data/test/test_rake_test_task.rb +0 -146
  162. data/test/test_rake_thread_pool.rb +0 -145
  163. data/test/test_rake_top_level_functions.rb +0 -71
  164. data/test/test_rake_win32.rb +0 -72
  165. data/test/test_thread_history_display.rb +0 -101
  166. data/test/test_trace_output.rb +0 -52
@@ -1,81 +0,0 @@
1
- # Copyright 2003-2010 by Jim Weirich (jim.weirich@gmail.com)
2
- # All rights reserved.
3
-
4
- # :stopdoc:
5
-
6
- # Configuration information about an upload host system.
7
- # name :: Name of host system.
8
- # webdir :: Base directory for the web information for the
9
- # application. The application name (APP) is appended to
10
- # this directory before using.
11
- # pkgdir :: Directory on the host system where packages can be
12
- # placed.
13
- HostInfo = Struct.new(:name, :webdir, :pkgdir)
14
-
15
- # :startdoc:
16
-
17
- # TODO: Move to contrib/sshpublisher
18
- #--
19
- # Manage several publishers as a single entity.
20
- class CompositePublisher # :nodoc:
21
- def initialize
22
- @publishers = []
23
- end
24
-
25
- # Add a publisher to the composite.
26
- def add(pub)
27
- @publishers << pub
28
- end
29
-
30
- # Upload all the individual publishers.
31
- def upload
32
- @publishers.each { |p| p.upload }
33
- end
34
- end
35
-
36
- # TODO: Remove in Rake 11, duplicated
37
- #--
38
- # Publish an entire directory to an existing remote directory using
39
- # SSH.
40
- class SshDirPublisher # :nodoc: all
41
- def initialize(host, remote_dir, local_dir)
42
- @host = host
43
- @remote_dir = remote_dir
44
- @local_dir = local_dir
45
- end
46
-
47
- def upload
48
- run %{scp -rq #{@local_dir}/* #{@host}:#{@remote_dir}}
49
- end
50
- end
51
-
52
- # TODO: Remove in Rake 11, duplicated
53
- #--
54
- # Publish an entire directory to a fresh remote directory using SSH.
55
- class SshFreshDirPublisher < SshDirPublisher # :nodoc: all
56
- def upload
57
- run %{ssh #{@host} rm -rf #{@remote_dir}} rescue nil
58
- run %{ssh #{@host} mkdir #{@remote_dir}}
59
- super
60
- end
61
- end
62
-
63
- # TODO: Remove in Rake 11, duplicated
64
- #--
65
- # Publish a list of files to an existing remote directory.
66
- class SshFilePublisher # :nodoc: all
67
- # Create a publisher using the give host information.
68
- def initialize(host, remote_dir, local_dir, *files)
69
- @host = host
70
- @remote_dir = remote_dir
71
- @local_dir = local_dir
72
- @files = files
73
- end
74
-
75
- # Upload the local directory to the remote directory.
76
- def upload
77
- @files.each do |fn|
78
- run %{scp -q #{@local_dir}/#{fn} #{@host}:#{@remote_dir}}
79
- end
80
- end
81
- end
@@ -1,18 +0,0 @@
1
- # TODO: Remove in Rake 11
2
-
3
- require 'rake/contrib/sshpublisher'
4
-
5
- module Rake
6
-
7
- class RubyForgePublisher < SshDirPublisher # :nodoc: all
8
- attr_reader :project, :proj_id, :user
9
-
10
- def initialize(projname, user)
11
- super(
12
- "#{user}@rubyforge.org",
13
- "/var/www/gforge-projects/#{projname}",
14
- "html")
15
- end
16
- end
17
-
18
- end
@@ -1,61 +0,0 @@
1
- require 'rake/dsl_definition'
2
- require 'rake/contrib/compositepublisher'
3
-
4
- module Rake
5
-
6
- # Publish an entire directory to an existing remote directory using
7
- # SSH.
8
- class SshDirPublisher
9
- include Rake::DSL
10
-
11
- # Creates an SSH publisher which will scp all files in +local_dir+ to
12
- # +remote_dir+ on +host+
13
-
14
- def initialize(host, remote_dir, local_dir)
15
- @host = host
16
- @remote_dir = remote_dir
17
- @local_dir = local_dir
18
- end
19
-
20
- # Uploads the files
21
-
22
- def upload
23
- sh "scp", "-rq", "#{@local_dir}/*", "#{@host}:#{@remote_dir}"
24
- end
25
- end
26
-
27
- # Publish an entire directory to a fresh remote directory using SSH.
28
- class SshFreshDirPublisher < SshDirPublisher
29
-
30
- # Uploads the files after removing the existing remote directory.
31
-
32
- def upload
33
- sh "ssh", @host, "rm", "-rf", @remote_dir rescue nil
34
- sh "ssh", @host, "mkdir", @remote_dir
35
- super
36
- end
37
- end
38
-
39
- # Publish a list of files to an existing remote directory.
40
- class SshFilePublisher
41
- include Rake::DSL
42
-
43
- # Creates an SSH publisher which will scp all +files+ in +local_dir+ to
44
- # +remote_dir+ on +host+.
45
-
46
- def initialize(host, remote_dir, local_dir, *files)
47
- @host = host
48
- @remote_dir = remote_dir
49
- @local_dir = local_dir
50
- @files = files
51
- end
52
-
53
- # Uploads the files
54
-
55
- def upload
56
- @files.each do |fn|
57
- sh "scp", "-q", "#{@local_dir}/#{fn}", "#{@host}:#{@remote_dir}"
58
- end
59
- end
60
- end
61
- end
@@ -1,4 +0,0 @@
1
- # TODO: Remove in Rake 11
2
-
3
- fail "ERROR: 'rake/contrib/sys' is obsolete and no longer supported. " +
4
- "Use 'FileUtils' instead."
@@ -1,2 +0,0 @@
1
-
2
- # TODO: remove in Rake 11
@@ -1,25 +0,0 @@
1
- require 'rake/ext/core'
2
- require 'pathname'
3
-
4
- class Pathname
5
-
6
- rake_extension("ext") do
7
- # Return a new Pathname with <tt>String#ext</tt> applied to it.
8
- #
9
- # This Pathname extension comes from Rake
10
- def ext(newext='')
11
- Pathname.new(Rake.from_pathname(self).ext(newext))
12
- end
13
- end
14
-
15
- rake_extension("pathmap") do
16
- # Apply the pathmap spec to the Pathname, returning a
17
- # new Pathname with the modified paths. (See String#pathmap for
18
- # details.)
19
- #
20
- # This Pathname extension comes from Rake
21
- def pathmap(spec=nil, &block)
22
- Pathname.new(Rake.from_pathname(self).pathmap(spec, &block))
23
- end
24
- end
25
- end
data/lib/rake/ext/time.rb DELETED
@@ -1,18 +0,0 @@
1
- #--
2
- # Extensions to time to allow comparisons with early and late time classes.
3
-
4
- require 'rake/early_time'
5
- require 'rake/late_time'
6
-
7
- if RUBY_VERSION < "1.9"
8
- class Time # :nodoc: all
9
- alias rake_original_time_compare :<=>
10
- def <=>(other)
11
- if Rake::EarlyTime === other || Rake::LateTime === other
12
- - other.<=>(self)
13
- else
14
- rake_original_time_compare(other)
15
- end
16
- end
17
- end
18
- end
@@ -1,4 +0,0 @@
1
- # TODO: Remove in Rake 11
2
-
3
- fail "ERROR: 'rake/gempackagetask' is obsolete and no longer supported. " +
4
- "Use 'rubygems/package_task' instead."
data/lib/rake/pathmap.rb DELETED
@@ -1,3 +0,0 @@
1
- # TODO: Remove in Rake 11
2
-
3
- require 'rake/ext/string'
data/lib/rake/rdoctask.rb DELETED
@@ -1,4 +0,0 @@
1
- # TODO: Remove in Rake 11
2
-
3
- fail "ERROR: 'rake/rdoctask' is obsolete and no longer supported. " +
4
- "Use 'rdoc/task' (available in RDoc 2.4.2+) instead."
@@ -1,29 +0,0 @@
1
- # TODO: Remove in rake 11
2
-
3
- # Local Rake override to fix bug in Ruby 0.8.2
4
- module Test # :nodoc:
5
- # Local Rake override to fix bug in Ruby 0.8.2
6
- module Unit # :nodoc:
7
- # Local Rake override to fix bug in Ruby 0.8.2
8
- module Collector # :nodoc:
9
- # Local Rake override to fix bug in Ruby 0.8.2
10
- class Dir # :nodoc:
11
- undef collect_file
12
- def collect_file(name, suites, already_gathered) # :nodoc:
13
- dir = File.dirname(File.expand_path(name))
14
- $:.unshift(dir) unless $:.first == dir
15
- if @req
16
- @req.require(name)
17
- else
18
- require(name)
19
- end
20
- find_test_cases(already_gathered).each do |t|
21
- add_suite(suites, t.suite)
22
- end
23
- ensure
24
- $:.delete_at $:.rindex(dir)
25
- end
26
- end
27
- end
28
- end
29
- end
data/lib/rake/runtest.rb DELETED
@@ -1,27 +0,0 @@
1
- require 'test/unit'
2
- require 'test/unit/assertions'
3
- require 'rake/file_list'
4
-
5
- module Rake
6
- include Test::Unit::Assertions
7
-
8
- ##
9
- # Deprecated way of running tests in process, but only for Test::Unit.
10
- #--
11
- # TODO: Remove in rake 11
12
-
13
- def run_tests(pattern='test/test*.rb', log_enabled=false) # :nodoc:
14
- FileList.glob(pattern).each do |fn|
15
- $stderr.puts fn if log_enabled
16
- begin
17
- require fn
18
- rescue Exception => ex
19
- $stderr.puts "Error in #{fn}: #{ex.message}"
20
- $stderr.puts ex.backtrace
21
- assert false
22
- end
23
- end
24
- end
25
-
26
- extend self
27
- end
data/rakelib/publish.rake DELETED
@@ -1,20 +0,0 @@
1
- # Optional publish task for Rake
2
-
3
- begin
4
- require 'rake/contrib/sshpublisher'
5
- require 'rake/contrib/rubyforgepublisher'
6
-
7
- publisher = Rake::SshDirPublisher.new(
8
- 'linode',
9
- 'htdocs/software/rake',
10
- 'html')
11
-
12
- desc "Publish the Documentation to RubyForge."
13
- task :publish => [:rdoc] do
14
- publisher.upload
15
- end
16
-
17
- rescue LoadError => ex
18
- puts "#{ex.message} (#{ex.class})"
19
- puts "No Publisher Task Available"
20
- end
@@ -1,25 +0,0 @@
1
- module TestTimes
2
- def self.run(test_results, limit=0)
3
- limit = limit.nonzero? || 10
4
- tests = []
5
- test_results.split(/\n/).each do |line|
6
- if line =~ /^(.+?#[^:]+): ([0-9.]+) s: \.$/
7
- tests << [$1, $2.to_f, line]
8
- end
9
- end
10
-
11
- puts "#{limit} Slowest tests"
12
- puts tests.sort_by { |item|
13
- item[1]
14
- }.reverse[0...limit].map { |item|
15
- "%6.3f: %-s\n" % [item[1], item[0]]
16
- }
17
- end
18
- end
19
-
20
- namespace :test do
21
- desc "Find the slowest unit tests"
22
- task :times, [:limit] do |t, args|
23
- TestTimes.run `rake test:units TESTOPTS='--verbose'`, args.limit.to_i
24
- end
25
- end
@@ -1,34 +0,0 @@
1
- module FileCreation
2
- OLDFILE = "old"
3
- NEWFILE = "new"
4
-
5
- def create_timed_files(oldfile, *newfiles)
6
- return if (File.exist?(oldfile) &&
7
- newfiles.all? { |newfile|
8
- File.exist?(newfile) && File.stat(newfile).mtime > File.stat(oldfile).mtime
9
- })
10
- now = Time.now
11
-
12
- create_file(oldfile, now - 60)
13
-
14
- newfiles.each do |newfile|
15
- create_file(newfile, now)
16
- end
17
- end
18
-
19
- def create_dir(dirname)
20
- FileUtils.mkdir_p(dirname) unless File.exist?(dirname)
21
- File.stat(dirname).mtime
22
- end
23
-
24
- def create_file(name, file_time=nil)
25
- create_dir(File.dirname(name))
26
- FileUtils.touch(name) unless File.exist?(name)
27
- File.utime(file_time, file_time, name) unless file_time.nil?
28
- File.stat(name).mtime
29
- end
30
-
31
- def delete_file(name)
32
- File.delete(name) rescue nil
33
- end
34
- end
data/test/helper.rb DELETED
@@ -1,129 +0,0 @@
1
- require 'rubygems'
2
- $:.unshift File.expand_path('../../lib', __FILE__)
3
-
4
- begin
5
- gem 'minitest', '~> 5'
6
- rescue Gem::LoadError
7
- end
8
-
9
- require 'minitest/autorun'
10
- require 'rake'
11
- require 'tmpdir'
12
- require File.expand_path('../file_creation', __FILE__)
13
-
14
-
15
- begin
16
- require_relative 'support/ruby_runner'
17
- require_relative 'support/rakefile_definitions'
18
- rescue NoMethodError, LoadError
19
- # ruby 1.8
20
- require 'test/support/ruby_runner'
21
- require 'test/support/rakefile_definitions'
22
- end
23
-
24
- class Rake::TestCase < Minitest::Test
25
- include FileCreation
26
-
27
- include Rake::DSL
28
-
29
- class TaskManager
30
- include Rake::TaskManager
31
- end
32
-
33
- RUBY = defined?(EnvUtil) ? EnvUtil.rubybin : Gem.ruby
34
-
35
- def setup
36
- ARGV.clear
37
-
38
- test_dir = File.basename File.dirname File.expand_path __FILE__
39
-
40
- @rake_root =
41
- if test_dir == 'test'
42
- # rake repository
43
- File.expand_path '../../', __FILE__
44
- else
45
- # ruby repository
46
- File.expand_path '../../../', __FILE__
47
- end
48
-
49
- @verbose = ENV['VERBOSE']
50
-
51
- @rake_exec = File.join @rake_root, 'bin', 'rake'
52
- @rake_lib = File.join @rake_root, 'lib'
53
- @ruby_options = ["-I#{@rake_lib}", "-I."]
54
-
55
- @orig_pwd = Dir.pwd
56
- @orig_appdata = ENV['APPDATA']
57
- @orig_home = ENV['HOME']
58
- @orig_homedrive = ENV['HOMEDRIVE']
59
- @orig_homepath = ENV['HOMEPATH']
60
- @orig_rake_columns = ENV['RAKE_COLUMNS']
61
- @orig_rake_system = ENV['RAKE_SYSTEM']
62
- @orig_rakeopt = ENV['RAKEOPT']
63
- @orig_userprofile = ENV['USERPROFILE']
64
- ENV.delete 'RAKE_COLUMNS'
65
- ENV.delete 'RAKE_SYSTEM'
66
- ENV.delete 'RAKEOPT'
67
-
68
- tmpdir = Dir.chdir Dir.tmpdir do Dir.pwd end
69
- @tempdir = File.join tmpdir, "test_rake_#{$$}"
70
-
71
- FileUtils.mkdir_p @tempdir
72
-
73
- Dir.chdir @tempdir
74
-
75
- Rake.application = Rake::Application.new
76
- Rake::TaskManager.record_task_metadata = true
77
- RakeFileUtils.verbose_flag = false
78
- end
79
-
80
- def teardown
81
- Dir.chdir @orig_pwd
82
- FileUtils.rm_rf @tempdir
83
-
84
- if @orig_appdata
85
- ENV['APPDATA'] = @orig_appdata
86
- else
87
- ENV.delete 'APPDATA'
88
- end
89
-
90
- ENV['HOME'] = @orig_home
91
- ENV['HOMEDRIVE'] = @orig_homedrive
92
- ENV['HOMEPATH'] = @orig_homepath
93
- ENV['RAKE_COLUMNS'] = @orig_rake_columns
94
- ENV['RAKE_SYSTEM'] = @orig_rake_system
95
- ENV['RAKEOPT'] = @orig_rakeopt
96
- ENV['USERPROFILE'] = @orig_userprofile
97
- end
98
-
99
- def ignore_deprecations
100
- Rake.application.options.ignore_deprecate = true
101
- yield
102
- ensure
103
- Rake.application.options.ignore_deprecate = false
104
- end
105
-
106
- def rake_system_dir
107
- @system_dir = 'system'
108
-
109
- FileUtils.mkdir_p @system_dir
110
-
111
- open File.join(@system_dir, 'sys1.rake'), 'w' do |io|
112
- io << <<-SYS
113
- task "sys1" do
114
- puts "SYS1"
115
- end
116
- SYS
117
- end
118
-
119
- ENV['RAKE_SYSTEM'] = @system_dir
120
- end
121
-
122
- def rakefile(contents)
123
- open 'Rakefile', 'w' do |io|
124
- io << contents
125
- end
126
- end
127
-
128
- include RakefileDefinitions
129
- end