diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-04-05 16:31:19 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-04-05 16:31:19 -0700 |
commit | 7f698da8878b141c5324b2419d73570f507ef08f (patch) | |
tree | 44d042b4def5b691aeeea1367ba6d8e263feac30 /railties/lib | |
parent | 32eff659bc92895546e3d5f90ef76051f0e7b6cd (diff) | |
download | rails-7f698da8878b141c5324b2419d73570f507ef08f.tar.gz rails-7f698da8878b141c5324b2419d73570f507ef08f.tar.bz2 rails-7f698da8878b141c5324b2419d73570f507ef08f.zip |
add a class for splitting up rake commands
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/rails/test_unit/sub_test_task.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/railties/lib/rails/test_unit/sub_test_task.rb b/railties/lib/rails/test_unit/sub_test_task.rb index 36657dbdd4..ac2bde2071 100644 --- a/railties/lib/rails/test_unit/sub_test_task.rb +++ b/railties/lib/rails/test_unit/sub_test_task.rb @@ -2,6 +2,41 @@ require 'rake/testtask' module Rails class TestTask < Rake::TestTask # :nodoc: all + class TestInfo + def initialize(tasks) + @tasks = tasks + end + + def files + @tasks.find_all { |t| File.file?(t) && !File.directory?(t) } + end + + def tasks + @tasks - files - opt_names + end + + def opts + opts = opt_names + if opts.any? + "-n #{opts.join ' '}" + end + end + + private + + def opt_names + (@tasks - files).reject { |t| task_defined? t } + end + + def task_defined?(task) + Rake::Task.task_defined? task + end + end + + def self.test_info(tasks) + TestInfo.new tasks + end + def initialize(name = :test) super @libs << "test" # lib *and* test seem like a better default |