forked from magazinesdotcom/geo-address-mail-standardizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
58 lines (43 loc) · 2.04 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
NAME
Geo::Address::Mail::Standardizer - A role for Geo::Address::Mail
standardization
SYNOPSIS
This module provides an interface for writing address standardization as
well as a class to represent the results of a standarization process.
package Geo::Address::Mail::Standardizer::My;
use Moose;
with 'Geo::Address::Mail::Standardizer';
# use it
my $std = Geo::Address::Mail::Standardizer::My->new(...);
my $address = Geo::Address::Mail::MyCountry;
my $results = $std->standardize($address);
WRITING A STANDARDIZER
This module provides a simple API. Your Standardizer implementation is
likely for a specific locale such as the US, UK or whatever. You should
provide a "standardize" method that accepts the appropriate subclass
(Geo::Address::Mail::YourCountry). You would then use the information in
the supplied address object with your standardization mechanism. You
should not change the argument. Instead, create a new Address object and
use it with the Geo::Address::Mail::Standardizer::Results object,
setting any changed values:
sub standardize {
my ($self, $address) = @_;
# contact the USPS or your local postal service in your country
# or implement some algorithm or whatever
my $results = Geo::Address::Mail::Standardizer::Results->new;
my $new_addr = $address->clone;
for(...) { # iterate over the results of your standardization mechanism
$results->set_changed($field, $new_value) if $changed;
$new_addr->$field($new_value);
}
return $results;
}
AUTHOR
Cory G Watson, "<gphat at cpan.org>"
ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
Copyright 2010 Cory G Watson.
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.