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/tasklib.rb CHANGED
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'rake'
4
2
 
5
3
  module Rake
@@ -7,6 +5,7 @@ module Rake
7
5
  # Base class for Task Libraries.
8
6
  class TaskLib
9
7
  include Cloneable
8
+ include Rake::DSL
10
9
 
11
10
  # Make a symbol by pasting two strings together.
12
11
  #
data/lib/rake/testtask.rb CHANGED
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  # Define a task library for running unit tests.
4
2
 
5
3
  require 'rake'
@@ -10,7 +8,7 @@ module Rake
10
8
  # Create a task that runs a set of tests.
11
9
  #
12
10
  # Example:
13
- #
11
+ #
14
12
  # Rake::TestTask.new do |t|
15
13
  # t.libs << "test"
16
14
  # t.test_files = FileList['test/test*.rb']
@@ -63,7 +61,7 @@ module Rake
63
61
  # * :rake -- Rake provided test loading script (default).
64
62
  # * :testrb -- Ruby provided test loading script.
65
63
  # * :direct -- Load tests using command line loader.
66
- #
64
+ #
67
65
  attr_accessor :loader
68
66
 
69
67
  # Array of commandline options to pass to ruby when running test loader.
@@ -95,33 +93,37 @@ module Rake
95
93
 
96
94
  # Create the tasks defined by this task lib.
97
95
  def define
98
- lib_path = @libs.join(File::PATH_SEPARATOR)
99
96
  desc "Run tests" + (@name==:test ? "" : " for #{@name}")
100
97
  task @name do
101
- run_code = ''
102
- RakeFileUtils.verbose(@verbose) do
103
- run_code =
104
- case @loader
105
- when :direct
106
- "-e 'ARGV.each{|f| load f}'"
107
- when :testrb
108
- "-S testrb #{fix}"
109
- when :rake
110
- rake_loader
111
- end
112
- @ruby_opts.unshift( "-I\"#{lib_path}\"" )
113
- @ruby_opts.unshift( "-w" ) if @warning
114
- ruby @ruby_opts.join(" ") +
115
- " \"#{run_code}\" " +
116
- file_list.collect { |fn| "\"#{fn}\"" }.join(' ') +
117
- " #{option_list}"
98
+ FileUtilsExt.verbose(@verbose) do
99
+ ruby "#{ruby_opts_string} #{run_code} #{file_list_string} #{option_list}"
118
100
  end
119
101
  end
120
102
  self
121
103
  end
122
104
 
123
105
  def option_list # :nodoc:
124
- ENV['TESTOPTS'] || @options || ""
106
+ (ENV['TESTOPTS'] ||
107
+ ENV['TESTOPT'] ||
108
+ ENV['TEST_OPTS'] ||
109
+ ENV['TEST_OPT'] ||
110
+ @options ||
111
+ "")
112
+ end
113
+
114
+ def ruby_opts_string
115
+ opts = @ruby_opts.dup
116
+ opts.unshift( "-I\"#{lib_path}\"" ) unless @libs.empty?
117
+ opts.unshift( "-w" ) if @warning
118
+ opts.join(" ")
119
+ end
120
+
121
+ def lib_path
122
+ @libs.join(File::PATH_SEPARATOR)
123
+ end
124
+
125
+ def file_list_string
126
+ file_list.collect { |fn| "\"#{fn}\"" }.join(' ')
125
127
  end
126
128
 
127
129
  def file_list # :nodoc:
@@ -130,20 +132,35 @@ module Rake
130
132
  else
131
133
  result = []
132
134
  result += @test_files.to_a if @test_files
133
- result += FileList[ @pattern ].to_a if @pattern
134
- FileList[result]
135
+ result << @pattern if @pattern
136
+ result
135
137
  end
136
138
  end
137
139
 
138
140
  def fix # :nodoc:
139
- case RUBY_VERSION
141
+ case ruby_version
140
142
  when '1.8.2'
141
- find_file 'rake/ruby182_test_unit_fix'
143
+ "\"#{find_file 'rake/ruby182_test_unit_fix'}\""
142
144
  else
143
145
  nil
144
146
  end || ''
145
147
  end
146
148
 
149
+ def ruby_version
150
+ RUBY_VERSION
151
+ end
152
+
153
+ def run_code
154
+ case @loader
155
+ when :direct
156
+ "-e \"ARGV.each{|f| require f}\""
157
+ when :testrb
158
+ "-S testrb #{fix}"
159
+ when :rake
160
+ "-I\"#{rake_lib_dir}\" \"#{rake_loader}\""
161
+ end
162
+ end
163
+
147
164
  def rake_loader # :nodoc:
148
165
  find_file('rake/rake_test_loader') or
149
166
  fail "unable to find rake test loader"
@@ -157,5 +174,18 @@ module Rake
157
174
  nil
158
175
  end
159
176
 
177
+ def rake_lib_dir # :nodoc:
178
+ find_dir('rake') or
179
+ fail "unable to find rake lib"
180
+ end
181
+
182
+ def find_dir(fn) # :nodoc:
183
+ $LOAD_PATH.each do |path|
184
+ file_path = File.join(path, "#{fn}.rb")
185
+ return path if File.exist? file_path
186
+ end
187
+ nil
188
+ end
189
+
160
190
  end
161
191
  end
@@ -0,0 +1,10 @@
1
+ module Rake
2
+ module Version
3
+ NUMBERS = [
4
+ MAJOR = 0,
5
+ MINOR = 9,
6
+ BUILD = 0,
7
+ ]
8
+ end
9
+ VERSION = Version::NUMBERS.join('.')
10
+ end
data/lib/rake/win32.rb CHANGED
@@ -5,12 +5,12 @@ module Rake
5
5
  # Win 32 interface methods for Rake. Windows specific functionality
6
6
  # will be placed here to collect that knowledge in one spot.
7
7
  module Win32
8
-
8
+
9
9
  # Error indicating a problem in locating the home directory on a
10
10
  # Win32 system.
11
11
  class Win32HomeError < RuntimeError
12
12
  end
13
-
13
+
14
14
  class << self
15
15
  # True if running on a windows system.
16
16
  def windows?
@@ -21,7 +21,7 @@ module Rake
21
21
  def rake_system(*cmd)
22
22
  AltSystem.system(*cmd)
23
23
  end
24
-
24
+
25
25
  # The standard directory containing system wide rake files on
26
26
  # Win 32 systems. Try the following environment variables (in
27
27
  # order):
@@ -49,7 +49,7 @@ module Rake
49
49
  def normalize(path)
50
50
  path.gsub(/\\/, '/')
51
51
  end
52
-
52
+
53
53
  end
54
54
  end
55
55
  end