Class: SmsCenter

Inherits:
Object
  • Object
show all
Defined in:
lib/sms_center.rb

Defined Under Namespace

Classes: Infobip, Nexmo, Plivo, Telerivet, Twilio

Constant Summary collapse

@@platforms =
nil
@@platform_by_country =
nil
@@keys =
nil

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content, to_number, options = {}) ⇒ SmsCenter

Returns a new instance of SmsCenter.



40
41
42
43
44
45
46
47
48
# File 'lib/sms_center.rb', line 40

def initialize(content, to_number, options = {})
  country = options[:country]
  platform = options[:platform]

  f_platform = platform.present? ? platform.downcase.capitalize : platform_by_country(country, to_number)

  from_number = SmsCenter.root_number_by_platform[f_platform.to_sym]
  @request = SmsCenter.const_get(f_platform, false).new(content, to_number, from_number, @@keys)
end

Class Method Details

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (SmsCenter)

    the object that the method was called on



12
13
14
# File 'lib/sms_center.rb', line 12

def self.configure
  yield self
end

.keysObject



32
33
34
# File 'lib/sms_center.rb', line 32

def self.keys
  @@keys
end

.keys=(keys) ⇒ Object



24
25
26
# File 'lib/sms_center.rb', line 24

def self.keys=(keys)
  @@keys = keys
end

.platform_by_countryObject



28
29
30
# File 'lib/sms_center.rb', line 28

def self.platform_by_country
  @@platform_by_country
end

.platform_by_country=(platform_by_country) ⇒ Object



16
17
18
# File 'lib/sms_center.rb', line 16

def self.platform_by_country=(platform_by_country)
  @@platform_by_country = platform_by_country
end

.root_number_by_platformObject



36
37
38
# File 'lib/sms_center.rb', line 36

def self.root_number_by_platform
  @@root_number_by_platform
end

.root_number_by_platform=(root_number_by_platform) ⇒ Object



20
21
22
# File 'lib/sms_center.rb', line 20

def self.root_number_by_platform=(root_number_by_platform)
  @@root_number_by_platform = root_number_by_platform
end

Instance Method Details

#sendObject



50
51
52
# File 'lib/sms_center.rb', line 50

def send
  HTTPClient.new.post_async(@request.api_url, @request.body, @request.headers)
end

#send_and_waitObject



54
55
56
# File 'lib/sms_center.rb', line 54

def send_and_wait
  HTTPClient.new.post(@request.api_url, @request.body, @request.headers)
end