aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/test_unit
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-04-05 16:31:19 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2013-04-05 16:31:19 -0700
commit7f698da8878b141c5324b2419d73570f507ef08f (patch)
tree44d042b4def5b691aeeea1367ba6d8e263feac30 /railties/lib/rails/test_unit
parent32eff659bc92895546e3d5f90ef76051f0e7b6cd (diff)
downloadrails-7f698da8878b141c5324b2419d73570f507ef08f.tar.gz
rails-7f698da8878b141c5324b2419d73570f507ef08f.tar.bz2
rails-7f698da8878b141c5324b2419d73570f507ef08f.zip
add a class for splitting up rake commands
Diffstat (limited to 'railties/lib/rails/test_unit')
-rw-r--r--railties/lib/rails/test_unit/sub_test_task.rb35
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