class Ferryman::Dispatcher

Attributes

config[R]

Public Class Methods

new() click to toggle source
# File lib/ferryman.rb, line 113
def initialize
  @config = Config.new
end

Public Instance Methods

deliver(phone_number, *args) click to toggle source
# File lib/ferryman.rb, line 117
def deliver(phone_number, *args)
  @config.rules.each do |rule|
    next unless rule.accept?(phone_number)

    rule.providers.each do |provider_name|
      provider = @config.providers[provider_name]
      params = [phone_number] + args
      begin
        return provider.call(*params)
      rescue DeliveryError
        next
      end
    end
  end

  nil
end