Class: MessageBird::HTTP::SMS

Inherits:
Deliverable show all
Includes:
MessageBird::Helpers
Defined in:
lib/messagebird/http/sms.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MessageBird::Helpers

#config, #constantize, #escape

Constructor Details

#initialize(originator, recipients, message, options = {}, &block) ⇒ SMS

Returns a new instance of SMS.



8
9
10
11
12
13
14
15
# File 'lib/messagebird/http/sms.rb', line 8

def initialize(originator, recipients, message, options = {}, &block)
  @originator = originator
  @recipients = format_recipients(recipients)
  @message    = URI.escape(message)
  @callback   = block

  set_optional_variables(options)
end

Instance Attribute Details

#api_urlObject



46
47
48
# File 'lib/messagebird/http/sms.rb', line 46

def api_url
  @api_url ||= MessageBird::Config.api_url
end

#messageObject (readonly)

Returns the value of attribute message.



5
6
7
# File 'lib/messagebird/http/sms.rb', line 5

def message
  @message
end

#originatorObject (readonly)

Returns the value of attribute originator.



5
6
7
# File 'lib/messagebird/http/sms.rb', line 5

def originator
  @originator
end

#recipientsObject (readonly)

Returns the value of attribute recipients.



5
6
7
# File 'lib/messagebird/http/sms.rb', line 5

def recipients
  @recipients
end

#usernameObject



33
34
35
# File 'lib/messagebird/http/sms.rb', line 33

def username
  @username ||= escape MessageBird::Config.username
end

Instance Method Details

#deliverObject



17
18
19
# File 'lib/messagebird/http/sms.rb', line 17

def deliver
  Sender.deliver(self, &@callback)
end

#passwordObject



37
38
39
# File 'lib/messagebird/http/sms.rb', line 37

def password
  @password ||= escape MessageBird::Config.password
end

#request_uriObject



25
26
27
# File 'lib/messagebird/http/sms.rb', line 25

def request_uri
  uri.request_uri
end

#test_modeObject



41
42
43
44
# 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

#uriObject



21
22
23
# File 'lib/messagebird/http/sms.rb', line 21

def uri
  @uri ||= URI.parse(url)
end

#urlObject



29
30
31
# File 'lib/messagebird/http/sms.rb', line 29

def url
  @url ||= "#{api_url}?username=#{username}&password=#{password}&sender=#{originator}&test=#{test_mode}&destination=#{recipients}&body=#{message}"
end