rake 10.0.4 → 10.1.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rake might be problematic. Click here for more details.

Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/doc/rakefile.rdoc +19 -0
  3. data/lib/rake/alt_system.rb +3 -4
  4. data/lib/rake/application.rb +114 -67
  5. data/lib/rake/backtrace.rb +9 -8
  6. data/lib/rake/contrib/ftptools.rb +6 -18
  7. data/lib/rake/contrib/sys.rb +2 -1
  8. data/lib/rake/dsl_definition.rb +1 -1
  9. data/lib/rake/ext/core.rb +2 -1
  10. data/lib/rake/ext/string.rb +1 -3
  11. data/lib/rake/file_list.rb +14 -14
  12. data/lib/rake/file_task.rb +1 -2
  13. data/lib/rake/file_utils.rb +9 -7
  14. data/lib/rake/file_utils_ext.rb +2 -1
  15. data/lib/rake/gempackagetask.rb +2 -1
  16. data/lib/rake/invocation_chain.rb +2 -0
  17. data/lib/rake/packagetask.rb +11 -6
  18. data/lib/rake/pseudo_status.rb +5 -0
  19. data/lib/rake/rdoctask.rb +2 -1
  20. data/lib/rake/ruby182_test_unit_fix.rb +4 -2
  21. data/lib/rake/runtest.rb +2 -2
  22. data/lib/rake/task.rb +9 -10
  23. data/lib/rake/task_arguments.rb +13 -2
  24. data/lib/rake/task_manager.rb +9 -8
  25. data/lib/rake/tasklib.rb +1 -1
  26. data/lib/rake/testtask.rb +10 -7
  27. data/lib/rake/thread_history_display.rb +1 -1
  28. data/lib/rake/thread_pool.rb +10 -4
  29. data/lib/rake/version.rb +3 -7
  30. data/lib/rake/win32.rb +3 -2
  31. data/test/helper.rb +28 -28
  32. data/test/test_rake_application.rb +14 -12
  33. data/test/test_rake_application_options.rb +7 -5
  34. data/test/test_rake_backtrace.rb +30 -1
  35. data/test/test_rake_definitions.rb +2 -3
  36. data/test/test_rake_file_creation_task.rb +2 -2
  37. data/test/test_rake_file_list.rb +9 -10
  38. data/test/test_rake_file_task.rb +4 -4
  39. data/test/test_rake_file_utils.rb +6 -2
  40. data/test/test_rake_ftp_file.rb +28 -13
  41. data/test/test_rake_functional.rb +4 -2
  42. data/test/test_rake_makefile_loader.rb +3 -1
  43. data/test/test_rake_multi_task.rb +2 -3
  44. data/test/test_rake_name_space.rb +1 -1
  45. data/test/test_rake_path_map.rb +23 -12
  46. data/test/test_rake_rake_test_loader.rb +2 -3
  47. data/test/test_rake_rules.rb +11 -12
  48. data/test/test_rake_task.rb +7 -7
  49. data/test/test_rake_task_arguments.rb +35 -2
  50. data/test/test_rake_task_manager.rb +3 -4
  51. data/test/test_rake_task_with_arguments.rb +2 -2
  52. data/test/test_rake_test_task.rb +1 -2
  53. data/test/test_rake_thread_pool.rb +36 -16
  54. data/test/test_thread_history_display.rb +16 -6
  55. data/test/test_trace_output.rb +2 -0
  56. metadata +2 -2
@@ -24,7 +24,7 @@ module Rake
24
24
  task_name, arg_names, deps = resolve_args(args)
25
25
  task_name = task_class.scope_name(@scope, task_name)
26
26
  deps = [deps] unless deps.respond_to?(:to_ary)
27
- deps = deps.collect {|d| d.to_s }
27
+ deps = deps.map { |d| d.to_s }
28
28
  task = intern(task_class, task_name)
29
29
  task.set_arg_names(arg_names) unless arg_names.empty?
30
30
  if Rake::TaskManager.record_task_metadata
@@ -94,7 +94,7 @@ module Rake
94
94
  #
95
95
  def resolve_args_with_dependencies(args, hash) # :nodoc:
96
96
  fail "Task Argument Error" if hash.size != 1
97
- key, value = hash.map { |k, v| [k,v] }.first
97
+ key, value = hash.map { |k, v| [k, v] }.first
98
98
  if args.empty?
99
99
  task_name = key
100
100
  arg_names = []
@@ -172,7 +172,7 @@ module Rake
172
172
  def lookup_in_scope(name, scope)
173
173
  n = scope.size
174
174
  while n >= 0
175
- tn = (scope[0,n] + [name]).join(':')
175
+ tn = (scope[0, n] + [name]).join(':')
176
176
  task = @tasks[tn]
177
177
  return task if task
178
178
  n -= 1
@@ -213,7 +213,7 @@ module Rake
213
213
  locations = caller
214
214
  i = 0
215
215
  while locations[i]
216
- return locations[i+1] if locations[i] =~ /rake\/dsl_definition.rb/
216
+ return locations[i + 1] if locations[i] =~ /rake\/dsl_definition.rb/
217
217
  i += 1
218
218
  end
219
219
  nil
@@ -227,18 +227,19 @@ module Rake
227
227
  end
228
228
 
229
229
  def trace_rule(level, message)
230
- options.trace_output.puts "#{" "*level}#{message}" if Rake.application.options.trace_rules
230
+ options.trace_output.puts "#{" " * level}#{message}" if
231
+ Rake.application.options.trace_rules
231
232
  end
232
233
 
233
234
  # Attempt to create a rule given the list of prerequisites.
234
235
  def attempt_rule(task_name, extensions, block, level)
235
236
  sources = make_sources(task_name, extensions)
236
- prereqs = sources.collect { |source|
237
+ prereqs = sources.map { |source|
237
238
  trace_rule level, "Attempting Rule #{task_name} => #{source}"
238
239
  if File.exist?(source) || Rake::Task.task_defined?(source)
239
240
  trace_rule level, "(#{task_name} => #{source} ... EXIST)"
240
241
  source
241
- elsif parent = enhance_with_matching_rule(source, level+1)
242
+ elsif parent = enhance_with_matching_rule(source, level + 1)
242
243
  trace_rule level, "(#{task_name} => #{source} ... ENHANCE)"
243
244
  parent.name
244
245
  else
@@ -254,7 +255,7 @@ module Rake
254
255
  # Make a list of sources from the list of file name extensions /
255
256
  # translation procs.
256
257
  def make_sources(task_name, extensions)
257
- result = extensions.collect { |ext|
258
+ result = extensions.map { |ext|
258
259
  case ext
259
260
  when /%/
260
261
  task_name.pathmap(ext)
@@ -14,7 +14,7 @@ module Rake
14
14
  # libraries depend on this so I can't remove it without breaking
15
15
  # other people's code. So for now it stays for backwards
16
16
  # compatibility. BUT DON'T USE IT.
17
- def paste(a,b) # :nodoc:
17
+ def paste(a, b) # :nodoc:
18
18
  (a.to_s + b.to_s).intern
19
19
  end
20
20
  end
@@ -93,15 +93,18 @@ module Rake
93
93
 
94
94
  # Create the tasks defined by this task lib.
95
95
  def define
96
- desc "Run tests" + (@name==:test ? "" : " for #{@name}")
96
+ desc "Run tests" + (@name == :test ? "" : " for #{@name}")
97
97
  task @name do
98
98
  FileUtilsExt.verbose(@verbose) do
99
- args = "#{ruby_opts_string} #{run_code} #{file_list_string} #{option_list}"
99
+ args =
100
+ "#{ruby_opts_string} #{run_code} " +
101
+ "#{file_list_string} #{option_list}"
100
102
  ruby args do |ok, status|
101
103
  if !ok && status.respond_to?(:signaled?) && status.signaled?
102
104
  raise SignalException.new(status.termsig)
103
105
  elsif !ok
104
- fail "Command failed with status (#{status.exitstatus}): [ruby #{args}]"
106
+ fail "Command failed with status (#{status.exitstatus}): " +
107
+ "[ruby #{args}]"
105
108
  end
106
109
  end
107
110
  end
@@ -120,8 +123,8 @@ module Rake
120
123
 
121
124
  def ruby_opts_string
122
125
  opts = @ruby_opts.dup
123
- opts.unshift( "-I\"#{lib_path}\"" ) unless @libs.empty?
124
- opts.unshift( "-w" ) if @warning
126
+ opts.unshift("-I\"#{lib_path}\"") unless @libs.empty?
127
+ opts.unshift("-w") if @warning
125
128
  opts.join(" ")
126
129
  end
127
130
 
@@ -130,12 +133,12 @@ module Rake
130
133
  end
131
134
 
132
135
  def file_list_string
133
- file_list.collect { |fn| "\"#{fn}\"" }.join(' ')
136
+ file_list.map { |fn| "\"#{fn}\"" }.join(' ')
134
137
  end
135
138
 
136
139
  def file_list # :nodoc:
137
140
  if ENV['TEST']
138
- FileList[ ENV['TEST'] ]
141
+ FileList[ENV['TEST']]
139
142
  else
140
143
  result = []
141
144
  result += @test_files.to_a if @test_files
@@ -25,7 +25,7 @@ module Rake
25
25
  (stat[:time] * 1_000_000).round,
26
26
  stat[:thread],
27
27
  stat[:event],
28
- stat[:data].map { |k,v| "#{k}:#{v}" }.join(" "))
28
+ stat[:data].map do |k, v| "#{k}:#{v}" end.join(" "))
29
29
  end
30
30
  end
31
31
 
@@ -50,8 +50,10 @@ module Rake
50
50
  rescue Exception => e
51
51
  stat :joined
52
52
  $stderr.puts e
53
- $stderr.print "Queue contains #{@queue.size} items. Thread pool contains #{@threads.count} threads\n"
54
- $stderr.print "Current Thread #{Thread.current} status = #{Thread.current.status}\n"
53
+ $stderr.print "Queue contains #{@queue.size} items. " +
54
+ "Thread pool contains #{@threads.count} threads\n"
55
+ $stderr.print "Current Thread #{Thread.current} status = " +
56
+ "#{Thread.current.status}\n"
55
57
  $stderr.puts e.backtrace.join("\n")
56
58
  @threads.each do |t|
57
59
  $stderr.print "Thread #{t} status = #{t.status}\n"
@@ -125,8 +127,12 @@ module Rake
125
127
  end
126
128
  end
127
129
  @threads << t
128
- stat :spawned, :new_thread => t.object_id, :thread_count => @threads.count
129
- @total_threads_in_play = @threads.count if @threads.count > @total_threads_in_play
130
+ stat(
131
+ :spawned,
132
+ :new_thread => t.object_id,
133
+ :thread_count => @threads.count)
134
+ @total_threads_in_play = @threads.count if
135
+ @threads.count > @total_threads_in_play
130
136
  end
131
137
  end
132
138
 
@@ -1,13 +1,9 @@
1
1
  module Rake
2
- VERSION = '10.0.4'
2
+ VERSION = '10.1.0.beta.1'
3
3
 
4
4
  module Version # :nodoc: all
5
- MAJOR, MINOR, BUILD, = Rake::VERSION.split '.'
5
+ MAJOR, MINOR, BUILD, *OTHER = Rake::VERSION.split '.'
6
6
 
7
- NUMBERS = [
8
- MAJOR,
9
- MINOR,
10
- BUILD,
11
- ]
7
+ NUMBERS = [MAJOR, MINOR, BUILD, *OTHER]
12
8
  end
13
9
  end
@@ -40,8 +40,9 @@ module Rake
40
40
 
41
41
  win32_shared_path ||= ENV['APPDATA']
42
42
  win32_shared_path ||= ENV['USERPROFILE']
43
- raise Win32HomeError, "Unable to determine home path environment variable." if
44
- win32_shared_path.nil? or win32_shared_path.empty?
43
+ raise Win32HomeError,
44
+ "Unable to determine home path environment variable." if
45
+ win32_shared_path.nil? or win32_shared_path.empty?
45
46
  normalize(File.join(win32_shared_path, 'Rake'))
46
47
  end
47
48
 
@@ -33,26 +33,27 @@ class Rake::TestCase < MiniTest::Unit::TestCase
33
33
 
34
34
  test_dir = File.basename File.dirname File.expand_path __FILE__
35
35
 
36
- @rake_root = if test_dir == 'test' then
37
- # rake repository
38
- File.expand_path '../../', __FILE__
39
- else
40
- # ruby repository
41
- File.expand_path '../../../', __FILE__
42
- end
36
+ @rake_root =
37
+ if test_dir == 'test'
38
+ # rake repository
39
+ File.expand_path '../../', __FILE__
40
+ else
41
+ # ruby repository
42
+ File.expand_path '../../../', __FILE__
43
+ end
43
44
 
44
45
  @rake_exec = File.join @rake_root, 'bin', 'rake'
45
46
  @rake_lib = File.join @rake_root, 'lib'
46
47
 
47
- @orig_PWD = Dir.pwd
48
- @orig_APPDATA = ENV['APPDATA']
49
- @orig_HOME = ENV['HOME']
50
- @orig_HOMEDRIVE = ENV['HOMEDRIVE']
51
- @orig_HOMEPATH = ENV['HOMEPATH']
52
- @orig_RAKE_COLUMNS = ENV['RAKE_COLUMNS']
53
- @orig_RAKE_SYSTEM = ENV['RAKE_SYSTEM']
54
- @orig_RAKEOPT = ENV['RAKEOPT']
55
- @orig_USERPROFILE = ENV['USERPROFILE']
48
+ @orig_pwd = Dir.pwd
49
+ @orig_appdata = ENV['APPDATA']
50
+ @orig_home = ENV['HOME']
51
+ @orig_homedrive = ENV['HOMEDRIVE']
52
+ @orig_homepath = ENV['HOMEPATH']
53
+ @orig_rake_columns = ENV['RAKE_COLUMNS']
54
+ @orig_rake_system = ENV['RAKE_SYSTEM']
55
+ @orig_rakeopt = ENV['RAKEOPT']
56
+ @orig_userprofile = ENV['USERPROFILE']
56
57
  ENV.delete 'RAKE_COLUMNS'
57
58
  ENV.delete 'RAKE_SYSTEM'
58
59
  ENV.delete 'RAKEOPT'
@@ -70,22 +71,22 @@ class Rake::TestCase < MiniTest::Unit::TestCase
70
71
  end
71
72
 
72
73
  def teardown
73
- Dir.chdir @orig_PWD
74
+ Dir.chdir @orig_pwd
74
75
  FileUtils.rm_rf @tempdir
75
76
 
76
- if @orig_APPDATA then
77
- ENV['APPDATA'] = @orig_APPDATA
77
+ if @orig_appdata
78
+ ENV['APPDATA'] = @orig_appdata
78
79
  else
79
80
  ENV.delete 'APPDATA'
80
81
  end
81
82
 
82
- ENV['HOME'] = @orig_HOME
83
- ENV['HOMEDRIVE'] = @orig_HOMEDRIVE
84
- ENV['HOMEPATH'] = @orig_HOMEPATH
85
- ENV['RAKE_COLUMNS'] = @orig_RAKE_COLUMNS
86
- ENV['RAKE_SYSTEM'] = @orig_RAKE_SYSTEM
87
- ENV['RAKEOPT'] = @orig_RAKEOPT
88
- ENV['USERPROFILE'] = @orig_USERPROFILE
83
+ ENV['HOME'] = @orig_home
84
+ ENV['HOMEDRIVE'] = @orig_homedrive
85
+ ENV['HOMEPATH'] = @orig_homepath
86
+ ENV['RAKE_COLUMNS'] = @orig_rake_columns
87
+ ENV['RAKE_SYSTEM'] = @orig_rake_system
88
+ ENV['RAKEOPT'] = @orig_rakeopt
89
+ ENV['USERPROFILE'] = @orig_userprofile
89
90
  end
90
91
 
91
92
  def ignore_deprecations
@@ -111,7 +112,7 @@ end
111
112
  ENV['RAKE_SYSTEM'] = @system_dir
112
113
  end
113
114
 
114
- def rakefile contents
115
+ def rakefile(contents)
115
116
  open 'Rakefile', 'w' do |io|
116
117
  io << contents
117
118
  end
@@ -288,7 +289,6 @@ FileList['src/*'].each do |src|
288
289
  target = File.join TARGET_DIR, File.basename(src)
289
290
  file target => [src, TARGET_DIR] do
290
291
  cp src, target
291
- # sleep 3 if src !~ /foo#{N-1}$/ # I'm commenting out this sleep, it doesn't seem to do anything.
292
292
  end
293
293
  task :run => target
294
294
  end
@@ -23,13 +23,14 @@ class TestRakeApplication < Rake::TestCase
23
23
  @app.terminal_columns = 80
24
24
  @app.options.show_tasks = :tasks
25
25
  @app.options.show_task_pattern = //
26
- @app.last_description = "1234567890" * 8
26
+ numbers = "1234567890" * 8
27
+ @app.last_description = numbers
27
28
  @app.define_task(Rake::Task, "t")
28
29
 
29
30
  out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
30
31
 
31
32
  assert_match(/^rake t/, out)
32
- assert_match(/# 12345678901234567890123456789012345678901234567890123456789012345\.\.\./, out)
33
+ assert_match(/# #{numbers[0, 65]}\.\.\./, out)
33
34
  end
34
35
 
35
36
  def test_display_tasks_with_task_name_wider_than_tty_display
@@ -38,7 +39,7 @@ class TestRakeApplication < Rake::TestCase
38
39
  @app.options.show_task_pattern = //
39
40
  task_name = "task name" * 80
40
41
  @app.last_description = "something short"
41
- @app.define_task(Rake::Task, task_name )
42
+ @app.define_task(Rake::Task, task_name)
42
43
 
43
44
  out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
44
45
 
@@ -53,7 +54,7 @@ class TestRakeApplication < Rake::TestCase
53
54
  description = "something short"
54
55
  task_name = "task name" * 80
55
56
  @app.last_description = "something short"
56
- @app.define_task(Rake::Task, task_name )
57
+ @app.define_task(Rake::Task, task_name)
57
58
 
58
59
  out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
59
60
 
@@ -72,18 +73,19 @@ class TestRakeApplication < Rake::TestCase
72
73
  assert_match(/# #{@app.last_description}/, out)
73
74
  end
74
75
 
75
- def test_display_tasks_with_long_comments_to_a_non_tty_with_columns_set_truncates_comments
76
+ def test_truncating_comments_to_a_non_tty
76
77
  @app.terminal_columns = 80
77
78
  @app.options.show_tasks = :tasks
78
79
  @app.options.show_task_pattern = //
79
80
  @app.tty_output = false
80
- @app.last_description = "1234567890" * 8
81
+ numbers = "1234567890" * 8
82
+ @app.last_description = numbers
81
83
  @app.define_task(Rake::Task, "t")
82
84
 
83
85
  out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
84
86
 
85
87
  assert_match(/^rake t/, out)
86
- assert_match(/# 12345678901234567890123456789012345678901234567890123456789012345\.\.\./, out)
88
+ assert_match(/# #{numbers[0, 65]}\.\.\./, out)
87
89
  end
88
90
 
89
91
  def test_describe_tasks
@@ -114,7 +116,7 @@ class TestRakeApplication < Rake::TestCase
114
116
 
115
117
  def test_not_finding_rakefile
116
118
  @app.instance_eval { @rakefiles = ['NEVER_FOUND'] }
117
- assert( ! @app.instance_eval do have_rakefile end )
119
+ assert(! @app.instance_eval do have_rakefile end)
118
120
  assert_nil @app.rakefile
119
121
  end
120
122
 
@@ -245,7 +247,7 @@ class TestRakeApplication < Rake::TestCase
245
247
  end
246
248
 
247
249
  def test_terminal_columns
248
- old_RAKE_COLUMNS = ENV['RAKE_COLUMNS']
250
+ old_rake_columns = ENV['RAKE_COLUMNS']
249
251
 
250
252
  ENV['RAKE_COLUMNS'] = '42'
251
253
 
@@ -253,10 +255,10 @@ class TestRakeApplication < Rake::TestCase
253
255
 
254
256
  assert_equal 42, app.terminal_columns
255
257
  ensure
256
- if old_RAKE_COLUMNS then
258
+ if old_rake_columns
257
259
  ENV['RAKE_COLUMNS'].delete
258
260
  else
259
- ENV['RAKE_COLUMNS'] = old_RAKE_COLUMNS
261
+ ENV['RAKE_COLUMNS'] = old_rake_columns
260
262
  end
261
263
  end
262
264
 
@@ -289,7 +291,7 @@ class TestRakeApplication < Rake::TestCase
289
291
  # HACK no assertions
290
292
  end
291
293
 
292
- def test_handle_options_should_strip_options_from_ARGV
294
+ def test_handle_options_should_strip_options_from_argv
293
295
  assert !@app.options.trace
294
296
 
295
297
  valid_option = '--trace'
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../helper', __FILE__)
2
2
 
3
- TESTING_REQUIRE = [ ]
3
+ TESTING_REQUIRE = []
4
4
 
5
5
  class TestRakeApplicationOptions < Rake::TestCase
6
6
 
@@ -22,9 +22,7 @@ class TestRakeApplicationOptions < Rake::TestCase
22
22
  end
23
23
 
24
24
  def clear_argv
25
- while ! ARGV.empty?
26
- ARGV.pop
27
- end
25
+ ARGV.pop until ARGV.empty?
28
26
  end
29
27
 
30
28
  def test_default_options
@@ -146,7 +144,11 @@ class TestRakeApplicationOptions < Rake::TestCase
146
144
 
147
145
  def test_rakelib
148
146
  dirs = %w(A B C).join(File::PATH_SEPARATOR)
149
- flags(['--rakelibdir', dirs], ["--rakelibdir=#{dirs}"], ['-R', dirs], ["-R#{dirs}"]) do |opts|
147
+ flags(
148
+ ['--rakelibdir', dirs],
149
+ ["--rakelibdir=#{dirs}"],
150
+ ['-R', dirs],
151
+ ["-R#{dirs}"]) do |opts|
150
152
  assert_equal ['A', 'B', 'C'], opts.rakelib
151
153
  end
152
154
  end
@@ -1,6 +1,34 @@
1
1
  require File.expand_path('../helper', __FILE__)
2
2
  require 'open3'
3
3
 
4
+ class TestBacktraceSuppression < Rake::TestCase
5
+ def test_bin_rake_suppressed
6
+ paths = ["something/bin/rake:12"]
7
+
8
+ actual = Rake::Backtrace.collapse(paths)
9
+
10
+ assert_equal [], actual
11
+ end
12
+
13
+ def test_system_dir_suppressed
14
+ path = RbConfig::CONFIG['rubylibprefix']
15
+ paths = [path + ":12"]
16
+
17
+ actual = Rake::Backtrace.collapse(paths)
18
+
19
+ assert_equal [], actual
20
+ end
21
+
22
+ def test_near_system_dir_isnt_suppressed
23
+ path = RbConfig::CONFIG['rubylibprefix']
24
+ paths = [" " + path + ":12"]
25
+
26
+ actual = Rake::Backtrace.collapse(paths)
27
+
28
+ assert_equal paths, actual
29
+ end
30
+ end
31
+
4
32
  class TestRakeBacktrace < Rake::TestCase
5
33
 
6
34
  def setup
@@ -83,7 +111,8 @@ class TestRakeBacktrace < Rake::TestCase
83
111
  return
84
112
  end
85
113
  end
86
- flunk "expected #{pattern.inspect} to match something in:\n #{lines.join("\n ")}"
114
+ flunk "expected #{pattern.inspect} to match something in:\n" +
115
+ "#{lines.join("\n ")}"
87
116
  end
88
117
 
89
118
  end