lib/afterparty/jobs.rb in afterparty-0.1.1 vs lib/afterparty/jobs.rb in afterparty-0.2.0
- old
+ new
@@ -1,41 +1,37 @@
module Afterparty
- class MailerJob
- attr_accessor :execute_at, :mail, :clazz, :method, :args
- def initialize clazz, method, *args
- # @mail = UserMailer.welcome_email(User.find(1))
- @clazz = UserMailer
+
+ module JobDescribers
+ attr_accessor :object, :method, :args, :execute_at
+
+ def initialize object, method, *args
+ @object = object
@method = method
@args = args
end
-
- def run
- @mail = @clazz.send @method, *@args
- @mail.deliver
- end
def description
- desc = "Mailer: #{(@clazz || "nil")}."
- desc << "Method: #{(@method || nil)}."
- desc << "Args: #{(@args || nil)}"
+ desc = "Object: #{(@object || "nil")}."
+ desc << "Method: #{(@method || "nil")}."
+ desc << "Args: #{(@args || "nil")}"
end
+ alias_method :inspect, :description
end
- class BasicJob
- attr_accessor :object, :method, :args
- def initialize object, method, *args
- @object = object
- @method = method
- @args = args
- end
+ class MailerJob
+ include JobDescribers
def run
- @object.send(:method, *@args)
+ @mail = @object.send @method, *@args
+ @mail.deliver
end
+ end
- def description
- desc = "Object: #{(@object || "nil")}."
- desc << "Method: #{(@method || nil)}."
- desc << "Args: #{(@args || nil)}"
+ class BasicJob
+ include JobDescribers
+
+ def run
+ @object.send(@method, *@args)
end
end
+
end
\ No newline at end of file