HitFox/cm-sms-rails

View on GitHub
lib/cm_sms_rails/message_delivery.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'cm_sms/message_delivery'
require 'cm_sms_rails/delivery_job'

module CmSmsRails
  module MessageDelivery
    def deliver_later!(options = {})
      enqueue_delivery :deliver_now!, options
    end

    def deliver_later(options = {})
      enqueue_delivery :deliver_now, options
    end
    
    private

    def enqueue_delivery(delivery_method, options = {})
      raise 'Please use the deliver_now method, because you not have ActiveJob setted up right.' unless defined?(ActiveJob)
  
      args = @messenger.name, @message_method.to_s, delivery_method.to_s, *@args
      DeliveryJob.set(options).perform_later(*args)
    end
  end
end

CmSms::MessageDelivery.send(:include, CmSmsRails::MessageDelivery)