aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/active_job/base.rb7
-rw-r--r--lib/active_job/queue_adapters/inline_queue.rb11
-rw-r--r--test/cases/queuing_test.rb16
-rw-r--r--test/jobs/hello_job.rb5
4 files changed, 37 insertions, 2 deletions
diff --git a/lib/active_job/base.rb b/lib/active_job/base.rb
index f2c76c1811..a404355026 100644
--- a/lib/active_job/base.rb
+++ b/lib/active_job/base.rb
@@ -1,4 +1,11 @@
+require 'active_job/queue_adapters/inline_queue'
+
module ActiveJob
class Base
+ class << self
+ def enqueue(*args)
+ ActiveJob::QueueAdapters::InlineQueue.queue self, *args
+ end
+ end
end
end \ No newline at end of file
diff --git a/lib/active_job/queue_adapters/inline_queue.rb b/lib/active_job/queue_adapters/inline_queue.rb
new file mode 100644
index 0000000000..dd80c6a5a3
--- /dev/null
+++ b/lib/active_job/queue_adapters/inline_queue.rb
@@ -0,0 +1,11 @@
+module ActiveJob
+ module QueueAdapters
+ class InlineQueue
+ class << self
+ def queue(job, *args)
+ job.perform *args
+ end
+ end
+ end
+ end
+end \ No newline at end of file
diff --git a/test/cases/queuing_test.rb b/test/cases/queuing_test.rb
index 5f1b35fee5..b6180a23dd 100644
--- a/test/cases/queuing_test.rb
+++ b/test/cases/queuing_test.rb
@@ -1,7 +1,19 @@
require 'helper'
+require 'jobs/hello_job'
+
class QueuingTest < ActiveSupport::TestCase
- test 'the truth' do
- assert true
+ setup do
+ $BUFFER = []
+ end
+
+ test 'run queued job' do
+ HelloJob.enqueue
+ assert_equal "David says hello", $BUFFER.pop
+ end
+
+ test 'run queued job with parameters' do
+ HelloJob.enqueue "Jamie"
+ assert_equal "Jamie says hello", $BUFFER.pop
end
end
diff --git a/test/jobs/hello_job.rb b/test/jobs/hello_job.rb
new file mode 100644
index 0000000000..d0e65f9674
--- /dev/null
+++ b/test/jobs/hello_job.rb
@@ -0,0 +1,5 @@
+class HelloJob < ActiveJob::Base
+ def self.perform(greeter = "David")
+ $BUFFER << "#{greeter} says hello"
+ end
+end