NAME
Number::MuPhone::Parser
VERSION
version 0,01
DESCRIPTION
Base phone number parser class. Contains sane defaults.
This document covers how you might want to tweak Parser methods on a per country basis. For further documentation, please see the Number::MuPhone POD.
If you do find a need, please contact me so I can merge useful changes in as needed.
For each Number::MuPhone::Parser::COUNTRY.pm module, you must set values for the attributes country, country_code, country_name, _national_dial_prefix and _international_dial_prefix. eg:
has '+country' => ( default => 'UK' );
has '+country_code' => ( default => '44' );
has '+country_name' => ( default => 'United Kingdom' );
has '+_national_dial_prefix' => ( default => '0' );
has '+_international_dial_prefix' => ( default => '00' );
These are already set for known countries.
COMMONLY OVERLOADED METHODS
Pretty much anything *may* benefit from overloading on a per country basis, but these are the most common methods that are need to be overloaded.
_format_number()
Different countries have different ways of displaying phone numbers.
The method _format_number is used to take the raw number (minus any extension) and format it a way that is normal for that country. The US's formatter is simple; the UK's, not so much. It doesn't just do that though. It:
* confirms the number is valid; * formats the number for common display; * sets an error() if there's a problem; and * sets the value in the _formatted_number accessor.
On completion of validation, it returns the formatted number if valid, or the original number if an error was encountered.
There's a generic default, but it should be overloaded in each country's Parser. This is an ongoing project to replace.
_extension_text
Text to display after the number plus a space, but before the extension.
This defaults to the english 'ext ' but can be overloaded in individual countries as needed.
display_from( $num | $num_obj | country )
This works out of the box for 90% of countries, but there are a few places where this may need overwriting - eg, dialing French territories from France.
dial_from( $num | $num_obj | country )
This works out of the box for 90% of countries, but there are a few places where this may need overwriting - eg, dialing French territories from France.
_parse_number_and_extension
Basically split the entered number on a string that marks an extension.
Defaults to English.
Can amend this rule as needed in country classes
AUTHOR
Clive Holloway <clive.holloway@gmail.com>
Copyright (c) 2017 Clive Holloway