# frozen_string_literal: true module Faker class PhoneNumber < Base class << self def phone_number parse('phone_number.formats') end def cell_phone parse('cell_phone.formats') end def country_code "+#{fetch('country_code')}" end def phone_number_with_country_code "#{country_code} #{phone_number}" end def cell_phone_with_country_code "#{country_code} #{cell_phone}" end # US and Canada only def area_code fetch('phone_number.area_code') rescue I18n::MissingTranslationData nil end # US and Canada only def exchange_code fetch('phone_number.exchange_code') rescue I18n::MissingTranslationData nil end # US and Canada only # Can be used for both extensions and last four digits of phone number. # Since extensions can be of variable length, this method taks a length parameter def subscriber_number(legacy_length = NOT_GIVEN, length: 4) warn_for_deprecated_arguments do |keywords| keywords << :length if legacy_length != NOT_GIVEN end rand.to_s[2..(1 + length)] end alias extension subscriber_number end end end