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