Class: SmsCarrier::Sms
- Inherits:
-
Object
- Object
- SmsCarrier::Sms
- Defined in:
- lib/sms_carrier/sms.rb
Constant Summary collapse
- @@delivery_notification_observers =
[]
- @@delivery_interceptors =
[]
Instance Attribute Summary collapse
-
#body ⇒ Object
Returns the value of attribute body.
-
#delivery_handler ⇒ Object
Returns the value of attribute delivery_handler.
-
#from ⇒ Object
Returns the value of attribute from.
-
#options ⇒ Object
Returns the value of attribute options.
-
#perform_deliveries ⇒ Object
Returns the value of attribute perform_deliveries.
-
#raise_delivery_errors ⇒ Object
Returns the value of attribute raise_delivery_errors.
Class Method Summary collapse
- .inform_interceptors(sms) ⇒ Object
- .inform_observers(sms) ⇒ Object
- .register_interceptor(interceptor) ⇒ Object
- .register_observer(observer) ⇒ Object
Instance Method Summary collapse
- #[](name) ⇒ Object
- #[]=(name, value) ⇒ Object
- #deliver ⇒ Object
- #deliver! ⇒ Object
- #delivery_method(method = nil, settings = {}) ⇒ Object
- #inform_interceptors ⇒ Object
- #inform_observers ⇒ Object
-
#initialize ⇒ Sms
constructor
A new instance of Sms.
- #to(val = nil) ⇒ Object
- #to=(val) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ Sms
Returns a new instance of Sms.
5 6 7 8 9 10 |
# File 'lib/sms_carrier/sms.rb', line 5 def initialize @options = {} @perform_deliveries = true @raise_delivery_errors = true @to = [] end |
Instance Attribute Details
#body ⇒ Object
Returns the value of attribute body.
3 4 5 |
# File 'lib/sms_carrier/sms.rb', line 3 def body @body end |
#delivery_handler ⇒ Object
Returns the value of attribute delivery_handler.
3 4 5 |
# File 'lib/sms_carrier/sms.rb', line 3 def delivery_handler @delivery_handler end |
#from ⇒ Object
Returns the value of attribute from.
3 4 5 |
# File 'lib/sms_carrier/sms.rb', line 3 def from @from end |
#options ⇒ Object
Returns the value of attribute options.
3 4 5 |
# File 'lib/sms_carrier/sms.rb', line 3 def @options end |
#perform_deliveries ⇒ Object
Returns the value of attribute perform_deliveries.
3 4 5 |
# File 'lib/sms_carrier/sms.rb', line 3 def perform_deliveries @perform_deliveries end |
#raise_delivery_errors ⇒ Object
Returns the value of attribute raise_delivery_errors.
3 4 5 |
# File 'lib/sms_carrier/sms.rb', line 3 def raise_delivery_errors @raise_delivery_errors end |
Class Method Details
.inform_interceptors(sms) ⇒ Object
108 109 110 111 112 |
# 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) ⇒ Object
102 103 104 105 106 |
# 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 |
.register_interceptor(interceptor) ⇒ Object
96 97 98 99 100 |
# 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) ⇒ Object
90 91 92 93 94 |
# 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 |
Instance Method Details
#[](name) ⇒ Object
12 13 14 |
# File 'lib/sms_carrier/sms.rb', line 12 def [](name) [name] end |
#[]=(name, value) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# 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 [name] = value end end |
#deliver ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# 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! ⇒ Object
61 62 63 64 65 66 |
# 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 = {}) ⇒ Object
68 69 70 71 72 73 74 |
# 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 ⇒ Object
46 47 48 |
# File 'lib/sms_carrier/sms.rb', line 46 def inform_interceptors Sms.inform_interceptors(self) end |
#inform_observers ⇒ Object
42 43 44 |
# File 'lib/sms_carrier/sms.rb', line 42 def inform_observers Sms.inform_observers(self) end |
#to(val = nil) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# 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) ⇒ Object
38 39 40 |
# File 'lib/sms_carrier/sms.rb', line 38 def to=( val ) to(val) end |
#to_s ⇒ Object
76 77 78 79 80 81 82 83 84 85 |
# File 'lib/sms_carrier/sms.rb', line 76 def to_s buffer = '' .each do |key, value| buffer += "#{key}: #{value}\n" end buffer += "From: #{from}\n" buffer += "To: #{to}\n" buffer += "Body: #{body}\n" buffer end |