Sha256: 92c94af7e85215e4031b42d67271fd8b8ce0045d2e66605db53f1e35ca44bd96

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

# :nodoc:
module ActiveSMS
  class << self
    # Core of the gem, method responsible for sending sms
    #
    # @param phone [String] Phone number for sms
    # @param text  [String] Text for sms
    # @param args  [Hash] Additional options for delivery. Currently only :backend
    def send_sms(phone, text, args = {})
      backend_name = args.delete(:backend)
      backend_class(backend_name).new(backend_params(backend_name))
                                 .send_sms(phone, text)
    end

    private

    def backend_class(name)
      return default_backend_class if name.nil?

      if ActiveSMS.config.backends[name].nil?
        raise ArgumentError, "#{name} backend is not registered"
      end

      ActiveSMS.config.backends[name][:class]
    end

    def default_backend_class
      ActiveSMS.config.backends[ActiveSMS.config.default_backend][:class]
    end

    def backend_params(name)
      return default_backend_params if name.nil?
      ActiveSMS.config.backends[name][:params]
    end

    def default_backend_params
      ActiveSMS.config.backends[ActiveSMS.config.default_backend][:params]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_sms-0.2.1 lib/active_sms/sending.rb