class SmsCarrier::Sms
Attributes
body[RW]
delivery_handler[RW]
from[RW]
options[RW]
perform_deliveries[RW]
raise_delivery_errors[RW]
Public Class Methods
inform_interceptors(sms)
click to toggle source
# File lib/sms_carrier/sms.rb, line 108 def self.inform_interceptors(sms) @@delivery_interceptors.each do |interceptor| interceptor.delivering_sms(sms) end end
inform_observers(sms)
click to toggle source
# File lib/sms_carrier/sms.rb, line 102 def self.inform_observers(sms) @@delivery_notification_observers.each do |observer| observer.delivered_sms(sms) end end
new()
click to toggle source
# File lib/sms_carrier/sms.rb, line 5 def initialize @options = {} @perform_deliveries = true @raise_delivery_errors = true @to = [] end
register_interceptor(interceptor)
click to toggle source
# File lib/sms_carrier/sms.rb, line 96 def self.register_interceptor(interceptor) unless @@delivery_interceptors.include?(interceptor) @@delivery_interceptors << interceptor end end
register_observer(observer)
click to toggle source
# File lib/sms_carrier/sms.rb, line 90 def self.register_observer(observer) unless @@delivery_notification_observers.include?(observer) @@delivery_notification_observers << observer end end
Public Instance Methods
[](name)
click to toggle source
# File lib/sms_carrier/sms.rb, line 12 def [](name) options[name] end
[]=(name, value)
click to toggle source
# File lib/sms_carrier/sms.rb, line 16 def []=(name, value) if name.to_s == 'body' self.body = value elsif name.to_s == 'from' self.from = value elsif name.to_s == 'to' self.to = value else options[name] = value end end
deliver()
click to toggle source
# File lib/sms_carrier/sms.rb, line 50 def deliver inform_interceptors if delivery_handler delivery_handler.deliver_sms(self) { do_delivery } else do_delivery end inform_observers self end
deliver!()
click to toggle source
# File lib/sms_carrier/sms.rb, line 61 def deliver! inform_interceptors response = delivery_method.deliver!(self) inform_observers delivery_method.settings[:return_response] ? response : self end
delivery_method(method = nil, settings = {})
click to toggle source
# File lib/sms_carrier/sms.rb, line 68 def delivery_method(method = nil, settings = {}) unless method @delivery_method else @delivery_method = method.new(settings) end end
inform_interceptors()
click to toggle source
# File lib/sms_carrier/sms.rb, line 46 def inform_interceptors Sms.inform_interceptors(self) end
inform_observers()
click to toggle source
# File lib/sms_carrier/sms.rb, line 42 def inform_observers Sms.inform_observers(self) end
to( val = nil )
click to toggle source
# File lib/sms_carrier/sms.rb, line 28 def to( val = nil ) if val.nil? @to elsif val.is_a? Array @to = @to + val elsif !@to.include? val @to << val end end
to=( val )
click to toggle source
# File lib/sms_carrier/sms.rb, line 38 def to=( val ) to(val) end
to_s()
click to toggle source
# File lib/sms_carrier/sms.rb, line 76 def to_s buffer = '' options.each do |key, value| buffer += "#{key}: #{value}\n" end buffer += "From: #{from}\n" buffer += "To: #{to}\n" buffer += "Body: #{body}\n" buffer end
Private Instance Methods
do_delivery()
click to toggle source
# File lib/sms_carrier/sms.rb, line 116 def do_delivery begin if perform_deliveries delivery_method.deliver!(self) end rescue => e raise e if raise_delivery_errors end end