class ActiveSMS::Configuration
Configuration
object for ActiveSMS
Attributes
backends[R]
returns list of registered sms backends
default_backend[R]
returns key of the default sms backend
Public Class Methods
new()
click to toggle source
# File lib/active_sms/configuration.rb, line 26 def initialize register_backend :null_sender, ActiveSMS::Backend::NullSender self.default_backend = :null_sender end
Public Instance Methods
default_backend=(value)
click to toggle source
Specify default sms backend. It must be registered.
@param value [Symbol] Backend
key which will be used as default
# File lib/active_sms/configuration.rb, line 34 def default_backend=(value) raise ArgumentError, "default_backend must be a symbol!" unless value.is_a? Symbol unless @backends.keys.include? value raise ArgumentError, "Unregistered backend cannot be set as default!" end @default_backend = value end
register_backend(key, classname, params = {})
click to toggle source
Register sms provider backend
@param key [Symbol] Key for acessing backend in any part of ActiveSMS
@param classname [Class] Real class implementation of sms backend @param params [Hash]
Optional params for backend. Useful for passing tokens and options
# File lib/active_sms/configuration.rb, line 50 def register_backend(key, classname, params = {}) raise ArgumentError, "backend key must be a symbol!" unless key.is_a? Symbol unless classname.class == Class raise ArgumentError, "backend class must be class (not instance or string)" end unless classname.method_defined? :send_sms raise ArgumentError, "backend must provide method send_sms" end define_backend(key, classname, params) end
remove_backend(key)
click to toggle source
Removes registered sms backend
@param key [Symbol] Key of already registered backend
# File lib/active_sms/configuration.rb, line 67 def remove_backend(key) if key == default_backend raise ArgumentError, "Removing default_backend is prohibited" end @backends.delete key true end
Private Instance Methods
define_backend(key, classname, params)
click to toggle source
# File lib/active_sms/configuration.rb, line 78 def define_backend(key, classname, params) @backends ||= {} @backends[key] = { class: classname, params: params } end