Giter VIP home page Giter VIP logo

geo-address-mail-standardizer's Introduction

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.

geo-address-mail-standardizer's People

Contributors

gphat avatar

Stargazers

Andrew Nelson avatar Mike Eldridge avatar  avatar

Watchers

James Cloos avatar

Forkers

holophrastic

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.