rake 11.1.2 → 11.2.0

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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rubocop.yml +0 -9
  4. data/.travis.yml +28 -0
  5. data/CONTRIBUTING.rdoc +3 -5
  6. data/Gemfile +3 -0
  7. data/History.rdoc +1770 -273
  8. data/Rakefile +15 -68
  9. data/appveyor.yml +24 -0
  10. data/bin/console +7 -0
  11. data/bin/setup +6 -0
  12. data/doc/release_notes/README.md +4 -0
  13. data/doc/release_notes/rake-0.7.3.rdoc +0 -0
  14. data/{bin → exe}/rake +0 -6
  15. data/lib/rake.rb +1 -3
  16. data/lib/rake/application.rb +3 -6
  17. data/lib/rake/cpu_counter.rb +3 -17
  18. data/lib/rake/file_utils.rb +22 -6
  19. data/lib/rake/packagetask.rb +12 -1
  20. data/lib/rake/rake_test_loader.rb +0 -1
  21. data/lib/rake/rule_recursion_overflow_error.rb +0 -1
  22. data/lib/rake/task.rb +3 -3
  23. data/lib/rake/task_arguments.rb +2 -1
  24. data/lib/rake/testtask.rb +5 -1
  25. data/lib/rake/thread_pool.rb +0 -1
  26. data/lib/rake/version.rb +2 -0
  27. data/rake.gemspec +30 -0
  28. metadata +21 -110
  29. data/.autotest +0 -7
  30. data/.togglerc +0 -7
  31. data/Manifest.txt +0 -154
  32. data/lib/rake/contrib/.document +0 -1
  33. data/rakelib/test_times.rake +0 -25
  34. data/test/file_creation.rb +0 -34
  35. data/test/helper.rb +0 -134
  36. data/test/support/rakefile_definitions.rb +0 -476
  37. data/test/support/ruby_runner.rb +0 -34
  38. data/test/test_private_reader.rb +0 -42
  39. data/test/test_rake.rb +0 -40
  40. data/test/test_rake_application.rb +0 -659
  41. data/test/test_rake_application_options.rb +0 -468
  42. data/test/test_rake_backtrace.rb +0 -119
  43. data/test/test_rake_clean.rb +0 -61
  44. data/test/test_rake_cpu_counter.rb +0 -68
  45. data/test/test_rake_definitions.rb +0 -84
  46. data/test/test_rake_directory_task.rb +0 -76
  47. data/test/test_rake_dsl.rb +0 -40
  48. data/test/test_rake_early_time.rb +0 -31
  49. data/test/test_rake_extension.rb +0 -59
  50. data/test/test_rake_file_creation_task.rb +0 -56
  51. data/test/test_rake_file_list.rb +0 -687
  52. data/test/test_rake_file_list_path_map.rb +0 -15
  53. data/test/test_rake_file_task.rb +0 -197
  54. data/test/test_rake_file_utils.rb +0 -318
  55. data/test/test_rake_ftp_file.rb +0 -74
  56. data/test/test_rake_functional.rb +0 -484
  57. data/test/test_rake_invocation_chain.rb +0 -64
  58. data/test/test_rake_late_time.rb +0 -18
  59. data/test/test_rake_linked_list.rb +0 -84
  60. data/test/test_rake_makefile_loader.rb +0 -46
  61. data/test/test_rake_multi_task.rb +0 -64
  62. data/test/test_rake_name_space.rb +0 -57
  63. data/test/test_rake_package_task.rb +0 -79
  64. data/test/test_rake_path_map.rb +0 -168
  65. data/test/test_rake_path_map_explode.rb +0 -34
  66. data/test/test_rake_path_map_partial.rb +0 -18
  67. data/test/test_rake_pathname_extensions.rb +0 -15
  68. data/test/test_rake_pseudo_status.rb +0 -21
  69. data/test/test_rake_rake_test_loader.rb +0 -20
  70. data/test/test_rake_reduce_compat.rb +0 -26
  71. data/test/test_rake_require.rb +0 -40
  72. data/test/test_rake_rules.rb +0 -388
  73. data/test/test_rake_scope.rb +0 -44
  74. data/test/test_rake_task.rb +0 -430
  75. data/test/test_rake_task_argument_parsing.rb +0 -119
  76. data/test/test_rake_task_arguments.rb +0 -134
  77. data/test/test_rake_task_manager.rb +0 -178
  78. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  79. data/test/test_rake_task_with_arguments.rb +0 -172
  80. data/test/test_rake_test_task.rb +0 -130
  81. data/test/test_rake_thread_pool.rb +0 -145
  82. data/test/test_rake_top_level_functions.rb +0 -71
  83. data/test/test_rake_win32.rb +0 -72
  84. data/test/test_thread_history_display.rb +0 -101
  85. data/test/test_trace_output.rb +0 -52
@@ -1,119 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'open3'
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
- skip if path.nil?
16
- path = File.expand_path path
17
-
18
- paths = [path + ":12"]
19
-
20
- actual = Rake::Backtrace.collapse(paths)
21
-
22
- assert_equal [], actual
23
- end
24
-
25
- def test_near_system_dir_isnt_suppressed
26
- path = RbConfig::CONFIG['rubylibprefix']
27
- skip if path.nil?
28
- path = File.expand_path path
29
-
30
- paths = [" " + path + ":12"]
31
-
32
- actual = Rake::Backtrace.collapse(paths)
33
-
34
- assert_equal paths, actual
35
- end
36
- end
37
-
38
- class TestRakeBacktrace < Rake::TestCase
39
- include RubyRunner
40
-
41
- def setup
42
- super
43
-
44
- skip 'tmpdir is suppressed in backtrace' if
45
- Rake::Backtrace::SUPPRESS_PATTERN =~ Dir.pwd
46
- end
47
-
48
- def invoke(*args)
49
- rake(*args)
50
- @err
51
- end
52
-
53
- def test_single_collapse
54
- rakefile %q{
55
- task :foo do
56
- raise "foooo!"
57
- end
58
- }
59
-
60
- lines = invoke("foo").split("\n")
61
-
62
- assert_equal "rake aborted!", lines[0]
63
- assert_equal "foooo!", lines[1]
64
- assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:3!i, lines
65
- assert_something_matches %r!\ATasks:!, lines
66
- end
67
-
68
- def test_multi_collapse
69
- rakefile %q{
70
- task :foo do
71
- Rake.application.invoke_task(:bar)
72
- end
73
- task :bar do
74
- raise "barrr!"
75
- end
76
- }
77
-
78
- lines = invoke("foo").split("\n")
79
-
80
- assert_equal "rake aborted!", lines[0]
81
- assert_equal "barrr!", lines[1]
82
- assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:6!i, lines
83
- assert_something_matches %r!\A#{Regexp.quote Dir.pwd}/Rakefile:3!i, lines
84
- assert_something_matches %r!\ATasks:!, lines
85
- end
86
-
87
- def test_suppress_option
88
- rakefile %q{
89
- task :baz do
90
- raise "bazzz!"
91
- end
92
- }
93
-
94
- lines = invoke("baz").split("\n")
95
- assert_equal "rake aborted!", lines[0]
96
- assert_equal "bazzz!", lines[1]
97
- assert_something_matches %r!Rakefile!i, lines
98
-
99
- lines = invoke("--suppress-backtrace", ".ak.file", "baz").split("\n")
100
- assert_equal "rake aborted!", lines[0]
101
- assert_equal "bazzz!", lines[1]
102
- refute_match %r!Rakefile!i, lines[2]
103
- end
104
-
105
- private
106
-
107
- # Assert that the pattern matches at least one line in +lines+.
108
- def assert_something_matches(pattern, lines)
109
- lines.each do |ln|
110
- if pattern =~ ln
111
- assert_match pattern, ln
112
- return
113
- end
114
- end
115
- flunk "expected #{pattern.inspect} to match something in:\n" +
116
- "#{lines.join("\n ")}"
117
- end
118
-
119
- end
@@ -1,61 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'rake/clean'
3
-
4
- class TestRakeClean < Rake::TestCase
5
- def test_clean
6
- load 'rake/clean.rb', true
7
-
8
- assert Rake::Task['clean'], "Should define clean"
9
- assert Rake::Task['clobber'], "Should define clobber"
10
- assert Rake::Task['clobber'].prerequisites.include?("clean"),
11
- "Clobber should require clean"
12
- end
13
-
14
- def test_cleanup
15
- file_name = create_undeletable_file
16
-
17
- out, _ = capture_io do
18
- Rake::Cleaner.cleanup(file_name, :verbose => false)
19
- end
20
- assert_match(/failed to remove/i, out)
21
-
22
- ensure
23
- remove_undeletable_file
24
- end
25
-
26
- def test_cleanup_ignores_missing_files
27
- file_name = File.join(@tempdir, "missing_directory", "no_such_file")
28
-
29
- out, _ = capture_io do
30
- Rake::Cleaner.cleanup(file_name, :verbose => false)
31
- end
32
- refute_match(/failed to remove/i, out)
33
- end
34
-
35
- private
36
-
37
- def create_undeletable_file
38
- dir_name = File.join(@tempdir, "deletedir")
39
- file_name = File.join(dir_name, "deleteme")
40
- FileUtils.mkdir(dir_name)
41
- FileUtils.touch(file_name)
42
- FileUtils.chmod(0, file_name)
43
- FileUtils.chmod(0, dir_name)
44
- begin
45
- FileUtils.chmod(0644, file_name)
46
- rescue
47
- file_name
48
- else
49
- skip "Permission to delete files is different on thie system"
50
- end
51
- end
52
-
53
- def remove_undeletable_file
54
- dir_name = File.join(@tempdir, "deletedir")
55
- file_name = File.join(dir_name, "deleteme")
56
- FileUtils.chmod(0777, dir_name)
57
- FileUtils.chmod(0777, file_name)
58
- Rake::Cleaner.cleanup(file_name, :verbose => false)
59
- Rake::Cleaner.cleanup(dir_name, :verbose => false)
60
- end
61
- end
@@ -1,68 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRakeCpuCounter < Rake::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @cpu_counter = Rake::CpuCounter.new
9
- end
10
-
11
- def test_count
12
- num = @cpu_counter.count
13
- skip 'cannot count CPU' if num == nil
14
- assert_kind_of Numeric, num
15
- assert_operator num, :>=, 1
16
- end
17
-
18
- def test_count_with_default_nil
19
- def @cpu_counter.count; nil; end
20
- assert_equal(8, @cpu_counter.count_with_default(8))
21
- assert_equal(4, @cpu_counter.count_with_default)
22
- end
23
-
24
- def test_count_with_default_raise
25
- def @cpu_counter.count; raise; end
26
- assert_equal(8, @cpu_counter.count_with_default(8))
27
- assert_equal(4, @cpu_counter.count_with_default)
28
- end
29
-
30
- class TestClassMethod < Rake::TestCase
31
- def setup
32
- super
33
-
34
- @klass = Class.new(Rake::CpuCounter)
35
- end
36
-
37
- def test_count
38
- @klass.class_eval do
39
- def count; 8; end
40
- end
41
- assert_equal(8, @klass.count)
42
- end
43
-
44
- def test_count_nil
45
- counted = false
46
- @klass.class_eval do
47
- define_method(:count) do
48
- counted = true
49
- nil
50
- end
51
- end
52
- assert_equal(4, @klass.count)
53
- assert_equal(true, counted)
54
- end
55
-
56
- def test_count_raise
57
- counted = false
58
- @klass.class_eval do
59
- define_method(:count) do
60
- counted = true
61
- raise
62
- end
63
- end
64
- assert_equal(4, @klass.count)
65
- assert_equal(true, counted)
66
- end
67
- end
68
- end
@@ -1,84 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'fileutils'
3
-
4
- class TestRakeDefinitions < Rake::TestCase
5
- include Rake
6
-
7
- EXISTINGFILE = "existing"
8
-
9
- def setup
10
- super
11
-
12
- Task.clear
13
- end
14
-
15
- def test_task
16
- done = false
17
- task :one => [:two] do done = true end
18
- task :two
19
- task :three => [:one, :two]
20
- check_tasks(:one, :two, :three)
21
- assert done, "Should be done"
22
- end
23
-
24
- def test_file_task
25
- done = false
26
- file "one" => "two" do done = true end
27
- file "two"
28
- file "three" => ["one", "two"]
29
- check_tasks("one", "two", "three")
30
- assert done, "Should be done"
31
- end
32
-
33
- def check_tasks(n1, n2, n3)
34
- t = Task[n1]
35
- assert Task === t, "Should be a Task"
36
- assert_equal n1.to_s, t.name
37
- assert_equal [n2.to_s], t.prerequisites.map { |n| n.to_s }
38
- t.invoke
39
- t2 = Task[n2]
40
- assert_equal FileList[], t2.prerequisites
41
- t3 = Task[n3]
42
- assert_equal [n1.to_s, n2.to_s], t3.prerequisites.map { |n| n.to_s }
43
- end
44
-
45
- def test_incremental_definitions
46
- runs = []
47
- task :t1 => [:t2] do runs << "A"; 4321 end
48
- task :t1 => [:t3] do runs << "B"; 1234 end
49
- task :t1 => [:t3]
50
- task :t2
51
- task :t3
52
- Task[:t1].invoke
53
- assert_equal ["A", "B"], runs
54
- assert_equal ["t2", "t3"], Task[:t1].prerequisites
55
- end
56
-
57
- def test_missing_dependencies
58
- task :x => ["missing"]
59
- assert_raises(RuntimeError) { Task[:x].invoke }
60
- end
61
-
62
- def test_falsey_dependencies
63
- task :x => nil
64
- assert_equal [], Task[:x].prerequisites
65
- end
66
-
67
- def test_implicit_file_dependencies
68
- runs = []
69
- create_existing_file
70
- task :y => [EXISTINGFILE] do |t| runs << t.name end
71
- Task[:y].invoke
72
- assert_equal runs, ['y']
73
- end
74
-
75
- private # ----------------------------------------------------------
76
-
77
- def create_existing_file
78
- Dir.mkdir File.dirname(EXISTINGFILE) unless
79
- File.exist?(File.dirname(EXISTINGFILE))
80
- open(EXISTINGFILE, "w") do |f| f.puts "HI" end unless
81
- File.exist?(EXISTINGFILE)
82
- end
83
-
84
- end
@@ -1,76 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'fileutils'
3
- require 'pathname'
4
-
5
- class TestRakeDirectoryTask < Rake::TestCase
6
- include Rake
7
-
8
- def test_directory
9
- desc "DESC"
10
-
11
- directory "a/b/c"
12
-
13
- assert_equal FileCreationTask, Task["a"].class
14
- assert_equal FileCreationTask, Task["a/b"].class
15
- assert_equal FileCreationTask, Task["a/b/c"].class
16
-
17
- assert_nil Task["a"].comment
18
- assert_nil Task["a/b"].comment
19
- assert_equal "DESC", Task["a/b/c"].comment
20
-
21
- verbose(false) {
22
- Task['a/b'].invoke
23
- }
24
-
25
- assert File.exist?("a/b")
26
- refute File.exist?("a/b/c")
27
- end
28
-
29
- def test_directory_colon
30
- directory "a:b"
31
-
32
- assert_equal FileCreationTask, Task['a:b'].class
33
- end unless Rake::Win32.windows?
34
-
35
- if Rake::Win32.windows?
36
- def test_directory_win32
37
- desc "WIN32 DESC"
38
- directory 'c:/a/b/c'
39
- assert_equal FileTask, Task['c:'].class
40
- assert_equal FileCreationTask, Task['c:/a'].class
41
- assert_equal FileCreationTask, Task['c:/a/b'].class
42
- assert_equal FileCreationTask, Task['c:/a/b/c'].class
43
- assert_nil Task['c:/'].comment
44
- assert_equal "WIN32 DESC", Task['c:/a/b/c'].comment
45
- assert_nil Task['c:/a/b'].comment
46
- end
47
- end
48
-
49
- def test_can_use_blocks
50
- runlist = []
51
-
52
- t1 = directory("a/b/c" => :t2) { |t| runlist << t.name }
53
- task(:t2) { |t| runlist << t.name }
54
-
55
- verbose(false) {
56
- t1.invoke
57
- }
58
-
59
- assert_equal Task["a/b/c"], t1
60
- assert_equal FileCreationTask, Task["a/b/c"].class
61
- assert_equal ["t2", "a/b/c"], runlist
62
- assert File.directory?("a/b/c")
63
- end
64
-
65
- def test_can_use_pathname
66
- directory Pathname.new "a/b/c"
67
-
68
- assert_equal FileCreationTask, Task["a/b/c"].class
69
-
70
- verbose(false) {
71
- Task['a/b/c'].invoke
72
- }
73
-
74
- assert File.directory?("a/b/c")
75
- end
76
- end
@@ -1,40 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRakeDsl < Rake::TestCase
4
-
5
- def setup
6
- super
7
- Rake::Task.clear
8
- end
9
-
10
- def test_namespace_command
11
- namespace "n" do
12
- task "t"
13
- end
14
- refute_nil Rake::Task["n:t"]
15
- end
16
-
17
- def test_namespace_command_with_bad_name
18
- ex = assert_raises(ArgumentError) do
19
- namespace 1 do end
20
- end
21
- assert_match(/string/i, ex.message)
22
- assert_match(/symbol/i, ex.message)
23
- end
24
-
25
- def test_namespace_command_with_a_string_like_object
26
- name = Object.new
27
- def name.to_str
28
- "bob"
29
- end
30
- namespace name do
31
- task "t"
32
- end
33
- refute_nil Rake::Task["bob:t"]
34
- end
35
-
36
- def test_no_commands_constant
37
- assert ! defined?(Commands), "should not define Commands"
38
- end
39
-
40
- end