Skip to content

Commit

Permalink
Simplest job and inline queue
Browse files Browse the repository at this point in the history
  • Loading branch information
dhh committed May 18, 2014
1 parent 60d13d6 commit 08a2ba9
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 2 deletions.
7 changes: 7 additions & 0 deletions 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
11 changes: 11 additions & 0 deletions 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
16 changes: 14 additions & 2 deletions 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
5 changes: 5 additions & 0 deletions test/jobs/hello_job.rb
@@ -0,0 +1,5 @@
class HelloJob < ActiveJob::Base
def self.perform(greeter = "David")
$BUFFER << "#{greeter} says hello"
end
end

0 comments on commit 08a2ba9

Please sign in to comment.