Class: MoteSMS::Message
- Inherits:
-
Object
- Object
- MoteSMS::Message
- Defined in:
- lib/mote_sms/message.rb
Overview
Represents an SMS message, currently only provides the tools to build new messages, not parse incoming messages or similar stuff.
Instance Attribute Summary collapse
- #body(val = nil) ⇒ Object
-
#transport ⇒ Object
The transport instance to use, if not defined falls back to use global MoteSMS.transport instance.
Instance Method Summary collapse
-
#deliver(options = {}) ⇒ Object
Public: Deliver message using defined transport, to select the correct transport method uses any of these values:.
- #deliver_later(options = {}) ⇒ Object
- #deliver_now(options = {}) ⇒ Object
-
#from(val = nil) ⇒ Object
Public: Returns string of sender, the sender should either be 11 alphanumeric characters or 20 numbers.
-
#from=(val) ⇒ Object
Public: Asign an instance of Number instead of the direct string, so only vanity numbers are allowed.
-
#initialize(transport = nil, &block) ⇒ Message
constructor
Public: Create a new SMS message instance.
-
#to(*numbers) ⇒ Object
Public: Returns NumberList for this message.
-
#to=(*args) ⇒ Object
Public: Set to multiple arguments or array, or whatever.
Constructor Details
#initialize(transport = nil, &block) ⇒ Message
28 29 30 31 32 33 |
# File 'lib/mote_sms/message.rb', line 28 def initialize(transport = nil, &block) Kernel.warn 'Message#new(transport) is deprecated and will be removed from MoteSMS' if transport @transport = transport @to = MoteSMS::NumberList.new instance_eval(&block) if block_given? end |
Instance Attribute Details
#body(val = nil) ⇒ Object
40 41 42 43 |
# File 'lib/mote_sms/message.rb', line 40 def body(val = nil) @body = val if val @body end |
#transport ⇒ Object
The transport instance to use, if not defined falls back to use global MoteSMS.transport instance.
12 13 14 |
# File 'lib/mote_sms/message.rb', line 12 def transport @transport end |
Instance Method Details
#deliver(options = {}) ⇒ Object
Public: Deliver message using defined transport, to select the correct transport method uses any of these values:
-
if options is defined
-
falls back to self.transport
-
falls back to use MoteSMS.transport (global transport)
Returns result of transport#deliver.
101 102 103 104 |
# File 'lib/mote_sms/message.rb', line 101 def deliver( = {}) Kernel.warn 'Message#deliver is deprecated and will be removed from MoteSMS. Please use #deliver_now' deliver_now end |
#deliver_later(options = {}) ⇒ Object
112 113 114 115 116 |
# File 'lib/mote_sms/message.rb', line 112 def deliver_later( = {}) Kernel.warn 'options[:transport] is not supported in Message#deliveer_later' if .delete(:transport) = .extract! :wait, :wait_until, :queue, :priority DeliveryJob.set().perform_later @from.to_s.presence, @to.normalized_numbers, @body, end |
#deliver_now(options = {}) ⇒ Object
106 107 108 109 110 |
# File 'lib/mote_sms/message.rb', line 106 def deliver_now( = {}) Kernel.warn 'options[:transport] in Message#deliver_now is deprecated and will be removed from MoteSMS' if [:transport] transport = .delete(:transport) || self.transport || MoteSMS.transport transport.deliver(self, ) end |
#from(val = nil) ⇒ Object
Public: Returns string of sender, the sender should either be 11 alphanumeric characters or 20 numbers.
Examples:
sms.from = '41791231234'
sms.from # => '41791231234'
Returns value of sender.
54 55 56 57 |
# File 'lib/mote_sms/message.rb', line 54 def from(val = nil) self.from = val if val @from end |
#from=(val) ⇒ Object
Public: Asign an instance of Number instead of the direct string, so only vanity numbers are allowed.
61 62 63 |
# File 'lib/mote_sms/message.rb', line 61 def from=(val) @from = val ? Number.new(val, vanity: true) : nil end |
#to(*numbers) ⇒ Object
Public: Returns NumberList for this message.
Returns NumberList instance.
83 84 85 86 |
# File 'lib/mote_sms/message.rb', line 83 def to(*numbers) @to.push(*numbers) unless numbers.empty? @to end |
#to=(*args) ⇒ Object
Public: Set to multiple arguments or array, or whatever.
Examples:
sms.to = '41791231212'
sms.to # => ['41791231212']
sms.to = ['41791231212', '41791231212']
sms.to # => ['41791231212', '41791231212']
Returns nothing.
76 77 78 |
# File 'lib/mote_sms/message.rb', line 76 def to=(*args) @to = MoteSMS::NumberList.new.push(*args) end |