lib/afterparty/jobs.rb
module Afterparty
module JobDescribers
attr_accessor :object, :method, :args, :execute_at
def initialize object, method, *args
@object = object
@method = method
@args = args
end
def description
desc = "Object: #{(@object || "nil")}."
desc << "Method: #{(@method || "nil")}."
desc << "Args: #{(@args || "nil")}"
end
alias_method :inspect, :description
end
class MailerJob
include JobDescribers
def run
@mail = @object.send @method, *@args
@mail.deliver
end
end
class BasicJob
include JobDescribers
def run
@object.send(@method, *@args)
end
end
end