somleng/somleng-adhearsion

View on GitHub
components/app/app/models/dial_string.rb

Summary

Maintainability
A
0 mins
Test Coverage
class DialString
  EXTERNAL_PROFILE = "external".freeze
  EXTERNAL_NAT_INSTANCE_PROFILE = "alternative-outbound".freeze

  attr_reader :options

  def initialize(options)
    @options = options.symbolize_keys
  end

  def to_s
    "sofia/#{external_profile}/#{address}"
  end

  def address
    options.fetch(:address) { routing_parameters.address }
  end

  def format_number(...)
    routing_parameters.format_number(...)
  end

  private

  def routing_parameters
    @routing_parameters ||= RoutingParameters.new(options)
  end

  def external_profile
    options.fetch(:symmetric_latching, true) ? EXTERNAL_PROFILE : EXTERNAL_NAT_INSTANCE_PROFILE
  end
end