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:.
-
#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
Public: Create a new SMS message instance.
Examples:
sms = MoteSMS::Message.new do
from '41791112233'
to '41797776655'
body 'Hi there.'
end
sms.from # => '41791112233'
sms.to # => ['41797776655']
sms.body # => 'Hi there.'
Returns a new instance.
30 31 32 33 34 |
# File 'lib/mote_sms/message.rb', line 30 def initialize(transport = nil, &block) @transport = transport @to = MoteSMS::NumberList.new instance_eval(&block) if block_given? end |
Instance Attribute Details
#body(val = nil) ⇒ Object
41 42 43 44 |
# File 'lib/mote_sms/message.rb', line 41 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.
14 15 16 |
# File 'lib/mote_sms/message.rb', line 14 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.
97 98 99 100 |
# File 'lib/mote_sms/message.rb', line 97 def deliver( = {}) 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.
55 56 57 58 |
# File 'lib/mote_sms/message.rb', line 55 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.
62 63 64 |
# File 'lib/mote_sms/message.rb', line 62 def from=(val) @from = val ? Number.new(val, :vanity => true) : nil end |
#to(*numbers) ⇒ Object
Public: Returns NumberList for this message.
Returns NumberList instance.
84 85 86 87 |
# File 'lib/mote_sms/message.rb', line 84 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.
77 78 79 |
# File 'lib/mote_sms/message.rb', line 77 def to=(*args) @to = MoteSMS::NumberList.new.push(*args) end |