rake 10.5.0 → 13.0.6

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 (159) hide show
  1. checksums.yaml +5 -5
  2. data/History.rdoc +2032 -288
  3. data/README.rdoc +40 -24
  4. data/doc/jamis.rb +1 -0
  5. data/doc/rake.1 +139 -124
  6. data/doc/rakefile.rdoc +2 -4
  7. data/{bin → exe}/rake +1 -7
  8. data/lib/rake/application.rb +131 -90
  9. data/lib/rake/backtrace.rb +3 -2
  10. data/lib/rake/clean.rb +7 -5
  11. data/lib/rake/cloneable.rb +1 -0
  12. data/lib/rake/cpu_counter.rb +10 -28
  13. data/lib/rake/default_loader.rb +1 -0
  14. data/lib/rake/dsl_definition.rb +5 -11
  15. data/lib/rake/early_time.rb +1 -0
  16. data/lib/rake/ext/core.rb +1 -0
  17. data/lib/rake/ext/string.rb +22 -21
  18. data/lib/rake/file_creation_task.rb +4 -3
  19. data/lib/rake/file_list.rb +34 -27
  20. data/lib/rake/file_task.rb +12 -4
  21. data/lib/rake/file_utils.rb +38 -32
  22. data/lib/rake/file_utils_ext.rb +8 -18
  23. data/lib/rake/invocation_chain.rb +1 -0
  24. data/lib/rake/invocation_exception_mixin.rb +1 -0
  25. data/lib/rake/late_time.rb +2 -1
  26. data/lib/rake/linked_list.rb +24 -15
  27. data/lib/rake/loaders/makefile.rb +5 -4
  28. data/lib/rake/multi_task.rb +2 -1
  29. data/lib/rake/name_space.rb +1 -1
  30. data/lib/rake/packagetask.rb +40 -17
  31. data/lib/rake/phony.rb +2 -1
  32. data/lib/rake/private_reader.rb +1 -0
  33. data/lib/rake/promise.rb +13 -12
  34. data/lib/rake/pseudo_status.rb +1 -0
  35. data/lib/rake/rake_module.rb +30 -1
  36. data/lib/rake/rake_test_loader.rb +9 -4
  37. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  38. data/lib/rake/scope.rb +3 -2
  39. data/lib/rake/task.rb +82 -31
  40. data/lib/rake/task_argument_error.rb +1 -0
  41. data/lib/rake/task_arguments.rb +15 -4
  42. data/lib/rake/task_manager.rb +56 -32
  43. data/lib/rake/tasklib.rb +2 -14
  44. data/lib/rake/testtask.rb +37 -61
  45. data/lib/rake/thread_history_display.rb +4 -3
  46. data/lib/rake/thread_pool.rb +16 -17
  47. data/lib/rake/trace_output.rb +2 -1
  48. data/lib/rake/version.rb +4 -1
  49. data/lib/rake/win32.rb +10 -15
  50. data/lib/rake.rb +35 -43
  51. data/rake.gemspec +100 -0
  52. metadata +27 -223
  53. data/.autotest +0 -7
  54. data/.rubocop.yml +0 -27
  55. data/.togglerc +0 -7
  56. data/CONTRIBUTING.rdoc +0 -38
  57. data/Manifest.txt +0 -166
  58. data/Rakefile +0 -81
  59. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  60. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  61. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  62. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  63. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  64. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  65. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  66. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  67. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  68. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  69. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  70. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  71. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  72. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  73. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  74. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  75. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  76. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  77. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  78. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  79. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  80. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  81. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  82. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  83. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  84. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  85. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  86. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  87. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  88. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  89. data/lib/rake/alt_system.rb +0 -110
  90. data/lib/rake/contrib/.document +0 -1
  91. data/lib/rake/contrib/compositepublisher.rb +0 -21
  92. data/lib/rake/contrib/ftptools.rb +0 -137
  93. data/lib/rake/contrib/publisher.rb +0 -81
  94. data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  95. data/lib/rake/contrib/sshpublisher.rb +0 -61
  96. data/lib/rake/contrib/sys.rb +0 -4
  97. data/lib/rake/ext/module.rb +0 -2
  98. data/lib/rake/ext/pathname.rb +0 -25
  99. data/lib/rake/ext/time.rb +0 -18
  100. data/lib/rake/gempackagetask.rb +0 -4
  101. data/lib/rake/pathmap.rb +0 -3
  102. data/lib/rake/rdoctask.rb +0 -4
  103. data/lib/rake/ruby182_test_unit_fix.rb +0 -29
  104. data/lib/rake/runtest.rb +0 -27
  105. data/rakelib/publish.rake +0 -20
  106. data/rakelib/test_times.rake +0 -25
  107. data/test/file_creation.rb +0 -34
  108. data/test/helper.rb +0 -129
  109. data/test/support/rakefile_definitions.rb +0 -478
  110. data/test/support/ruby_runner.rb +0 -34
  111. data/test/test_private_reader.rb +0 -42
  112. data/test/test_rake.rb +0 -40
  113. data/test/test_rake_application.rb +0 -643
  114. data/test/test_rake_application_options.rb +0 -468
  115. data/test/test_rake_backtrace.rb +0 -119
  116. data/test/test_rake_clean.rb +0 -61
  117. data/test/test_rake_cpu_counter.rb +0 -68
  118. data/test/test_rake_definitions.rb +0 -84
  119. data/test/test_rake_directory_task.rb +0 -76
  120. data/test/test_rake_dsl.rb +0 -40
  121. data/test/test_rake_early_time.rb +0 -31
  122. data/test/test_rake_extension.rb +0 -59
  123. data/test/test_rake_file_creation_task.rb +0 -56
  124. data/test/test_rake_file_list.rb +0 -670
  125. data/test/test_rake_file_list_path_map.rb +0 -8
  126. data/test/test_rake_file_task.rb +0 -197
  127. data/test/test_rake_file_utils.rb +0 -314
  128. data/test/test_rake_ftp_file.rb +0 -74
  129. data/test/test_rake_functional.rb +0 -482
  130. data/test/test_rake_invocation_chain.rb +0 -64
  131. data/test/test_rake_late_time.rb +0 -18
  132. data/test/test_rake_linked_list.rb +0 -84
  133. data/test/test_rake_makefile_loader.rb +0 -46
  134. data/test/test_rake_multi_task.rb +0 -64
  135. data/test/test_rake_name_space.rb +0 -57
  136. data/test/test_rake_package_task.rb +0 -79
  137. data/test/test_rake_path_map.rb +0 -168
  138. data/test/test_rake_path_map_explode.rb +0 -34
  139. data/test/test_rake_path_map_partial.rb +0 -18
  140. data/test/test_rake_pathname_extensions.rb +0 -15
  141. data/test/test_rake_pseudo_status.rb +0 -21
  142. data/test/test_rake_rake_test_loader.rb +0 -20
  143. data/test/test_rake_reduce_compat.rb +0 -26
  144. data/test/test_rake_require.rb +0 -40
  145. data/test/test_rake_rules.rb +0 -388
  146. data/test/test_rake_scope.rb +0 -44
  147. data/test/test_rake_task.rb +0 -393
  148. data/test/test_rake_task_argument_parsing.rb +0 -119
  149. data/test/test_rake_task_arguments.rb +0 -127
  150. data/test/test_rake_task_lib.rb +0 -9
  151. data/test/test_rake_task_manager.rb +0 -178
  152. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  153. data/test/test_rake_task_with_arguments.rb +0 -172
  154. data/test/test_rake_test_task.rb +0 -146
  155. data/test/test_rake_thread_pool.rb +0 -145
  156. data/test/test_rake_top_level_functions.rb +0 -71
  157. data/test/test_rake_win32.rb +0 -72
  158. data/test/test_thread_history_display.rb +0 -101
  159. data/test/test_trace_output.rb +0 -52
@@ -1,12 +1,12 @@
1
- require 'shellwords'
2
- require 'optparse'
1
+ # frozen_string_literal: true
2
+ require "optparse"
3
3
 
4
- require 'rake/task_manager'
5
- require 'rake/file_list'
6
- require 'rake/thread_pool'
7
- require 'rake/thread_history_display'
8
- require 'rake/trace_output'
9
- require 'rake/win32'
4
+ require "rake/task_manager"
5
+ require "rake/file_list"
6
+ require "rake/thread_pool"
7
+ require "rake/thread_history_display"
8
+ require "rake/trace_output"
9
+ require "rake/win32"
10
10
 
11
11
  module Rake
12
12
 
@@ -35,17 +35,20 @@ module Rake
35
35
  # List of the top level task names (task names from the command line).
36
36
  attr_reader :top_level_tasks
37
37
 
38
+ # Override the detected TTY output state (mostly for testing)
39
+ attr_writer :tty_output
40
+
38
41
  DEFAULT_RAKEFILES = [
39
- 'rakefile',
40
- 'Rakefile',
41
- 'rakefile.rb',
42
- 'Rakefile.rb'
42
+ "rakefile",
43
+ "Rakefile",
44
+ "rakefile.rb",
45
+ "Rakefile.rb"
43
46
  ].freeze
44
47
 
45
48
  # Initialize a Rake::Application object.
46
49
  def initialize
47
50
  super
48
- @name = 'rake'
51
+ @name = "rake"
49
52
  @rakefiles = DEFAULT_RAKEFILES.dup
50
53
  @rakefile = nil
51
54
  @pending_imports = []
@@ -54,11 +57,13 @@ module Rake
54
57
  @default_loader = Rake::DefaultLoader.new
55
58
  @original_dir = Dir.pwd
56
59
  @top_level_tasks = []
57
- add_loader('rb', DefaultLoader.new)
58
- add_loader('rf', DefaultLoader.new)
59
- add_loader('rake', DefaultLoader.new)
60
+ add_loader("rb", DefaultLoader.new)
61
+ add_loader("rf", DefaultLoader.new)
62
+ add_loader("rake", DefaultLoader.new)
60
63
  @tty_output = STDOUT.tty?
61
- @terminal_columns = ENV['RAKE_COLUMNS'].to_i
64
+ @terminal_columns = ENV["RAKE_COLUMNS"].to_i
65
+
66
+ set_default_options
62
67
  end
63
68
 
64
69
  # Run the Rake application. The run method performs the following
@@ -71,19 +76,24 @@ module Rake
71
76
  # If you wish to build a custom rake command, you should call
72
77
  # +init+ on your application. Then define any tasks. Finally,
73
78
  # call +top_level+ to run your top level tasks.
74
- def run
79
+ def run(argv = ARGV)
75
80
  standard_exception_handling do
76
- init
81
+ init "rake", argv
77
82
  load_rakefile
78
83
  top_level
79
84
  end
80
85
  end
81
86
 
82
87
  # Initialize the command line parameters and app name.
83
- def init(app_name='rake')
88
+ def init(app_name="rake", argv = ARGV)
84
89
  standard_exception_handling do
85
90
  @name = app_name
86
- args = handle_options
91
+ begin
92
+ args = handle_options argv
93
+ rescue ArgumentError
94
+ # Backward compatibility for capistrano
95
+ args = handle_options
96
+ end
87
97
  collect_command_line_tasks(args)
88
98
  end
89
99
  end
@@ -162,7 +172,7 @@ module Rake
162
172
  args = []
163
173
 
164
174
  begin
165
- /((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args
175
+ /\s*((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args
166
176
 
167
177
  remaining_args = $2
168
178
  args << $1.gsub(/\\(.)/, '\1')
@@ -202,13 +212,22 @@ module Rake
202
212
  end
203
213
 
204
214
  def display_exception_details(ex) # :nodoc:
205
- seen = Thread.current[:rake_display_exception_details_seen] ||= []
206
- return if seen.include? ex
207
- seen << ex
215
+ display_exception_details_seen << ex
208
216
 
209
217
  display_exception_message_details(ex)
210
218
  display_exception_backtrace(ex)
211
- display_exception_details(ex.cause) if has_cause?(ex)
219
+ display_cause_details(ex.cause) if has_cause?(ex)
220
+ end
221
+
222
+ def display_cause_details(ex) # :nodoc:
223
+ return if display_exception_details_seen.include? ex
224
+
225
+ trace "\nCaused by:"
226
+ display_exception_details(ex)
227
+ end
228
+
229
+ def display_exception_details_seen # :nodoc:
230
+ Thread.current[:rake_display_exception_details_seen] ||= []
212
231
  end
213
232
 
214
233
  def has_cause?(ex) # :nodoc:
@@ -257,7 +276,7 @@ module Rake
257
276
  if File.exist?(fn)
258
277
  others = FileList.glob(fn, File::FNM_CASEFOLD)
259
278
  return others.size == 1 ? others.first : fn
260
- elsif fn == ''
279
+ elsif fn == ""
261
280
  return fn
262
281
  end
263
282
  end
@@ -269,11 +288,6 @@ module Rake
269
288
  @tty_output
270
289
  end
271
290
 
272
- # Override the detected TTY output state (mostly for testing)
273
- def tty_output=(tty_output_state) # :nodoc:
274
- @tty_output = tty_output_state
275
- end
276
-
277
291
  # We will truncate output if we are outputting to a TTY or if we've been
278
292
  # given an explicit column width to honor
279
293
  def truncate_output? # :nodoc:
@@ -345,7 +359,7 @@ module Rake
345
359
  end
346
360
 
347
361
  def unix? # :nodoc:
348
- RbConfig::CONFIG['host_os'] =~
362
+ RbConfig::CONFIG["host_os"] =~
349
363
  /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
350
364
  end
351
365
 
@@ -378,7 +392,7 @@ module Rake
378
392
 
379
393
  def sort_options(options) # :nodoc:
380
394
  options.sort_by { |opt|
381
- opt.select { |o| o =~ /^-/ }.map { |o| o.downcase }.sort.reverse
395
+ opt.select { |o| o.is_a?(String) && o =~ /^-/ }.map(&:downcase).sort.reverse
382
396
  }
383
397
  end
384
398
  private :sort_options
@@ -388,38 +402,45 @@ module Rake
388
402
  def standard_rake_options # :nodoc:
389
403
  sort_options(
390
404
  [
391
- ['--all', '-A',
405
+ ["--all", "-A",
392
406
  "Show all tasks, even uncommented ones (in combination with -T or -D)",
393
407
  lambda { |value|
394
408
  options.show_all_tasks = value
395
409
  }
396
410
  ],
397
- ['--backtrace=[OUT]',
411
+ ["--backtrace=[OUT]",
398
412
  "Enable full backtrace. OUT can be stderr (default) or stdout.",
399
413
  lambda { |value|
400
414
  options.backtrace = true
401
- select_trace_output(options, 'backtrace', value)
415
+ select_trace_output(options, "backtrace", value)
402
416
  }
403
417
  ],
404
- ['--build-all', '-B',
418
+ ["--build-all", "-B",
405
419
  "Build all prerequisites, including those which are up-to-date.",
406
420
  lambda { |value|
407
421
  options.build_all = true
408
422
  }
409
423
  ],
410
- ['--comments',
424
+ ["--comments",
411
425
  "Show commented tasks only",
412
426
  lambda { |value|
413
427
  options.show_all_tasks = !value
414
428
  }
415
429
  ],
416
- ['--describe', '-D [PATTERN]',
430
+ ["--describe", "-D [PATTERN]",
417
431
  "Describe the tasks (matching optional PATTERN), then exit.",
418
432
  lambda { |value|
419
433
  select_tasks_to_show(options, :describe, value)
420
434
  }
421
435
  ],
422
- ['--dry-run', '-n',
436
+ ["--directory", "-C [DIRECTORY]",
437
+ "Change to DIRECTORY before doing anything.",
438
+ lambda { |value|
439
+ Dir.chdir value
440
+ @original_dir = Dir.pwd
441
+ }
442
+ ],
443
+ ["--dry-run", "-n",
423
444
  "Do a dry run without executing actions.",
424
445
  lambda { |value|
425
446
  Rake.verbose(true)
@@ -428,31 +449,31 @@ module Rake
428
449
  options.trace = true
429
450
  }
430
451
  ],
431
- ['--execute', '-e CODE',
452
+ ["--execute", "-e CODE",
432
453
  "Execute some Ruby code and exit.",
433
454
  lambda { |value|
434
455
  eval(value)
435
456
  exit
436
457
  }
437
458
  ],
438
- ['--execute-print', '-p CODE',
459
+ ["--execute-print", "-p CODE",
439
460
  "Execute some Ruby code, print the result, then exit.",
440
461
  lambda { |value|
441
462
  puts eval(value)
442
463
  exit
443
464
  }
444
465
  ],
445
- ['--execute-continue', '-E CODE',
466
+ ["--execute-continue", "-E CODE",
446
467
  "Execute some Ruby code, " +
447
468
  "then continue with normal task processing.",
448
469
  lambda { |value| eval(value) }
449
470
  ],
450
- ['--jobs', '-j [NUMBER]',
471
+ ["--jobs", "-j [NUMBER]",
451
472
  "Specifies the maximum number of tasks to execute in parallel. " +
452
473
  "(default is number of CPU cores + 4)",
453
474
  lambda { |value|
454
- if value.nil? || value == ''
455
- value = FIXNUM_MAX
475
+ if value.nil? || value == ""
476
+ value = Float::INFINITY
456
477
  elsif value =~ /^\d+$/
457
478
  value = value.to_i
458
479
  else
@@ -462,7 +483,7 @@ module Rake
462
483
  options.thread_pool_size = value - 1
463
484
  }
464
485
  ],
465
- ['--job-stats [LEVEL]',
486
+ ["--job-stats [LEVEL]",
466
487
  "Display job statistics. " +
467
488
  "LEVEL=history displays a complete job list",
468
489
  lambda { |value|
@@ -473,42 +494,42 @@ module Rake
473
494
  end
474
495
  }
475
496
  ],
476
- ['--libdir', '-I LIBDIR',
497
+ ["--libdir", "-I LIBDIR",
477
498
  "Include LIBDIR in the search path for required modules.",
478
499
  lambda { |value| $:.push(value) }
479
500
  ],
480
- ['--multitask', '-m',
501
+ ["--multitask", "-m",
481
502
  "Treat all tasks as multitasks.",
482
503
  lambda { |value| options.always_multitask = true }
483
504
  ],
484
- ['--no-search', '--nosearch',
485
- '-N', "Do not search parent directories for the Rakefile.",
505
+ ["--no-search", "--nosearch",
506
+ "-N", "Do not search parent directories for the Rakefile.",
486
507
  lambda { |value| options.nosearch = true }
487
508
  ],
488
- ['--prereqs', '-P',
509
+ ["--prereqs", "-P",
489
510
  "Display the tasks and dependencies, then exit.",
490
511
  lambda { |value| options.show_prereqs = true }
491
512
  ],
492
- ['--quiet', '-q',
513
+ ["--quiet", "-q",
493
514
  "Do not log messages to standard output.",
494
515
  lambda { |value| Rake.verbose(false) }
495
516
  ],
496
- ['--rakefile', '-f [FILENAME]',
517
+ ["--rakefile", "-f [FILENAME]",
497
518
  "Use FILENAME as the rakefile to search for.",
498
519
  lambda { |value|
499
- value ||= ''
520
+ value ||= ""
500
521
  @rakefiles.clear
501
522
  @rakefiles << value
502
523
  }
503
524
  ],
504
- ['--rakelibdir', '--rakelib', '-R RAKELIBDIR',
525
+ ["--rakelibdir", "--rakelib", "-R RAKELIBDIR",
505
526
  "Auto-import any .rake files in RAKELIBDIR. " +
506
527
  "(default is 'rakelib')",
507
528
  lambda { |value|
508
529
  options.rakelib = value.split(File::PATH_SEPARATOR)
509
530
  }
510
531
  ],
511
- ['--require', '-r MODULE',
532
+ ["--require", "-r MODULE",
512
533
  "Require MODULE before executing rakefile.",
513
534
  lambda { |value|
514
535
  begin
@@ -522,11 +543,11 @@ module Rake
522
543
  end
523
544
  }
524
545
  ],
525
- ['--rules',
546
+ ["--rules",
526
547
  "Trace the rules resolution.",
527
548
  lambda { |value| options.trace_rules = true }
528
549
  ],
529
- ['--silent', '-s',
550
+ ["--silent", "-s",
530
551
  "Like --quiet, but also suppresses the " +
531
552
  "'in directory' announcement.",
532
553
  lambda { |value|
@@ -534,59 +555,60 @@ module Rake
534
555
  options.silent = true
535
556
  }
536
557
  ],
537
- ['--suppress-backtrace PATTERN',
558
+ ["--suppress-backtrace PATTERN",
538
559
  "Suppress backtrace lines matching regexp PATTERN. " +
539
560
  "Ignored if --trace is on.",
540
561
  lambda { |value|
541
562
  options.suppress_backtrace_pattern = Regexp.new(value)
542
563
  }
543
564
  ],
544
- ['--system', '-g',
565
+ ["--system", "-g",
545
566
  "Using system wide (global) rakefiles " +
546
567
  "(usually '~/.rake/*.rake').",
547
568
  lambda { |value| options.load_system = true }
548
569
  ],
549
- ['--no-system', '--nosystem', '-G',
570
+ ["--no-system", "--nosystem", "-G",
550
571
  "Use standard project Rakefile search paths, " +
551
572
  "ignore system wide rakefiles.",
552
573
  lambda { |value| options.ignore_system = true }
553
574
  ],
554
- ['--tasks', '-T [PATTERN]',
575
+ ["--tasks", "-T [PATTERN]",
555
576
  "Display the tasks (matching optional PATTERN) " +
556
- "with descriptions, then exit.",
577
+ "with descriptions, then exit. " +
578
+ "-AT combination displays all of tasks contained no description.",
557
579
  lambda { |value|
558
580
  select_tasks_to_show(options, :tasks, value)
559
581
  }
560
582
  ],
561
- ['--trace=[OUT]', '-t',
583
+ ["--trace=[OUT]", "-t",
562
584
  "Turn on invoke/execute tracing, enable full backtrace. " +
563
585
  "OUT can be stderr (default) or stdout.",
564
586
  lambda { |value|
565
587
  options.trace = true
566
588
  options.backtrace = true
567
- select_trace_output(options, 'trace', value)
589
+ select_trace_output(options, "trace", value)
568
590
  Rake.verbose(true)
569
591
  }
570
592
  ],
571
- ['--verbose', '-v',
593
+ ["--verbose", "-v",
572
594
  "Log message to standard output.",
573
595
  lambda { |value| Rake.verbose(true) }
574
596
  ],
575
- ['--version', '-V',
597
+ ["--version", "-V",
576
598
  "Display the program version.",
577
599
  lambda { |value|
578
- puts "rake, version #{RAKEVERSION}"
600
+ puts "rake, version #{Rake::VERSION}"
579
601
  exit
580
602
  }
581
603
  ],
582
- ['--where', '-W [PATTERN]',
604
+ ["--where", "-W [PATTERN]",
583
605
  "Describe the tasks (matching optional PATTERN), then exit.",
584
606
  lambda { |value|
585
607
  select_tasks_to_show(options, :lines, value)
586
608
  options.show_all_tasks = true
587
609
  }
588
610
  ],
589
- ['--no-deprecation-warnings', '-X',
611
+ ["--no-deprecation-warnings", "-X",
590
612
  "Disable the deprecation warnings.",
591
613
  lambda { |value|
592
614
  options.ignore_deprecate = true
@@ -597,7 +619,7 @@ module Rake
597
619
 
598
620
  def select_tasks_to_show(options, show_tasks, value) # :nodoc:
599
621
  options.show_tasks = show_tasks
600
- options.show_task_pattern = Regexp.new(value || '')
622
+ options.show_task_pattern = Regexp.new(value || "")
601
623
  Rake::TaskManager.record_task_metadata = true
602
624
  end
603
625
  private :select_tasks_to_show
@@ -605,9 +627,9 @@ module Rake
605
627
  def select_trace_output(options, trace_option, value) # :nodoc:
606
628
  value = value.strip unless value.nil?
607
629
  case value
608
- when 'stdout'
630
+ when "stdout"
609
631
  options.trace_output = $stdout
610
- when 'stderr', nil
632
+ when "stderr", nil
611
633
  options.trace_output = $stderr
612
634
  else
613
635
  fail CommandLineOptionError,
@@ -619,9 +641,8 @@ module Rake
619
641
  # Read and handle the command line options. Returns the command line
620
642
  # arguments that we didn't understand, which should (in theory) be just
621
643
  # task names and env vars.
622
- def handle_options # :nodoc:
623
- options.rakelib = ['rakelib']
624
- options.trace_output = $stderr
644
+ def handle_options(argv) # :nodoc:
645
+ set_default_options
625
646
 
626
647
  OptionParser.new do |opts|
627
648
  opts.banner = "#{Rake.application.name} [-f rakefile] {options} targets..."
@@ -634,8 +655,8 @@ module Rake
634
655
  end
635
656
 
636
657
  standard_rake_options.each { |args| opts.on(*args) }
637
- opts.environment('RAKEOPT')
638
- end.parse(ARGV)
658
+ opts.environment("RAKEOPT")
659
+ end.parse(argv)
639
660
  end
640
661
 
641
662
  # Similar to the regular Ruby +require+ command, but will check
@@ -673,7 +694,7 @@ module Rake
673
694
 
674
695
  def raw_load_rakefile # :nodoc:
675
696
  rakefile, location = find_rakefile_location
676
- if (! options.ignore_system) &&
697
+ if (!options.ignore_system) &&
677
698
  (options.load_system || rakefile.nil?) &&
678
699
  system_dir && File.directory?(system_dir)
679
700
  print_rakefile_directory(location)
@@ -687,7 +708,7 @@ module Rake
687
708
  Dir.chdir(location)
688
709
  print_rakefile_directory(location)
689
710
  Rake.load_rakefile(File.expand_path(@rakefile)) if
690
- @rakefile && @rakefile != ''
711
+ @rakefile && @rakefile != ""
691
712
  options.rakelib.each do |rlib|
692
713
  glob("#{rlib}/*.rake") do |name|
693
714
  add_import name
@@ -698,7 +719,7 @@ module Rake
698
719
  end
699
720
 
700
721
  def glob(path, &block) # :nodoc:
701
- FileList.glob(path.gsub("\\", '/')).each(&block)
722
+ FileList.glob(path.tr("\\", "/")).each(&block)
702
723
  end
703
724
  private :glob
704
725
 
@@ -706,8 +727,8 @@ module Rake
706
727
  def system_dir # :nodoc:
707
728
  @system_dir ||=
708
729
  begin
709
- if ENV['RAKE_SYSTEM']
710
- ENV['RAKE_SYSTEM']
730
+ if ENV["RAKE_SYSTEM"]
731
+ ENV["RAKE_SYSTEM"]
711
732
  else
712
733
  standard_system_dir
713
734
  end
@@ -721,7 +742,7 @@ module Rake
721
742
  end
722
743
  else
723
744
  def standard_system_dir #:nodoc:
724
- File.join(File.expand_path('~'), '.rake')
745
+ File.join(File.expand_path("~"), ".rake")
725
746
  end
726
747
  end
727
748
  private :standard_system_dir
@@ -780,11 +801,31 @@ module Rake
780
801
  re = /^#{@rakefile}$/
781
802
  re = /#{re.source}/i if windows?
782
803
 
783
- backtrace.find { |str| str =~ re } || ''
804
+ backtrace.find { |str| str =~ re } || ""
805
+ end
806
+
807
+ def set_default_options # :nodoc:
808
+ options.always_multitask = false
809
+ options.backtrace = false
810
+ options.build_all = false
811
+ options.dryrun = false
812
+ options.ignore_deprecate = false
813
+ options.ignore_system = false
814
+ options.job_stats = false
815
+ options.load_system = false
816
+ options.nosearch = false
817
+ options.rakelib = %w[rakelib]
818
+ options.show_all_tasks = false
819
+ options.show_prereqs = false
820
+ options.show_task_pattern = nil
821
+ options.show_tasks = nil
822
+ options.silent = false
823
+ options.suppress_backtrace_pattern = nil
824
+ options.thread_pool_size = Rake.suggested_thread_count
825
+ options.trace = false
826
+ options.trace_output = $stderr
827
+ options.trace_rules = false
784
828
  end
785
829
 
786
- private
787
- FIXNUM_MAX = (2**(0.size * 8 - 2) - 1) # :nodoc:
788
-
789
830
  end
790
831
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Rake
2
3
  module Backtrace # :nodoc: all
3
4
  SYS_KEYS = RbConfig::CONFIG.keys.grep(/(?:[a-z]prefix|libdir)\z/)
@@ -5,12 +6,12 @@ module Rake
5
6
  [ File.join(File.dirname(__FILE__), "..") ]
6
7
 
7
8
  SUPPRESSED_PATHS = SYS_PATHS.
8
- map { |s| s.gsub("\\", "/") }.
9
+ map { |s| s.tr("\\", "/") }.
9
10
  map { |f| File.expand_path(f) }.
10
11
  reject { |s| s.nil? || s =~ /^ *$/ }
11
12
  SUPPRESSED_PATHS_RE = SUPPRESSED_PATHS.map { |f| Regexp.quote(f) }.join("|")
12
13
  SUPPRESSED_PATHS_RE << "|^org\\/jruby\\/\\w+\\.java" if
13
- Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
14
+ Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == "jruby"
14
15
 
15
16
  SUPPRESS_PATTERN = %r!(\A(#{SUPPRESSED_PATHS_RE})|bin/rake:\d+)!i
16
17
 
data/lib/rake/clean.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # The 'rake/clean' file defines two file lists (CLEAN and CLOBBER) and
2
3
  # two rake tasks (:clean and :clobber).
3
4
  #
@@ -11,7 +12,7 @@
11
12
  # The intent of this task is to return a project to its
12
13
  # pristine, just unpacked state.
13
14
 
14
- require 'rake'
15
+ require "rake"
15
16
 
16
17
  # :stopdoc:
17
18
 
@@ -27,9 +28,10 @@ module Rake
27
28
  end
28
29
  end
29
30
 
30
- def cleanup(file_name, opts={})
31
+ def cleanup(file_name, **opts)
31
32
  begin
32
- rm_r file_name, opts
33
+ opts = { verbose: Rake.application.options.trace }.merge(opts)
34
+ rm_r file_name, **opts
33
35
  rescue StandardError => ex
34
36
  puts "Failed to remove #{file_name}: #{ex}" unless file_already_gone?(file_name)
35
37
  end
@@ -60,7 +62,7 @@ end
60
62
 
61
63
  CLEAN = ::Rake::FileList["**/*~", "**/*.bak", "**/core"]
62
64
  CLEAN.clear_exclude.exclude { |fn|
63
- fn.pathmap("%f").downcase == 'core' && File.directory?(fn)
65
+ fn.pathmap("%f").downcase == "core" && File.directory?(fn)
64
66
  }
65
67
 
66
68
  desc "Remove any temporary products."
@@ -71,6 +73,6 @@ end
71
73
  CLOBBER = ::Rake::FileList.new
72
74
 
73
75
  desc "Remove any generated files."
74
- task :clobber => [:clean] do
76
+ task clobber: [:clean] do
75
77
  Rake::Cleaner.cleanup_files(CLOBBER)
76
78
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Rake
2
3
  ##
3
4
  # Mixin for creating easily cloned objects.