class MessageBird::HTTP::SMS
Attributes
api_url[W]
message[R]
recipients[R]
sender[R]
username[W]
Public Class Methods
new(sender_name, recipients, message, options = {}, &block)
click to toggle source
# File lib/messagebird/http/sms.rb, line 8 def initialize(sender_name, recipients, message, options = {}, &block) self.sender = sender_name @recipients = format_recipients(recipients) @message = URI.escape(message) @callback = block set_optional_variables(options) end
Public Instance Methods
api_url()
click to toggle source
# File lib/messagebird/http/sms.rb, line 46 def api_url @api_url ||= MessageBird::Config.api_url end
deliver()
click to toggle source
# File lib/messagebird/http/sms.rb, line 17 def deliver Sender.deliver(self, &@callback) end
password()
click to toggle source
# File lib/messagebird/http/sms.rb, line 37 def password @password ||= escape MessageBird::Config.password end
request_uri()
click to toggle source
# File lib/messagebird/http/sms.rb, line 25 def request_uri uri.request_uri end
test_mode()
click to toggle source
# File lib/messagebird/http/sms.rb, line 41 def test_mode # If test = 1, then the message is not actually sent or scheduled, and there will be no credits deducted @test_mode ||= MessageBird::Config.fetch(:test_mode, true) ? 1 : 0 end
uri()
click to toggle source
# File lib/messagebird/http/sms.rb, line 21 def uri @uri ||= URI.parse(url) end
url()
click to toggle source
# File lib/messagebird/http/sms.rb, line 29 def url @url ||= "#{api_url}?username=#{username}&password=#{password}&sender=#{sender}&test=#{test_mode}&destination=#{recipients}&body=#{message}" end
username()
click to toggle source
# File lib/messagebird/http/sms.rb, line 33 def username @username ||= escape MessageBird::Config.username end
Private Instance Methods
ensure_valid_sender!(input)
click to toggle source
# File lib/messagebird/http/sms.rb, line 81 def ensure_valid_sender!(input) raise SenderInvalid.new(input) unless sender_valid?(input) end
format_recipients(recipients)
click to toggle source
# File lib/messagebird/http/sms.rb, line 52 def format_recipients(recipients) # API accepts multiple phone numbers by seperating them with a comma ',' if recipients.is_a? Enumerable recipients.join(',') else "#{recipients}" end end
password=(str)
click to toggle source
# File lib/messagebird/http/sms.rb, line 67 def password=(str) @password = escape(str) end
sender=(str)
click to toggle source
# File lib/messagebird/http/sms.rb, line 76 def sender=(str) ensure_valid_sender!(str) @sender = str end
sender_string?(input)
click to toggle source
# File lib/messagebird/http/sms.rb, line 89 def sender_string?(input) input =~ /^[a-zA-Z0-9]{1,11}$/ end
sender_telephone_number?(input)
click to toggle source
# File lib/messagebird/http/sms.rb, line 93 def sender_telephone_number?(input) input =~ /^\+(\d{11})$/ end
sender_valid?(input)
click to toggle source
# File lib/messagebird/http/sms.rb, line 85 def sender_valid?(input) sender_telephone_number?(input) || sender_string?(input) end
set_optional_variables(options = {})
click to toggle source
# File lib/messagebird/http/sms.rb, line 61 def set_optional_variables(options = {}) options.each do |k,v| send("#{k}=".to_sym, v) end end
test_mode=(bool)
click to toggle source
# File lib/messagebird/http/sms.rb, line 71 def test_mode=(bool) raise ArgumentError unless !!bool == bool @test_mode = bool ? 1 : 0 end