Sha256: 38d9e4970d0f24dcf83fdfc4dd91a78a9bd5e56ca69ee9457eaf584b4edefbeb

Contents?: true

Size: 668 Bytes

Versions: 1

Compression:

Stored size: 668 Bytes

Contents

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
afterparty-0.2.0 lib/afterparty/jobs.rb