Skip to content

Commit

Permalink
Add Sucker Punch adapter/wrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
seuros committed May 18, 2014
1 parent 53f08f9 commit 68543de
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 2 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ gemspec

gem 'resque'
gem 'sidekiq'
gem 'sucker_punch'
4 changes: 2 additions & 2 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ task :default => :test

desc 'Run all adapter tests'
task :test do
tasks = %w(test_inline test_resque test_sidekiq)
tasks = %w(test_inline test_resque test_sidekiq test_sucker_punch)
run_without_aborting(*tasks)
end


%w( inline resque sidekiq ).each do |adapter|
%w( inline resque sidekiq sucker_punch).each do |adapter|
Rake::TestTask.new("test_#{adapter}") do |t|
t.libs << 'test'
t.test_files = FileList['test/cases/**/*_test.rb']
Expand Down
1 change: 1 addition & 0 deletions lib/active_job/base.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require 'active_job/queue_adapters/inline_adapter'
require 'active_job/queue_adapters/resque_adapter'
require 'active_job/queue_adapters/sidekiq_adapter'
require 'active_job/queue_adapters/sucker_punch_adapter'

module ActiveJob
class Base
Expand Down
11 changes: 11 additions & 0 deletions lib/active_job/job_wrappers/sucker_punch_wrapper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module ActiveJob
module JobWrappers
class SuckerPunchWrapper
include SuckerPunch::Job

def perform(job_name, *args)
job_name.perform(*args)
end
end
end
end
14 changes: 14 additions & 0 deletions lib/active_job/queue_adapters/sucker_punch_adapter.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
require 'sucker_punch'
require 'active_job/job_wrappers/sucker_punch_wrapper'

module ActiveJob
module QueueAdapters
class SuckerPunchAdapter
class << self
def queue(job, *args)
JobWrappers::SuckerPunchWrapper.new.async.perform(job, *args)
end
end
end
end
end
2 changes: 2 additions & 0 deletions test/adapters/sucker_punch.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
require 'sucker_punch/testing/inline'
ActiveJob::Base.queue_adapter = ActiveJob::QueueAdapters::SuckerPunchAdapter

0 comments on commit 68543de

Please sign in to comment.