rake 0.8.7 → 0.9.0

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 (124) hide show
  1. data/.gemtest +0 -0
  2. data/CHANGES +77 -9
  3. data/{README → README.rdoc} +14 -10
  4. data/Rakefile +129 -118
  5. data/TODO +1 -1
  6. data/doc/command_line_usage.rdoc +18 -6
  7. data/doc/glossary.rdoc +2 -2
  8. data/doc/jamis.rb +2 -2
  9. data/doc/proto_rake.rdoc +22 -22
  10. data/doc/rake.1.gz +0 -0
  11. data/doc/rakefile.rdoc +55 -32
  12. data/doc/rational.rdoc +6 -6
  13. data/doc/release_notes/rake-0.4.15.rdoc +1 -1
  14. data/doc/release_notes/rake-0.5.0.rdoc +1 -1
  15. data/doc/release_notes/rake-0.7.0.rdoc +1 -1
  16. data/doc/release_notes/rake-0.7.2.rdoc +3 -3
  17. data/doc/release_notes/rake-0.7.3.rdoc +2 -2
  18. data/doc/release_notes/rake-0.8.0.rdoc +1 -1
  19. data/doc/release_notes/rake-0.8.2.rdoc +3 -3
  20. data/doc/release_notes/rake-0.8.3.rdoc +2 -2
  21. data/doc/release_notes/rake-0.8.4.rdoc +1 -1
  22. data/doc/release_notes/rake-0.8.5.rdoc +1 -1
  23. data/doc/release_notes/rake-0.8.6.rdoc +1 -1
  24. data/doc/release_notes/rake-0.8.7.rdoc +1 -1
  25. data/doc/release_notes/rake-0.9.0.rdoc +112 -0
  26. data/install.rb +14 -12
  27. data/lib/rake/alt_system.rb +7 -6
  28. data/lib/rake/application.rb +589 -0
  29. data/lib/rake/classic_namespace.rb +1 -0
  30. data/lib/rake/clean.rb +2 -4
  31. data/lib/rake/cloneable.rb +25 -0
  32. data/lib/rake/contrib/compositepublisher.rb +2 -5
  33. data/lib/rake/contrib/ftptools.rb +5 -8
  34. data/lib/rake/contrib/publisher.rb +2 -8
  35. data/lib/rake/contrib/rubyforgepublisher.rb +2 -4
  36. data/lib/rake/contrib/sshpublisher.rb +4 -6
  37. data/lib/rake/contrib/sys.rb +7 -25
  38. data/lib/rake/default_loader.rb +10 -0
  39. data/lib/rake/dsl.rb +2 -0
  40. data/lib/rake/dsl_definition.rb +143 -0
  41. data/lib/rake/early_time.rb +18 -0
  42. data/lib/rake/ext/core.rb +27 -0
  43. data/lib/rake/ext/module.rb +39 -0
  44. data/lib/rake/ext/string.rb +167 -0
  45. data/lib/rake/ext/time.rb +14 -0
  46. data/lib/rake/file_creation_task.rb +24 -0
  47. data/lib/rake/file_list.rb +403 -0
  48. data/lib/rake/file_task.rb +47 -0
  49. data/lib/rake/file_utils.rb +112 -0
  50. data/lib/rake/file_utils_ext.rb +142 -0
  51. data/lib/rake/gempackagetask.rb +6 -90
  52. data/lib/rake/invocation_chain.rb +51 -0
  53. data/lib/rake/invocation_exception_mixin.rb +16 -0
  54. data/lib/rake/loaders/makefile.rb +13 -15
  55. data/lib/rake/multi_task.rb +16 -0
  56. data/lib/rake/name_space.rb +25 -0
  57. data/lib/rake/packagetask.rb +13 -12
  58. data/lib/rake/pathmap.rb +1 -0
  59. data/lib/rake/pseudo_status.rb +24 -0
  60. data/lib/rake/rake_module.rb +29 -0
  61. data/lib/rake/rake_test_loader.rb +10 -2
  62. data/lib/rake/rdoctask.rb +211 -190
  63. data/lib/rake/ruby182_test_unit_fix.rb +9 -7
  64. data/lib/rake/rule_recursion_overflow_error.rb +20 -0
  65. data/lib/rake/runtest.rb +4 -6
  66. data/lib/rake/task.rb +327 -0
  67. data/lib/rake/task_argument_error.rb +7 -0
  68. data/lib/rake/task_arguments.rb +74 -0
  69. data/lib/rake/task_manager.rb +307 -0
  70. data/lib/rake/tasklib.rb +1 -2
  71. data/lib/rake/testtask.rb +57 -27
  72. data/lib/rake/version.rb +10 -0
  73. data/lib/rake/win32.rb +4 -4
  74. data/lib/rake.rb +29 -2470
  75. data/test/contrib/test_sys.rb +8 -31
  76. data/test/data/access/Rakefile +33 -0
  77. data/test/data/comments/Rakefile +18 -0
  78. data/test/data/default/Rakefile +1 -1
  79. data/test/data/deprecated_import/Rakefile +1 -0
  80. data/test/data/dryrun/Rakefile +1 -1
  81. data/test/data/file_creation_task/Rakefile +1 -1
  82. data/test/data/namespace/Rakefile +9 -0
  83. data/test/data/rakelib/test1.rb +1 -0
  84. data/test/data/verbose/Rakefile +34 -0
  85. data/test/{filecreation.rb → file_creation.rb} +11 -7
  86. data/test/functional/functional_test.rb +25 -0
  87. data/test/{session_functional.rb → functional/session_based_tests.rb} +141 -23
  88. data/test/in_environment.rb +7 -5
  89. data/test/{test_application.rb → lib/application_test.rb} +331 -143
  90. data/test/{test_clean.rb → lib/clean_test.rb} +1 -0
  91. data/test/{test_definitions.rb → lib/definitions_test.rb} +3 -3
  92. data/test/lib/dsl_test.rb +52 -0
  93. data/test/{test_earlytime.rb → lib/earlytime_test.rb} +1 -2
  94. data/test/{test_extension.rb → lib/extension_test.rb} +2 -2
  95. data/test/{test_file_creation_task.rb → lib/file_creation_task_test.rb} +1 -1
  96. data/test/{test_file_task.rb → lib/file_task_test.rb} +4 -4
  97. data/test/{test_filelist.rb → lib/filelist_test.rb} +38 -24
  98. data/test/{test_fileutils.rb → lib/fileutils_test.rb} +27 -22
  99. data/test/{test_multitask.rb → lib/multitask_test.rb} +14 -6
  100. data/test/lib/package_task_test.rb +82 -0
  101. data/test/{test_pathmap.rb → lib/pathmap_test.rb} +3 -2
  102. data/test/{test_rake.rb → lib/rake_test.rb} +1 -1
  103. data/test/{test_rdoc_task.rb → lib/rdoc_task_test.rb} +19 -23
  104. data/test/{test_require.rb → lib/require_test.rb} +8 -2
  105. data/test/{test_rules.rb → lib/rules_test.rb} +2 -3
  106. data/test/{test_task_arguments.rb → lib/task_arguments_test.rb} +5 -5
  107. data/test/{test_task_manager.rb → lib/task_manager_test.rb} +15 -5
  108. data/test/{test_tasks.rb → lib/task_test.rb} +84 -21
  109. data/test/{test_test_task.rb → lib/test_task_test.rb} +3 -3
  110. data/test/lib/testtask_test.rb +49 -0
  111. data/test/{test_top_level_functions.rb → lib/top_level_functions_test.rb} +5 -3
  112. data/test/{test_win32.rb → lib/win32_test.rb} +19 -0
  113. data/test/rake_test_setup.rb +5 -9
  114. data/test/ruby_version_test.rb +3 -0
  115. data/test/test_helper.rb +19 -0
  116. metadata +108 -49
  117. data/test/functional.rb +0 -15
  118. data/test/test_package_task.rb +0 -118
  119. /data/test/{test_ftp.rb → lib/ftp_test.rb} +0 -0
  120. /data/test/{test_invocation_chain.rb → lib/invocation_chain_test.rb} +0 -0
  121. /data/test/{test_makefile_loader.rb → lib/makefile_loader_test.rb} +0 -0
  122. /data/test/{test_namespace.rb → lib/namespace_test.rb} +0 -0
  123. /data/test/{test_pseudo_status.rb → lib/pseudo_status_test.rb} +0 -0
  124. /data/test/{test_tasklib.rb → lib/tasklib_test.rb} +0 -0
data/lib/rake/rdoctask.rb CHANGED
@@ -1,209 +1,230 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rake'
4
- require 'rake/tasklib'
5
-
6
- module Rake
7
-
8
- # Create a documentation task that will generate the RDoc files for
9
- # a project.
10
- #
11
- # The RDocTask will create the following targets:
12
- #
13
- # [<b><em>rdoc</em></b>]
14
- # Main task for this RDOC task.
15
- #
16
- # [<b>:clobber_<em>rdoc</em></b>]
17
- # Delete all the rdoc files. This target is automatically
18
- # added to the main clobber target.
19
- #
20
- # [<b>:re<em>rdoc</em></b>]
21
- # Rebuild the rdoc files from scratch, even if they are not out
22
- # of date.
23
- #
24
- # Simple Example:
25
- #
26
- # Rake::RDocTask.new do |rd|
27
- # rd.main = "README.rdoc"
28
- # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
29
- # end
30
- #
31
- # The +rd+ object passed to the block is an RDocTask object. See the
32
- # attributes list for the RDocTask class for available customization options.
33
- #
34
- # == Specifying different task names
35
- #
36
- # You may wish to give the task a different name, such as if you are
37
- # generating two sets of documentation. For instance, if you want to have a
38
- # development set of documentation including private methods:
39
- #
40
- # Rake::RDocTask.new(:rdoc_dev) do |rd|
41
- # rd.main = "README.doc"
42
- # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
43
- # rd.options << "--all"
44
- # end
45
- #
46
- # The tasks would then be named :<em>rdoc_dev</em>, :clobber_<em>rdoc_dev</em>, and
47
- # :re<em>rdoc_dev</em>.
48
- #
49
- # If you wish to have completely different task names, then pass a Hash as
50
- # first argument. With the <tt>:rdoc</tt>, <tt>:clobber_rdoc</tt> and
51
- # <tt>:rerdoc</tt> options, you can customize the task names to your liking.
52
- # For example:
53
- #
54
- # Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force")
55
- #
56
- # This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc_clean</tt> and
57
- # <tt>:rdoc:force</tt>.
58
- #
59
- class RDocTask < TaskLib
60
- # Name of the main, top level task. (default is :rdoc)
61
- attr_accessor :name
62
-
63
- # Name of directory to receive the html output files. (default is "html")
64
- attr_accessor :rdoc_dir
65
-
66
- # Title of RDoc documentation. (defaults to rdoc's default)
67
- attr_accessor :title
68
-
69
- # Name of file to be used as the main, top level file of the
70
- # RDoc. (default is none)
71
- attr_accessor :main
72
-
73
- # Name of template to be used by rdoc. (defaults to rdoc's default)
74
- attr_accessor :template
75
-
76
- # List of files to be included in the rdoc generation. (default is [])
77
- attr_accessor :rdoc_files
78
-
79
- # Additional list of options to be passed rdoc. (default is [])
80
- attr_accessor :options
81
-
82
- # Whether to run the rdoc process as an external shell (default is false)
83
- attr_accessor :external
84
-
85
- attr_accessor :inline_source
86
-
87
- # Create an RDoc task with the given name. See the RDocTask class overview
88
- # for documentation.
89
- def initialize(name = :rdoc) # :yield: self
90
- if name.is_a?(Hash)
91
- invalid_options = name.keys.map { |k| k.to_sym } - [:rdoc, :clobber_rdoc, :rerdoc]
92
- if !invalid_options.empty?
93
- raise ArgumentError, "Invalid option(s) passed to RDocTask.new: #{invalid_options.join(", ")}"
1
+ # rake/rdoctask is deprecated in favor of rdoc/task
2
+
3
+ warn 'rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)'
4
+
5
+ require 'rubygems'
6
+
7
+ begin
8
+ gem 'rdoc'
9
+ require 'rdoc'
10
+ require 'rdoc/task'
11
+ rescue LoadError, Gem::LoadError
12
+ end
13
+
14
+ if defined?(RDoc::Task) then
15
+ module Rake
16
+ RDocTask = RDoc::Task unless const_defined? :RDocTask
17
+ end
18
+ else
19
+ require 'rake'
20
+ require 'rake/tasklib'
21
+
22
+ module Rake
23
+
24
+ # NOTE: Rake::RDocTask is deprecated in favor of RDoc:Task which is included
25
+ # in RDoc 2.4.2+. Use require 'rdoc/task' to require it.
26
+ #
27
+ # Create a documentation task that will generate the RDoc files for
28
+ # a project.
29
+ #
30
+ # The RDocTask will create the following targets:
31
+ #
32
+ # [<b><em>rdoc</em></b>]
33
+ # Main task for this RDOC task.
34
+ #
35
+ # [<b>:clobber_<em>rdoc</em></b>]
36
+ # Delete all the rdoc files. This target is automatically
37
+ # added to the main clobber target.
38
+ #
39
+ # [<b>:re<em>rdoc</em></b>]
40
+ # Rebuild the rdoc files from scratch, even if they are not out
41
+ # of date.
42
+ #
43
+ # Simple Example:
44
+ #
45
+ # Rake::RDocTask.new do |rd|
46
+ # rd.main = "README.rdoc"
47
+ # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
48
+ # end
49
+ #
50
+ # The +rd+ object passed to the block is an RDocTask object. See the
51
+ # attributes list for the RDocTask class for available customization options.
52
+ #
53
+ # == Specifying different task names
54
+ #
55
+ # You may wish to give the task a different name, such as if you are
56
+ # generating two sets of documentation. For instance, if you want to have a
57
+ # development set of documentation including private methods:
58
+ #
59
+ # Rake::RDocTask.new(:rdoc_dev) do |rd|
60
+ # rd.main = "README.doc"
61
+ # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
62
+ # rd.options << "--all"
63
+ # end
64
+ #
65
+ # The tasks would then be named :<em>rdoc_dev</em>, :clobber_<em>rdoc_dev</em>, and
66
+ # :re<em>rdoc_dev</em>.
67
+ #
68
+ # If you wish to have completely different task names, then pass a Hash as
69
+ # first argument. With the <tt>:rdoc</tt>, <tt>:clobber_rdoc</tt> and
70
+ # <tt>:rerdoc</tt> options, you can customize the task names to your liking.
71
+ # For example:
72
+ #
73
+ # Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force")
74
+ #
75
+ # This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc_clean</tt> and
76
+ # <tt>:rdoc:force</tt>.
77
+ #
78
+ class RDocTask < TaskLib
79
+ # Name of the main, top level task. (default is :rdoc)
80
+ attr_accessor :name
81
+
82
+ # Name of directory to receive the html output files. (default is "html")
83
+ attr_accessor :rdoc_dir
84
+
85
+ # Title of RDoc documentation. (defaults to rdoc's default)
86
+ attr_accessor :title
87
+
88
+ # Name of file to be used as the main, top level file of the
89
+ # RDoc. (default is none)
90
+ attr_accessor :main
91
+
92
+ # Name of template to be used by rdoc. (defaults to rdoc's default)
93
+ attr_accessor :template
94
+
95
+ # List of files to be included in the rdoc generation. (default is [])
96
+ attr_accessor :rdoc_files
97
+
98
+ # Additional list of options to be passed rdoc. (default is [])
99
+ attr_accessor :options
100
+
101
+ # Whether to run the rdoc process as an external shell (default is false)
102
+ attr_accessor :external
103
+
104
+ attr_accessor :inline_source
105
+
106
+ # Create an RDoc task with the given name. See the RDocTask class overview
107
+ # for documentation.
108
+ def initialize(name = :rdoc) # :yield: self
109
+ if name.is_a?(Hash)
110
+ invalid_options = name.keys.map { |k| k.to_sym } - [:rdoc, :clobber_rdoc, :rerdoc]
111
+ if !invalid_options.empty?
112
+ raise ArgumentError, "Invalid option(s) passed to RDocTask.new: #{invalid_options.join(", ")}"
113
+ end
94
114
  end
115
+
116
+ @name = name
117
+ @rdoc_files = Rake::FileList.new
118
+ @rdoc_dir = 'html'
119
+ @main = nil
120
+ @title = nil
121
+ @template = nil
122
+ @external = false
123
+ @inline_source = true
124
+ @options = []
125
+ yield self if block_given?
126
+ define
95
127
  end
96
-
97
- @name = name
98
- @rdoc_files = Rake::FileList.new
99
- @rdoc_dir = 'html'
100
- @main = nil
101
- @title = nil
102
- @template = nil
103
- @external = false
104
- @inline_source = true
105
- @options = []
106
- yield self if block_given?
107
- define
108
- end
109
-
110
- # Create the tasks defined by this task lib.
111
- def define
112
- if rdoc_task_name != "rdoc"
113
- desc "Build the RDOC HTML Files"
114
- else
115
- desc "Build the #{rdoc_task_name} HTML Files"
128
+
129
+ # Create the tasks defined by this task lib.
130
+ def define
131
+ if rdoc_task_name != "rdoc"
132
+ desc "Build the RDOC HTML Files"
133
+ else
134
+ desc "Build the #{rdoc_task_name} HTML Files"
135
+ end
136
+ task rdoc_task_name
137
+
138
+ desc "Force a rebuild of the RDOC files"
139
+ task rerdoc_task_name => [clobber_task_name, rdoc_task_name]
140
+
141
+ desc "Remove rdoc products"
142
+ task clobber_task_name do
143
+ rm_r rdoc_dir rescue nil
144
+ end
145
+
146
+ task :clobber => [clobber_task_name]
147
+
148
+ directory @rdoc_dir
149
+ task rdoc_task_name => [rdoc_target]
150
+ file rdoc_target => @rdoc_files + [Rake.application.rakefile] do
151
+ rm_r @rdoc_dir rescue nil
152
+ @before_running_rdoc.call if @before_running_rdoc
153
+ args = option_list + @rdoc_files
154
+ if @external
155
+ argstring = args.join(' ')
156
+ sh %{ruby -Ivendor vendor/rd #{argstring}}
157
+ else
158
+ require 'rdoc/rdoc'
159
+ RDoc::RDoc.new.document(args)
160
+ end
161
+ end
162
+ self
116
163
  end
117
- task rdoc_task_name
118
-
119
- desc "Force a rebuild of the RDOC files"
120
- task rerdoc_task_name => [clobber_task_name, rdoc_task_name]
121
-
122
- desc "Remove rdoc products"
123
- task clobber_task_name do
124
- rm_r rdoc_dir rescue nil
164
+
165
+ def option_list
166
+ result = @options.dup
167
+ result << "-o" << @rdoc_dir
168
+ result << "--main" << quote(main) if main
169
+ result << "--title" << quote(title) if title
170
+ result << "-T" << quote(template) if template
171
+ result << "--inline-source" if inline_source && !@options.include?("--inline-source") && !@options.include?("-S")
172
+ result
125
173
  end
126
-
127
- task :clobber => [clobber_task_name]
128
-
129
- directory @rdoc_dir
130
- task rdoc_task_name => [rdoc_target]
131
- file rdoc_target => @rdoc_files + [Rake.application.rakefile] do
132
- rm_r @rdoc_dir rescue nil
133
- @before_running_rdoc.call if @before_running_rdoc
134
- args = option_list + @rdoc_files
174
+
175
+ def quote(str)
135
176
  if @external
136
- argstring = args.join(' ')
137
- sh %{ruby -Ivendor vendor/rd #{argstring}}
177
+ "'#{str}'"
138
178
  else
139
- require 'rdoc/rdoc'
140
- RDoc::RDoc.new.document(args)
179
+ str
141
180
  end
142
181
  end
143
- self
144
- end
145
182
 
146
- def option_list
147
- result = @options.dup
148
- result << "-o" << @rdoc_dir
149
- result << "--main" << quote(main) if main
150
- result << "--title" << quote(title) if title
151
- result << "-T" << quote(template) if template
152
- result << "--inline-source" if inline_source && !@options.include?("--inline-source") && !@options.include?("-S")
153
- result
154
- end
183
+ def option_string
184
+ option_list.join(' ')
185
+ end
155
186
 
156
- def quote(str)
157
- if @external
158
- "'#{str}'"
159
- else
160
- str
187
+ # The block passed to this method will be called just before running the
188
+ # RDoc generator. It is allowed to modify RDocTask attributes inside the
189
+ # block.
190
+ def before_running_rdoc(&block)
191
+ @before_running_rdoc = block
161
192
  end
162
- end
163
193
 
164
- def option_string
165
- option_list.join(' ')
166
- end
167
-
168
- # The block passed to this method will be called just before running the
169
- # RDoc generator. It is allowed to modify RDocTask attributes inside the
170
- # block.
171
- def before_running_rdoc(&block)
172
- @before_running_rdoc = block
173
- end
194
+ private
174
195
 
175
- private
176
-
177
- def rdoc_target
178
- "#{rdoc_dir}/index.html"
179
- end
180
-
181
- def rdoc_task_name
182
- case name
183
- when Hash
184
- (name[:rdoc] || "rdoc").to_s
185
- else
186
- name.to_s
196
+ def rdoc_target
197
+ "#{rdoc_dir}/index.html"
187
198
  end
188
- end
189
-
190
- def clobber_task_name
191
- case name
192
- when Hash
193
- (name[:clobber_rdoc] || "clobber_rdoc").to_s
194
- else
195
- "clobber_#{name}"
199
+
200
+ def rdoc_task_name
201
+ case name
202
+ when Hash
203
+ (name[:rdoc] || "rdoc").to_s
204
+ else
205
+ name.to_s
206
+ end
196
207
  end
197
- end
198
-
199
- def rerdoc_task_name
200
- case name
201
- when Hash
202
- (name[:rerdoc] || "rerdoc").to_s
203
- else
204
- "re#{name}"
208
+
209
+ def clobber_task_name
210
+ case name
211
+ when Hash
212
+ (name[:clobber_rdoc] || "clobber_rdoc").to_s
213
+ else
214
+ "clobber_#{name}"
215
+ end
216
+ end
217
+
218
+ def rerdoc_task_name
219
+ case name
220
+ when Hash
221
+ (name[:rerdoc] || "rerdoc").to_s
222
+ else
223
+ "re#{name}"
224
+ end
205
225
  end
206
- end
207
226
 
227
+ end
208
228
  end
209
229
  end
230
+
@@ -1,10 +1,13 @@
1
- module Test
2
- module Unit
3
- module Collector
4
- class Dir
1
+ # Local Rake override to fix bug in Ruby 0.8.2
2
+ module Test # :nodoc:
3
+ # Local Rake override to fix bug in Ruby 0.8.2
4
+ module Unit # :nodoc:
5
+ # Local Rake override to fix bug in Ruby 0.8.2
6
+ module Collector # :nodoc:
7
+ # Local Rake override to fix bug in Ruby 0.8.2
8
+ class Dir # :nodoc:
5
9
  undef collect_file
6
- def collect_file(name, suites, already_gathered)
7
- # loadpath = $:.dup
10
+ def collect_file(name, suites, already_gathered) # :nodoc:
8
11
  dir = File.dirname(File.expand_path(name))
9
12
  $:.unshift(dir) unless $:.first == dir
10
13
  if(@req)
@@ -14,7 +17,6 @@ module Test
14
17
  end
15
18
  find_test_cases(already_gathered).each{|t| add_suite(suites, t.suite)}
16
19
  ensure
17
- # $:.replace(loadpath)
18
20
  $:.delete_at $:.rindex(dir)
19
21
  end
20
22
  end
@@ -0,0 +1,20 @@
1
+
2
+ module Rake
3
+
4
+ # Error indicating a recursion overflow error in task selection.
5
+ class RuleRecursionOverflowError < StandardError
6
+ def initialize(*args)
7
+ super
8
+ @targets = []
9
+ end
10
+
11
+ def add_target(target)
12
+ @targets << target
13
+ end
14
+
15
+ def message
16
+ super + ": [" + @targets.reverse.join(' => ') + "]"
17
+ end
18
+ end
19
+
20
+ end
data/lib/rake/runtest.rb CHANGED
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'test/unit'
4
2
  require 'test/unit/assertions'
5
3
 
@@ -8,12 +6,12 @@ module Rake
8
6
 
9
7
  def run_tests(pattern='test/test*.rb', log_enabled=false)
10
8
  Dir["#{pattern}"].each { |fn|
11
- puts fn if log_enabled
9
+ $stderr.puts fn if log_enabled
12
10
  begin
13
- load fn
11
+ require fn
14
12
  rescue Exception => ex
15
- puts "Error in #{fn}: #{ex.message}"
16
- puts ex.backtrace
13
+ $stderr.puts "Error in #{fn}: #{ex.message}"
14
+ $stderr.puts ex.backtrace
17
15
  assert false
18
16
  end
19
17
  }