Sha256: 292e7747122b56775f19939f271d1474386b61c197affed928b813bf0c9c6b89
Contents?: true
Size: 991 Bytes
Versions: 1
Compression:
Stored size: 991 Bytes
Contents
# frozen_string_literal: true require 'phonelib' module Roqua module Healthy module A19 module PhoneValidator EU_COUNTRY_CODES = Set.new( %w[AT BE BG CY CZ DE DK EE EL ES FI FR HR HU IE IT LT LU LV MT NL PL PT RO SE SI SK UK] ) def self.phone_cell_number?(number) stripped_number = strip_non_phone_number_characters(number) phone_cell_number_in_european_country?(stripped_number) && contains_only_phone_number_characters?(stripped_number) end def self.phone_cell_number_in_european_country?(number) phone = Phonelib.parse(number, 'NL') phone.type == :mobile && EU_COUNTRY_CODES.include?(phone.country) end def self.contains_only_phone_number_characters?(number) /^\+?\d+$/.match(number).present? end def self.strip_non_phone_number_characters(number) number.gsub(/[-\s.]/, '') end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
roqua-healthy-1.6.0 | lib/roqua/healthy/a19/phone_validator.rb |