Module: ActionShortMessage::SMSProviders::ClassMethods

Defined in:
lib/action_short_message/sms_providers.rb

Instance Method Summary collapse

Instance Method Details

#add_sms_provider(symbol, klass, default_options = {}) ⇒ Object



22
23
24
25
26
# File 'lib/action_short_message/sms_providers.rb', line 22

def add_sms_provider(symbol, klass, default_options = {})
  class_attribute(:"#{symbol}_settings") unless respond_to?(:"#{symbol}_settings")
  public_send(:"#{symbol}_settings=", default_options)
  self.sms_providers = sms_providers.merge(symbol.to_sym => klass).freeze
end

#wrap_sms_provider_behavior(short_message) ⇒ Object

:nodoc:



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/action_short_message/sms_providers.rb', line 28

def wrap_sms_provider_behavior(short_message) # :nodoc:
  raise 'SMS provider cannot be nil' if sms_provider.nil?

  case sms_provider
  when NilClass
    raise 'Delivery method cannot be nil'
  when Symbol
    if klass = sms_providers[sms_provider]
      short_message.sms_provider(klass, send(:"#{sms_provider}_settings") || {})
    else
      raise "Invalid delivery method #{sms_provider.inspect}"
    end
  else
    short_message.sms_provider(method)
  end
  # short_message.perform_deliveries    = perform_deliveries
  short_message.raise_delivery_errors = raise_delivery_errors
end