class BabySMS::Adapter
Attributes
client[RW]
from[R]
Public Class Methods
adapter_name()
click to toggle source
# File lib/babysms/adapter.rb, line 20 def self.adapter_name bare_name = name.split('::').last bare_name.gsub(/Adapter\z/, '').downcase end
for_adapter_id(adapter_id, pool: BabySMS.adapters)
click to toggle source
# File lib/babysms/adapter.rb, line 16 def self.for_adapter_id(adapter_id, pool: BabySMS.adapters) pool.find { |adapter| adapter.adapter_id == adapter_id } end
for_number(number, pool: BabySMS.adapters)
click to toggle source
Locates an adapter instance associated with a phone number
# File lib/babysms/adapter.rb, line 11 def self.for_number(number, pool: BabySMS.adapters) number = Phony.normalize(number) pool.find { |adapter| adapter.from == number } end
new(from:)
click to toggle source
# File lib/babysms/adapter.rb, line 6 def initialize(from:) @from = Phony.normalize(from) end
Public Instance Methods
adapter_id()
click to toggle source
e.g., “15555555555@twilio”
# File lib/babysms/adapter.rb, line 31 def adapter_id "#{from}@#{adapter_name}" end
adapter_name()
click to toggle source
e.g., “twilio”
# File lib/babysms/adapter.rb, line 26 def adapter_name self.class.adapter_name end
web_hook()
click to toggle source
Returns an instance of the web hook handler, if it exists
# File lib/babysms/adapter.rb, line 46 def web_hook unless instance_variable_defined?(:@web_hook) @web_hook = if (cls = web_hook_class) cls.new(self) end end @web_hook end
web_hook?()
click to toggle source
# File lib/babysms/adapter.rb, line 41 def web_hook? !!web_hook_class end
web_hook_class()
click to toggle source
if the adapter supports web hooks, it'll have a nested class called “WebHook”. This returns the class
# File lib/babysms/adapter.rb, line 37 def web_hook_class self.class.const_get(:WebHook) end