class DynamicCarrier::Base

Attributes

settings[RW]

Public Class Methods

new(settings) click to toggle source
# File lib/dynamic-carrier/base.rb, line 5
def initialize(settings)
  self.settings = settings
end

Public Instance Methods

deliver!(sms) click to toggle source
# File lib/dynamic-carrier/base.rb, line 9
def deliver!(sms)
  options = {:from => sms.from, :body => sms.body}.merge(sms.options)
  hash_to = {}
  sms.to.each do |to|
    delivery_method = DynamicCarrier::Rule.match(to, sms)
    delivery_method ||= settings[:default_delivery_method] || :test
    if delivery_method == :dynamic
      delivery_method = :test
      SmsCarrier::Base.logger.warn('default_delivery_method or rule delivery_method can not be :dynamic')
    end
    hash_to[delivery_method] = [] unless hash_to[delivery_method]
    hash_to[delivery_method] << to
  end
  hash_to.each do |delivery_method, to|
    options[:delivery_method] = delivery_method
    options[:to] = to
    SmsCarrier::Base.sms(options).deliver_now
  end
end