1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
# frozen_string_literal: true
module FFaker
module PhoneNumberSN
extend ModuleUtils
extend self
# Mobile Operator prefixes
#
# 77 => Orange
# 76 => Tigo
# 70 => Expresso
#
MOBILE_OPERATORS_PREFIX = %w[70 76 77].freeze
# Home or Work Operator prefixes
#
# 33 => Orange
#
HOME_WORK_OPERATORS_PREFIX = %w[33].freeze
# Return a prefix in MOBILE_OPERATORS_PREFIX
# @see FFaker::PhoneNumberSN::MOBILE_OPERATORS_PREFIX
#
def mobile_phone_prefix
fetch_sample(MOBILE_OPERATORS_PREFIX)
end
# Return a prefix in HOME_WORK_OPERATORS_PREFIX
# @see FFaker::PhoneNumberSN::HOME_WORK_OPERATORS_PREFIX
#
def homework_phone_prefix
fetch_sample(HOME_WORK_OPERATORS_PREFIX)
end
# Pattern that can be combined with a prefix to generate mobile, office phone_numbers
# Example 745 77 99
# Example 245 07 00
# Example 726 29 05
#
def short_phone_number
FFaker.numerify('###-##-##')
end
# Generates a mobile phone number
# Example 70 745 77 99
# Example 76 245 07 00
# Example 77 726 29 05
#
def mobile_number
"#{mobile_phone_prefix}-#{short_phone_number}"
end
# Generates a home or work phone number
# Example 33 845 77 99
# Example 33 945 07 00
# Example 33 906 29 05
#
def homework_number
"#{homework_phone_prefix}-#{rand(8..9)}#{FFaker.numerify('##-##-##')}"
end
# Generates a random phone number mobile or home or work
#
def phone_number
return homework_number if rand(0..1).zero?
mobile_number
end
end
end
|