rake 10.5.0 → 13.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/macos.yml +22 -0
  3. data/.github/workflows/ubuntu-rvm.yml +28 -0
  4. data/.github/workflows/ubuntu.yml +20 -0
  5. data/.github/workflows/windows.yml +20 -0
  6. data/CONTRIBUTING.rdoc +13 -8
  7. data/Gemfile +10 -0
  8. data/History.rdoc +1997 -288
  9. data/README.rdoc +27 -11
  10. data/Rakefile +25 -65
  11. data/bin/bundle +105 -0
  12. data/bin/console +7 -0
  13. data/bin/rake +20 -24
  14. data/bin/rdoc +29 -0
  15. data/bin/rubocop +29 -0
  16. data/bin/setup +6 -0
  17. data/doc/jamis.rb +1 -0
  18. data/doc/rake.1 +139 -124
  19. data/doc/rakefile.rdoc +2 -4
  20. data/exe/rake +27 -0
  21. data/lib/rake/application.rb +124 -90
  22. data/lib/rake/backtrace.rb +3 -2
  23. data/lib/rake/clean.rb +7 -5
  24. data/lib/rake/cloneable.rb +1 -0
  25. data/lib/rake/cpu_counter.rb +10 -28
  26. data/lib/rake/default_loader.rb +1 -0
  27. data/lib/rake/dsl_definition.rb +5 -11
  28. data/lib/rake/early_time.rb +1 -0
  29. data/lib/rake/ext/core.rb +1 -0
  30. data/lib/rake/ext/string.rb +22 -21
  31. data/lib/rake/file_creation_task.rb +4 -3
  32. data/lib/rake/file_list.rb +34 -27
  33. data/lib/rake/file_task.rb +12 -4
  34. data/lib/rake/file_utils.rb +38 -32
  35. data/lib/rake/file_utils_ext.rb +8 -18
  36. data/lib/rake/invocation_chain.rb +1 -0
  37. data/lib/rake/invocation_exception_mixin.rb +1 -0
  38. data/lib/rake/late_time.rb +2 -1
  39. data/lib/rake/linked_list.rb +24 -15
  40. data/lib/rake/loaders/makefile.rb +5 -4
  41. data/lib/rake/multi_task.rb +2 -1
  42. data/lib/rake/name_space.rb +1 -1
  43. data/lib/rake/packagetask.rb +40 -17
  44. data/lib/rake/phony.rb +2 -1
  45. data/lib/rake/private_reader.rb +1 -0
  46. data/lib/rake/promise.rb +13 -12
  47. data/lib/rake/pseudo_status.rb +1 -0
  48. data/lib/rake/rake_module.rb +30 -1
  49. data/lib/rake/rake_test_loader.rb +18 -13
  50. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  51. data/lib/rake/scope.rb +3 -2
  52. data/lib/rake/task.rb +82 -31
  53. data/lib/rake/task_argument_error.rb +1 -0
  54. data/lib/rake/task_arguments.rb +15 -4
  55. data/lib/rake/task_manager.rb +54 -30
  56. data/lib/rake/tasklib.rb +2 -14
  57. data/lib/rake/testtask.rb +39 -28
  58. data/lib/rake/thread_history_display.rb +4 -3
  59. data/lib/rake/thread_pool.rb +16 -17
  60. data/lib/rake/trace_output.rb +2 -1
  61. data/lib/rake/version.rb +4 -1
  62. data/lib/rake/win32.rb +10 -15
  63. data/lib/rake.rb +35 -43
  64. data/rake.gemspec +43 -0
  65. metadata +33 -216
  66. data/.autotest +0 -7
  67. data/.rubocop.yml +0 -27
  68. data/.togglerc +0 -7
  69. data/Manifest.txt +0 -166
  70. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  71. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  72. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  73. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  74. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  75. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  76. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  77. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  78. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  79. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  80. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  81. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  82. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  83. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  84. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  85. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  86. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  87. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  88. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  89. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  90. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  91. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  92. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  93. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  94. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  95. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  96. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  97. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  98. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  99. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  100. data/lib/rake/alt_system.rb +0 -110
  101. data/lib/rake/contrib/.document +0 -1
  102. data/lib/rake/contrib/compositepublisher.rb +0 -21
  103. data/lib/rake/contrib/ftptools.rb +0 -137
  104. data/lib/rake/contrib/publisher.rb +0 -81
  105. data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  106. data/lib/rake/contrib/sshpublisher.rb +0 -61
  107. data/lib/rake/contrib/sys.rb +0 -4
  108. data/lib/rake/ext/module.rb +0 -2
  109. data/lib/rake/ext/pathname.rb +0 -25
  110. data/lib/rake/ext/time.rb +0 -18
  111. data/lib/rake/gempackagetask.rb +0 -4
  112. data/lib/rake/pathmap.rb +0 -3
  113. data/lib/rake/rdoctask.rb +0 -4
  114. data/lib/rake/ruby182_test_unit_fix.rb +0 -29
  115. data/lib/rake/runtest.rb +0 -27
  116. data/rakelib/publish.rake +0 -20
  117. data/rakelib/test_times.rake +0 -25
  118. data/test/file_creation.rb +0 -34
  119. data/test/helper.rb +0 -129
  120. data/test/support/rakefile_definitions.rb +0 -478
  121. data/test/support/ruby_runner.rb +0 -34
  122. data/test/test_private_reader.rb +0 -42
  123. data/test/test_rake.rb +0 -40
  124. data/test/test_rake_application.rb +0 -643
  125. data/test/test_rake_application_options.rb +0 -468
  126. data/test/test_rake_backtrace.rb +0 -119
  127. data/test/test_rake_clean.rb +0 -61
  128. data/test/test_rake_cpu_counter.rb +0 -68
  129. data/test/test_rake_definitions.rb +0 -84
  130. data/test/test_rake_directory_task.rb +0 -76
  131. data/test/test_rake_dsl.rb +0 -40
  132. data/test/test_rake_early_time.rb +0 -31
  133. data/test/test_rake_extension.rb +0 -59
  134. data/test/test_rake_file_creation_task.rb +0 -56
  135. data/test/test_rake_file_list.rb +0 -670
  136. data/test/test_rake_file_list_path_map.rb +0 -8
  137. data/test/test_rake_file_task.rb +0 -197
  138. data/test/test_rake_file_utils.rb +0 -314
  139. data/test/test_rake_ftp_file.rb +0 -74
  140. data/test/test_rake_functional.rb +0 -482
  141. data/test/test_rake_invocation_chain.rb +0 -64
  142. data/test/test_rake_late_time.rb +0 -18
  143. data/test/test_rake_linked_list.rb +0 -84
  144. data/test/test_rake_makefile_loader.rb +0 -46
  145. data/test/test_rake_multi_task.rb +0 -64
  146. data/test/test_rake_name_space.rb +0 -57
  147. data/test/test_rake_package_task.rb +0 -79
  148. data/test/test_rake_path_map.rb +0 -168
  149. data/test/test_rake_path_map_explode.rb +0 -34
  150. data/test/test_rake_path_map_partial.rb +0 -18
  151. data/test/test_rake_pathname_extensions.rb +0 -15
  152. data/test/test_rake_pseudo_status.rb +0 -21
  153. data/test/test_rake_rake_test_loader.rb +0 -20
  154. data/test/test_rake_reduce_compat.rb +0 -26
  155. data/test/test_rake_require.rb +0 -40
  156. data/test/test_rake_rules.rb +0 -388
  157. data/test/test_rake_scope.rb +0 -44
  158. data/test/test_rake_task.rb +0 -393
  159. data/test/test_rake_task_argument_parsing.rb +0 -119
  160. data/test/test_rake_task_arguments.rb +0 -127
  161. data/test/test_rake_task_lib.rb +0 -9
  162. data/test/test_rake_task_manager.rb +0 -178
  163. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  164. data/test/test_rake_task_with_arguments.rb +0 -172
  165. data/test/test_rake_test_task.rb +0 -146
  166. data/test/test_rake_thread_pool.rb +0 -145
  167. data/test/test_rake_top_level_functions.rb +0 -71
  168. data/test/test_rake_win32.rb +0 -72
  169. data/test/test_thread_history_display.rb +0 -101
  170. data/test/test_trace_output.rb +0 -52
@@ -1,71 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRakeTopLevelFunctions < Rake::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @app = Object.new
9
-
10
- def @app.called
11
- @called
12
- end
13
-
14
- def @app.method_missing(*a, &b)
15
- @called ||= []
16
- @called << [a, b]
17
- nil
18
- end
19
-
20
- Rake.application = @app
21
- end
22
-
23
- def test_namespace
24
- block = proc do end
25
-
26
- namespace("xyz", &block)
27
-
28
- expected = [
29
- [[:in_namespace, 'xyz'], block]
30
- ]
31
-
32
- assert_equal expected, @app.called
33
- end
34
-
35
- def test_import
36
- import('x', 'y', 'z')
37
-
38
- expected = [
39
- [[:add_import, 'x'], nil],
40
- [[:add_import, 'y'], nil],
41
- [[:add_import, 'z'], nil],
42
- ]
43
-
44
- assert_equal expected, @app.called
45
- end
46
-
47
- def test_when_writing
48
- out, = capture_io do
49
- when_writing("NOTWRITING") do
50
- puts "WRITING"
51
- end
52
- end
53
- assert_equal "WRITING\n", out
54
- end
55
-
56
- def test_when_not_writing
57
- Rake::FileUtilsExt.nowrite_flag = true
58
- _, err = capture_io do
59
- when_writing("NOTWRITING") do
60
- puts "WRITING"
61
- end
62
- end
63
- assert_equal "DRYRUN: NOTWRITING\n", err
64
- ensure
65
- Rake::FileUtilsExt.nowrite_flag = false
66
- end
67
-
68
- def test_missing_other_constant
69
- assert_raises(NameError) do Object.const_missing(:Xyz) end
70
- end
71
- end
@@ -1,72 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRakeWin32 < Rake::TestCase
4
-
5
- Win32 = Rake::Win32
6
-
7
- def test_win32_system_dir_uses_home_if_defined
8
- ENV['HOME'] = 'C:\\HP'
9
-
10
- assert_equal "C:/HP/Rake", Win32.win32_system_dir
11
- end
12
-
13
- def test_win32_system_dir_uses_homedrive_homepath_when_no_home_defined
14
- ENV['HOME'] = nil
15
- ENV['HOMEDRIVE'] = 'C:'
16
- ENV['HOMEPATH'] = '\\HP'
17
-
18
- assert_equal "C:/HP/Rake", Win32.win32_system_dir
19
- end
20
-
21
- def test_win32_system_dir_uses_appdata_when_no_home_or_home_combo
22
- ENV['APPDATA'] = "C:\\Documents and Settings\\HP\\Application Data"
23
- ENV['HOME'] = nil
24
- ENV['HOMEDRIVE'] = nil
25
- ENV['HOMEPATH'] = nil
26
-
27
- assert_equal "C:/Documents and Settings/HP/Application Data/Rake",
28
- Win32.win32_system_dir
29
- end
30
-
31
- def test_win32_system_dir_fallback_to_userprofile_otherwise
32
- ENV['HOME'] = nil
33
- ENV['HOMEDRIVE'] = nil
34
- ENV['HOMEPATH'] = nil
35
- ENV['APPDATA'] = nil
36
- ENV['USERPROFILE'] = "C:\\Documents and Settings\\HP"
37
-
38
- assert_equal "C:/Documents and Settings/HP/Rake", Win32.win32_system_dir
39
- end
40
-
41
- def test_win32_system_dir_nil_of_no_env_vars
42
- ENV['APPDATA'] = nil
43
- ENV['HOME'] = nil
44
- ENV['HOMEDRIVE'] = nil
45
- ENV['HOMEPATH'] = nil
46
- ENV['RAKE_SYSTEM'] = nil
47
- ENV['USERPROFILE'] = nil
48
-
49
- assert_raises(Rake::Win32::Win32HomeError) do
50
- Win32.win32_system_dir
51
- end
52
- end
53
-
54
- def test_win32_backtrace_with_different_case
55
- ex = nil
56
- begin
57
- raise 'test exception'
58
- rescue => ex
59
- end
60
-
61
- ex.set_backtrace ['abc', 'rakefile']
62
-
63
- rake = Rake::Application.new
64
- rake.options.trace = true
65
- rake.instance_variable_set(:@rakefile, 'Rakefile')
66
-
67
- _, err = capture_io { rake.display_error_message(ex) }
68
-
69
- assert_match(/rakefile/, err)
70
- end
71
-
72
- end
@@ -1,101 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- require 'rake/thread_history_display'
4
-
5
- class TestThreadHistoryDisplay < Rake::TestCase
6
- def setup
7
- super
8
- @time = 1_000_000
9
- @stats = []
10
- @display = Rake::ThreadHistoryDisplay.new(@stats)
11
- end
12
-
13
- def test_banner
14
- out, _ = capture_io do
15
- @display.show
16
- end
17
- assert_match(/Job History/i, out)
18
- end
19
-
20
- def test_item_queued
21
- @stats << event(:item_queued, :item_id => 123)
22
- out, _ = capture_io do
23
- @display.show
24
- end
25
- assert_match(/^ *1000000 +A +item_queued +item_id:1$/, out)
26
- end
27
-
28
- def test_item_dequeued
29
- @stats << event(:item_dequeued, :item_id => 123)
30
- out, _ = capture_io do
31
- @display.show
32
- end
33
- assert_match(/^ *1000000 +A +item_dequeued +item_id:1$/, out)
34
- end
35
-
36
- def test_multiple_items
37
- @stats << event(:item_queued, :item_id => 123)
38
- @stats << event(:item_queued, :item_id => 124)
39
- out, _ = capture_io do
40
- @display.show
41
- end
42
- assert_match(/^ *1000000 +A +item_queued +item_id:1$/, out)
43
- assert_match(/^ *1000001 +A +item_queued +item_id:2$/, out)
44
- end
45
-
46
- def test_waiting
47
- @stats << event(:waiting, :item_id => 123)
48
- out, _ = capture_io do
49
- @display.show
50
- end
51
- assert_match(/^ *1000000 +A +waiting +item_id:1$/, out)
52
- end
53
-
54
- def test_continue
55
- @stats << event(:continue, :item_id => 123)
56
- out, _ = capture_io do
57
- @display.show
58
- end
59
- assert_match(/^ *1000000 +A +continue +item_id:1$/, out)
60
- end
61
-
62
- def test_thread_deleted
63
- @stats << event(
64
- :thread_deleted,
65
- :deleted_thread => 123_456,
66
- :thread_count => 12)
67
- out, _ = capture_io do
68
- @display.show
69
- end
70
- assert_match(
71
- /^ *1000000 +A +thread_deleted( +deleted_thread:B| +thread_count:12){2}$/,
72
- out)
73
- end
74
-
75
- def test_thread_created
76
- @stats << event(
77
- :thread_created,
78
- :new_thread => 123_456,
79
- :thread_count => 13)
80
- out, _ = capture_io do
81
- @display.show
82
- end
83
- assert_match(
84
- /^ *1000000 +A +thread_created( +new_thread:B| +thread_count:13){2}$/,
85
- out)
86
- end
87
-
88
- private
89
-
90
- def event(type, data = {})
91
- result = {
92
- :event => type,
93
- :time => @time / 1_000_000.0,
94
- :data => data,
95
- :thread => Thread.current.object_id
96
- }
97
- @time += 1
98
- result
99
- end
100
-
101
- end
@@ -1,52 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'stringio'
3
-
4
- class TestTraceOutput < Rake::TestCase
5
- include Rake::TraceOutput
6
-
7
- class PrintSpy
8
- attr_reader :result, :calls
9
-
10
- def initialize
11
- @result = ""
12
- @calls = 0
13
- end
14
-
15
- def print(string)
16
- @result << string
17
- @calls += 1
18
- end
19
- end
20
-
21
- def test_trace_issues_single_io_for_args_with_empty_args
22
- spy = PrintSpy.new
23
- trace_on(spy)
24
- assert_equal "\n", spy.result
25
- assert_equal 1, spy.calls
26
- end
27
-
28
- def test_trace_issues_single_io_for_args_multiple_strings
29
- spy = PrintSpy.new
30
- trace_on(spy, "HI\n", "LO")
31
- assert_equal "HI\nLO\n", spy.result
32
- assert_equal 1, spy.calls
33
- end
34
-
35
- def test_trace_handles_nil_objects
36
- spy = PrintSpy.new
37
- trace_on(spy, "HI\n", nil, "LO")
38
- assert_equal "HI\nLO\n", spy.result
39
- assert_equal 1, spy.calls
40
- end
41
-
42
- def test_trace_issues_single_io_for_args_multiple_strings_and_alternate_sep
43
- old_sep = $\
44
- $\ = "\r"
45
- spy = PrintSpy.new
46
- trace_on(spy, "HI\r", "LO")
47
- assert_equal "HI\rLO\r", spy.result
48
- assert_equal 1, spy.calls
49
- ensure
50
- $\ = old_sep
51
- end
52
- end