rake 10.5.0 → 13.0.3

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 (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