diff --git a/lib/resque.rb b/lib/resque.rb index a3ec9416b..d4e8bb166 100644 --- a/lib/resque.rb +++ b/lib/resque.rb @@ -228,13 +228,15 @@ def enqueue(klass, *args) before_hooks = Plugin.before_enqueue_hooks(klass).collect do |hook| klass.send(hook, *args) end - return if before_hooks.any? { |result| result == false } + return nil if before_hooks.any? { |result| result == false } - Job.create(queue_from_class(klass), klass, *args) + job = Job.create(queue_from_class(klass), klass, *args) Plugin.after_enqueue_hooks(klass).each do |hook| klass.send(hook, *args) end + + return true end # This method can be used to conveniently remove a job from a queue. diff --git a/test/job_hooks_test.rb b/test/job_hooks_test.rb index 356ee32a2..abbf2b453 100644 --- a/test/job_hooks_test.rb +++ b/test/job_hooks_test.rb @@ -277,7 +277,7 @@ def self.perform(history) test "the before enqueue hook should run" do history = [] @worker = Resque::Worker.new(:jobs) - Resque.enqueue(BeforeEnqueueJob, history) + assert Resque.enqueue(BeforeEnqueueJob, history) @worker.work(0) assert_equal history, [:before_enqueue], "before_enqueue was not run" end @@ -285,7 +285,7 @@ def self.perform(history) test "a before enqueue hook that returns false should prevent the job from getting queued" do history = [] @worker = Resque::Worker.new(:jobs) - Resque.enqueue(BeforeEnqueueJobAbort, history) + assert_nil Resque.enqueue(BeforeEnqueueJobAbort, history) assert_equal 0, Resque.size(:jobs) end end