runners for Rails 3

This commit is contained in:
Javan Makhmali 2010-10-18 12:08:28 -04:00
parent e7e4a37b3a
commit 0055c36aef
3 changed files with 31 additions and 1 deletions

View File

@ -0,0 +1,8 @@
# Determine if this is a Rails 3 app by looking for a script/rails file.
# If it is, preserve the Rails 2 runner job as rails2_runner and then
# define a new job for Rails 3 as the default runner.
if File.exists?(File.join(Whenever.path, 'script', 'rails'))
class_eval { alias_method :rails2_runner, :runner }
job_type :runner, "cd :path && script/rails runner -e :environment ':task'"
end

View File

@ -53,6 +53,28 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
end end
end end
context "A runner for a Rails 3 app" do
setup do
Whenever.stubs(:path).returns('/my/path')
File.expects(:exists?).with('/my/path/script/rails').returns(true)
@output = Whenever.cron \
<<-file
every 2.hours do
runner 'blahblah'
rails2_runner 'blahblah'
end
file
end
should "use the Rails 3 runner job by default" do
assert_match two_hours + %( cd /my/path && script/rails runner -e production 'blahblah'), @output
end
should "have the Rails 2 runner job redefined as rails2_runner" do
assert_match two_hours + %( cd /my/path && script/runner -e production 'blahblah'), @output
end
end
# rake # rake
context "A rake command with path set" do context "A rake command with path set" do

View File

@ -86,7 +86,7 @@ class OutputDefinedJobTest < Test::Unit::TestCase
context "A defined job that uses a :path where none is explicitly set" do context "A defined job that uses a :path where none is explicitly set" do
setup do setup do
Whenever.expects(:path).returns('/my/path') Whenever.stubs(:path).returns('/my/path')
@output = Whenever.cron \ @output = Whenever.cron \
<<-file <<-file