Sha256: 972c20902849cfc4190ad91e54ccc8c043590a4994c9b91c1c3bcd870e52647c
Contents?: true
Size: 992 Bytes
Versions: 9
Compression:
Stored size: 992 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
9 entries across 9 versions & 1 rubygems