Skip to content

Commit

Permalink
Merge pull request javan#158 from szajbus/master
Browse files Browse the repository at this point in the history
Run rake through bundle exec
  • Loading branch information
javan committed Jul 19, 2011
2 parents 42061be + 439a136 commit 648587b
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 7 deletions.
10 changes: 9 additions & 1 deletion lib/whenever.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,12 @@ def self.path
Dir.pwd
end

end
def self.rails3?
File.exists?(File.join(path, 'script', 'rails'))
end

def self.bundler?
File.exists?(File.join(path, 'Gemfile'))
end

end
10 changes: 8 additions & 2 deletions lib/whenever/setup.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@
set :job_template, "/bin/bash -l -c ':job'"

job_type :command, ":task :output"
job_type :rake, "cd :path && RAILS_ENV=:environment rake :task --silent :output"

# Run rake through bundler if possible
if Whenever.bundler?
job_type :rake, "cd :path && RAILS_ENV=:environment bundle exec rake :task --silent :output"
else
job_type :rake, "cd :path && RAILS_ENV=:environment rake :task --silent :output"
end

# Create a runner job that's appropriate for the Rails version,
if File.exists?(File.join(path, 'script', 'rails'))
if Whenever.rails3?
job_type :runner, "cd :path && script/rails runner -e :environment ':task' :output"
else
job_type :runner, "cd :path && script/runner -e :environment ':task' :output"
Expand Down
4 changes: 2 additions & 2 deletions test/functional/output_at_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ class OutputAtTest < Test::Unit::TestCase
end

should "output the rake task using one entry because the times are aligned" do
assert_match '2 5,15 * * 1,3,5 cd /your/path && RAILS_ENV=production rake blah:blah --silent', @output
assert_match '2 5,15 * * 1,3,5 cd /your/path && RAILS_ENV=production bundle exec rake blah:blah --silent', @output
end
end

Expand Down Expand Up @@ -177,7 +177,7 @@ class OutputAtTest < Test::Unit::TestCase
end

should "output all of the commands @daily" do
assert_match '@daily cd /your/path && RAILS_ENV=production rake blah:blah --silent', @output
assert_match '@daily cd /your/path && RAILS_ENV=production bundle exec rake blah:blah --silent', @output
assert_match %(@daily cd /your/path && script/runner -e production 'runner_1'), @output
assert_match '@daily command_1', @output
assert_match %(@daily cd /your/path && script/runner -e production 'runner_2'), @output
Expand Down
22 changes: 20 additions & 2 deletions test/functional/output_default_defined_jobs_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
context "A runner for a Rails 3 app" do
setup do
Whenever.expects(:path).at_least_once.returns('/my/path')
File.expects(:exists?).with('/my/path/script/rails').returns(true)
Whenever.expects(:rails3?).returns(true)
@output = Whenever.cron \
<<-file
set :job_template, nil
Expand Down Expand Up @@ -140,6 +140,24 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
end

should "output the rake command using that path" do
assert_match two_hours + ' cd /my/path && RAILS_ENV=production bundle exec rake blahblah --silent', @output
end
end

context "A rake for a non-bundler app" do
setup do
Whenever.expects(:path).at_least_once.returns('/my/path')
Whenever.expects(:bundler?).returns(false)
@output = Whenever.cron \
<<-file
set :job_template, nil
every 2.hours do
rake 'blahblah'
end
file
end

should "not use invoke through bundler" do
assert_match two_hours + ' cd /my/path && RAILS_ENV=production rake blahblah --silent', @output
end
end
Expand All @@ -157,7 +175,7 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
end

should "output the rake command using that path" do
assert_match two_hours + ' cd /some/other/path && RAILS_ENV=production rake blahblah --silent', @output
assert_match two_hours + ' cd /some/other/path && RAILS_ENV=production bundle exec rake blahblah --silent', @output
end
end

Expand Down

0 comments on commit 648587b

Please sign in to comment.