lib/ffaker/phone_number_pl.rb
# frozen_string_literal: true module FFaker # Inspirations: # https://pl.wikipedia.org/wiki/Numery_telefoniczne_w_Polsce # https://pl.wikipedia.org/wiki/Plan_numeracji_krajowej module PhoneNumberPL extend ModuleUtils module_function PHONE_NUMBER_FORMAT = '%s#######' COUNTRY_CODE = '+48' MOBILE_PREFIXES = %w[50 51 53 57 60 66 69 72 73 78 79 88].freeze AREA_CODES = %w[12 13 14 15 16 17 18 22 23 24 25 29 32 33 34 41 42 43 44 46 48 52 54 55 56 58 59 61 62 63 65 67 68 71 74 75 76 77 81 82 83 84 85 86 87 89 91 94 95].freeze def phone_number case rand(0..1) when 0 then home_work_phone_number when 1 then mobile_phone_number end end def home_work_phone_number FFaker.numerify(phone_number_format) end def mobile_phone_number FFaker.numerify(mobile_phone_number_format) end def international_phone_number case rand(0..1) when 0 then international_mobile_phone_number when 1 then international_home_work_phone_number end end def international_mobile_phone_number FFaker.numerify("#{COUNTRY_CODE} #{mobile_phone_number_format}") end def international_home_work_phone_number FFaker.numerify("#{COUNTRY_CODE} #{phone_number_format}") end def area_code fetch_sample(AREA_CODES) end def mobile_prefix fetch_sample(MOBILE_PREFIXES) end def phone_number_format prefix = area_code PHONE_NUMBER_FORMAT % prefix end def mobile_phone_number_format prefix = mobile_prefix PHONE_NUMBER_FORMAT % prefix end end end