class Sms::Message

Attributes

delivery_handler[RW]

Default: Sms Should respond_to :deliver_sms

from[R]
perform_deliveries[RW]

Default: true

raise_delivery_errors[RW]

Default: true

text[R]
to[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/sms/message.rb, line 15
def initialize(args = {})
  @delivery_handler = Sms
  @perform_deliveries = true
  @raise_delivery_errors = true
  @from, @to, @text = args[:from], args[:to], args[:text]
end

Public Instance Methods

deliver() click to toggle source

Perform the delivery of this message

@return [Sms::Message] self

# File lib/sms/message.rb, line 32
def deliver
  #inform_interceptors
  if delivery_handler
    delivery_handler.deliver_sms(self) { do_delivery }
  else
    do_delivery
  end
  inform_observers
  self
end
serializable_hash() click to toggle source

Hash representing the message

@return [Hash] message

# File lib/sms/message.rb, line 25
def serializable_hash
  {to: to, text: text}.tap {|hash| hash[:from] = from if from}
end

Private Instance Methods

delivery_method() click to toggle source
# File lib/sms/message.rb, line 54
def delivery_method
  Sms.delivery_method
end
do_delivery() click to toggle source
# File lib/sms/message.rb, line 44
def do_delivery
  begin
    if perform_deliveries
      delivery_method.deliver!(self)
    end
  rescue Exception => e
    raise e if raise_delivery_errors
  end
end
inform_observers() click to toggle source
# File lib/sms/message.rb, line 58
def inform_observers
  Sms.inform_observers(self)
end