The implementation of ->operator in Number::Phone::FR::Full was broken for a some releases (at least 0.04, 0.05). Fixed now. Bumped version for the future 0.06 release. Added Changes for the release.
Fix import in Number::Phone::FR. This reveals that Number::Phone::FR::Full is broken for several releases.
The fix is in the generator template. Bump version number. Update 'Changes'.
New versionning scheme: - Number::Phone::FR: m.nn (major/minor) - Number::Phone::FR::Full: m.nnyyddd (yy=year, ddd=day of year) - dist: m.nnyyddd "./Build parse" force deletion of "./Build" if the version changed.
Import changes: - croak instead of die - load implementation class at import time instead of at ->new time (less calls) - open import for alternative implementations - forbid direct load of an implementation class Update 'Build parse' final code check to use indirect load.
Change the implementation selection: selection is now by calling package instead of being with lexical scope ($Number::Phone::FR::Class). This makes the selection more predictable, and is more module-friendly. Implementation selection is stored for each package and the calling stack for ->new is examined to find the top package that selected a particular implementation.
Use _num() everywhere for class/number extraction.
Number::Phone::FR::Simple is a (mostly empty) subclass of Number::Phone::FR.
Reorganize lines in Number::Phone::FR for further changes.
Refactor the Number::Phone::FR implementation selection. No intended functional changes.
Regexp may match the subscriber line in different captures, so handle the result instead of using only $1. Also stricter checks for is_geographic, is_fixed, is_mobile.
We have no info to implement Number::Phone semantics.
Add implementation of the 'format' method of Number::Phone for Number::Phone::FR. With tests, of course!
Number::Phone::FR::Full can now be selected as an alternative implementation of Number::Phone::FR. Implementation selection is based on $Number::Phone::FR::Class.