lib/scorpion/rails/job.rb
require "scorpion/nest"
module Scorpion
module Rails
# Adds a scorpion nest to support injection into rails background worker jobs.
module Job
def self.included( base )
# Setup dependency injection
base.send :include, Scorpion::Object
base.send :include, Scorpion::Rails::Nest
base.send :around_perform, :with_scorpion
super
end
private
def prepare_scorpion( scorpion )
scorpion.prepare do |hunter|
hunter.hunt_for ActiveJob::Base do
self
end
end
end
attr_reader :scorpion
def assign_scorpion( scorpion )
@scorpion = scorpion
end
def free_scorpion
@scorpion.try( :destroy )
@scorpion = nil
end
end
end
end