From ff187f540e2195ec5a79669b946f8c09f29c6f0b Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Wed, 27 Feb 2019 11:09:30 +0800 Subject: [PATCH 01/55] tom/smartystreets_basic_api From 79c8c09804f3d8fce5ca0575d8b9761052c0a576 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Wed, 27 Feb 2019 11:11:59 +0800 Subject: [PATCH 02/55] Initial import --- binary.pl | 38 ++++++++ cpanfile | 7 ++ dist.ini | 8 ++ lib/WebService/Async/SmartyStreets.pm | 92 +++++++++++++++++++ lib/WebService/Async/SmartyStreets/Address.pm | 59 ++++++++++++ 5 files changed, 204 insertions(+) create mode 100644 binary.pl create mode 100644 cpanfile create mode 100644 dist.ini create mode 100644 lib/WebService/Async/SmartyStreets.pm create mode 100644 lib/WebService/Async/SmartyStreets/Address.pm diff --git a/binary.pl b/binary.pl new file mode 100644 index 0000000..8548d6a --- /dev/null +++ b/binary.pl @@ -0,0 +1,38 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +use Future::AsyncAwait; + +use IO::Async::Loop; +use WebService::Async::SmartyStreets; + +use Log::Any qw($log); +use Log::Any::Adapter qw(Stdout), log_level => 'trace'; + +my $loop = IO::Async::Loop->new; +$loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) +); + +(async sub { + my $addr = await $ss->verify_international( + address1 => 'Jl.pelabuhan 2 gang langgeng jaya 2 no 22', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + # Need to pass this if you want to do verification + geocode => 'true', + ); + + $log->infof('Verification status: %s', $addr->status); + $log->warnf('Inaccurate address - only verified to %s precision', $addr->precision) unless $addr->accuracy_at_least('street'); + $log->infof('Address info is %s', { %$addr }); +})->()->get; + diff --git a/cpanfile b/cpanfile new file mode 100644 index 0000000..a5bf543 --- /dev/null +++ b/cpanfile @@ -0,0 +1,7 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + diff --git a/dist.ini b/dist.ini new file mode 100644 index 0000000..3b7bdbe --- /dev/null +++ b/dist.ini @@ -0,0 +1,8 @@ +name = WebService-Async-SmartyStreets +author = Tom Molesworth +license = Perl_5 +copyright_holder = Tom Molesworth +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[@Author::TEAM] diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..80f8475 --- /dev/null +++ b/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,92 @@ +package WebService::Async::SmartyStreets; + +use strict; +use warnings; + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000') +} + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => 'Mozilla/4.0 (WebService::Async::SmartyStreets; TEAM@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + ) + ); + $ua + } +} + +async sub verify_international { + my ($self, %args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + return await $self->verify($uri => %args) +} +async sub verify_usa { + my ($self, %args) = @_; + my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); + return await $self->verify($uri => %args) +} + +async sub verify { + my ($self, $uri, %args) = @_; + $uri->query_param($_ => $args{$_}) for keys %args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = do { + my $res = await $self->ua->GET( + $uri + ); + decode_json_utf8($res->decoded_content); + }; + $log->tracef('=> %s', $decoded); + return map { + WebService::Async::SmartyStreets::Address->new( + %$_ + ) + } @$decoded; +} + +1; + diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..ccbba14 --- /dev/null +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,59 @@ +package WebService::Async::SmartyStreets::Address; + +use strict; +use warnings; + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +sub address_parts { + my ($self) = @_; + @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } +} + +sub input_id { shift->{input_id} } +sub organization { shift->{organization} } +sub latitude { shift->{metadata}{latitude} } +sub longitude { shift->{metadata}{longitude} } +sub geocode_precision { shift->{metadata}{geocode_precision} } +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } +sub address_format { shift->{metadata}{address_format} } + +sub status { lc shift->{analysis}{verification_status} } +sub address_precision { lc shift->{analysis}{address_precision} } +sub max_address_precision { lc shift->{analysis}{max_address_precision} } + +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + From f4152e6790527861f146082bd2c668975b443c42 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 14 Mar 2019 06:06:26 +0000 Subject: [PATCH 03/55] initial version --- Changes | 4 ++ cpanfile | 10 +++ dist.ini | 67 +++++++++++++++++++ lib/WebService/Async/SmartyStreets.pm | 2 + lib/WebService/Async/SmartyStreets/Address.pm | 1 + 5 files changed, 84 insertions(+) create mode 100644 Changes diff --git a/Changes b/Changes new file mode 100644 index 0000000..e4f6dfa --- /dev/null +++ b/Changes @@ -0,0 +1,4 @@ +Revision history for LandingCompany + +0.01 2019-03-14 00:00:00+00:00 UTC + First version, released on an unsuspecting world. \ No newline at end of file diff --git a/cpanfile b/cpanfile index a5bf543..21dc320 100644 --- a/cpanfile +++ b/cpanfile @@ -5,3 +5,13 @@ requires 'Net::Async::HTTP', '>= 0.44'; requires 'IO::Async::SSL', 0; requires 'Future::AsyncAwait', '>= 0.21'; +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Exception'; +}; \ No newline at end of file diff --git a/dist.ini b/dist.ini index 3b7bdbe..20534a7 100644 --- a/dist.ini +++ b/dist.ini @@ -6,3 +6,70 @@ copyright_year = 2019 main_module = lib/WebService/Async/SmartyStreets.pm [@Author::TEAM] +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl.*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[OurPkgVersion] +[InstallGuide] +[MetaJSON] +[InsertExample] +[PerlTidy] +perltidyrc = t/rc/.perltidyrc +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +; [Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +; [PodCoverageTests] +[Test::UnusedVars] +[Test::Perl::Critic] +critic_config = /home/git/regentmarkets/cpan/rc/.perlcriticrc +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +; [Signature] +[CopyFilesFromRelease] +filename = lib/LandingCompany.pm +filename = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +allow_dirty = lib/LandingCompany.pm +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for StratoCPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] +install_command = carton install +[UploadToStratopan] +repo = Binary +stack = staging \ No newline at end of file diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 80f8475..80d4817 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -3,6 +3,8 @@ package WebService::Async::SmartyStreets; use strict; use warnings; +our $VERSION = '1.001'; + use parent qw(IO::Async::Notifier); use mro; diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index ccbba14..689ed30 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -31,6 +31,7 @@ my %status_level = ( ambiguous => 2, verified => 3 ); + sub status_at_least { my ($self, $target) = @_; my $target_level = $status_level{$target} // die 'unknown target status ' . $target; From 57a00959a86f88f26cae8c796195a24e2265f907 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 14 Mar 2019 06:29:52 +0000 Subject: [PATCH 04/55] changes settings --- dist.ini | 1 - lib/WebService/Async/SmartyStreets.pm | 1 + t/rc/.perlcriticrc | 23 ++++++++++ t/rc/.perltidyrc | 63 +++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 t/rc/.perlcriticrc create mode 100644 t/rc/.perltidyrc diff --git a/dist.ini b/dist.ini index 20534a7..3b8fceb 100644 --- a/dist.ini +++ b/dist.ini @@ -5,7 +5,6 @@ copyright_holder = Tom Molesworth copyright_year = 2019 main_module = lib/WebService/Async/SmartyStreets.pm -[@Author::TEAM] [Git::GatherDir] exclude_filename = Makefile.PL include_dotfiles = 1 diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 80d4817..3e2395e 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -1,4 +1,5 @@ package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API use strict; use warnings; diff --git a/t/rc/.perlcriticrc b/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/t/rc/.perltidyrc b/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + From c3cb854d5ae92c5e84c76447466d69c072c16036 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Tue, 19 Mar 2019 09:00:55 +0000 Subject: [PATCH 05/55] first unit test --- Changes | 6 +- cpanfile | 2 +- dist.ini | 35 +++++------ lib/WebService/Async/SmartyStreets/Address.pm | 6 +- t/01_unit_test.t | 60 +++++++++++++++++++ 5 files changed, 82 insertions(+), 27 deletions(-) create mode 100644 t/01_unit_test.t diff --git a/Changes b/Changes index e4f6dfa..077edd1 100644 --- a/Changes +++ b/Changes @@ -1,4 +1,6 @@ -Revision history for LandingCompany +Revision history for {{$dist->name}} + +{{$NEXT}} 0.01 2019-03-14 00:00:00+00:00 UTC - First version, released on an unsuspecting world. \ No newline at end of file + First version, released os an POC. \ No newline at end of file diff --git a/cpanfile b/cpanfile index 21dc320..d9703de 100644 --- a/cpanfile +++ b/cpanfile @@ -13,5 +13,5 @@ on test => sub { requires 'Test::More'; requires 'Test::Warn'; requires 'Test::FailWarnings'; - requires 'Test::Exception'; + requires 'Test::Fatal'; }; \ No newline at end of file diff --git a/dist.ini b/dist.ini index 3b8fceb..1df65a7 100644 --- a/dist.ini +++ b/dist.ini @@ -1,7 +1,7 @@ name = WebService-Async-SmartyStreets -author = Tom Molesworth +author = binary.com license = Perl_5 -copyright_holder = Tom Molesworth +copyright_holder = binary.com copyright_year = 2019 main_module = lib/WebService/Async/SmartyStreets.pm @@ -9,7 +9,7 @@ main_module = lib/WebService/Async/SmartyStreets.pm exclude_filename = Makefile.PL include_dotfiles = 1 [PruneCruft] -except = t/rc/\.perl.*rc$ +except = t/rc/\.perl*rc$ [ManifestSkip] [MetaYAML] [License] @@ -23,36 +23,34 @@ dir = share [Manifest] [TestRelease] [ConfirmRelease] +[UploadToCPAN] [Prereqs::FromCPANfile] [Prereqs / BuildRequires] perl = 5.014000 [CheckPrereqsIndexed] [CheckExtraTests] [VersionFromModule] -[OurPkgVersion] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets [InstallGuide] [MetaJSON] [InsertExample] -[PerlTidy] -perltidyrc = t/rc/.perltidyrc [PodSyntaxTests] [MojibakeTests] [Test::CheckDeps] [Test::Compile] [Test::Synopsis] -; [Test::EOL] +[Test::EOL] [Test::Version] [Test::Pod::LinkCheck] -; [PodCoverageTests] +[PodCoverageTests] [Test::UnusedVars] -[Test::Perl::Critic] -critic_config = /home/git/regentmarkets/cpan/rc/.perlcriticrc [Test::ReportPrereqs] [SpellingCommonMistakesTests] -; [Signature] -[CopyFilesFromRelease] -filename = lib/LandingCompany.pm -filename = Makefile.PL +[CopyFilesFromBuild] +copy = Makefile.PL ;[Git::Check] ;allow_dirty = dist.ini ;changelog = Changes @@ -61,14 +59,9 @@ allow_dirty = dist.ini allow_dirty = cpanfile allow_dirty = Changes allow_dirty = Makefile.PL -allow_dirty = lib/LandingCompany.pm [Git::Tag] tag_format = v%v -tag_message = Tag v%v for StratoCPAN release +tag_message = Tag v%v for CPAN release [ReversionOnRelease] [NextRelease] -[InstallRelease] -install_command = carton install -[UploadToStratopan] -repo = Binary -stack = staging \ No newline at end of file +[InstallRelease] \ No newline at end of file diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index 689ed30..e9d5cf2 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -21,9 +21,9 @@ sub geocode_precision { shift->{metadata}{geocode_precision} } sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } sub address_format { shift->{metadata}{address_format} } -sub status { lc shift->{analysis}{verification_status} } -sub address_precision { lc shift->{analysis}{address_precision} } -sub max_address_precision { lc shift->{analysis}{max_address_precision} } +sub status { lc shift->{analysis}{verification_status} // ''} +sub address_precision { lc shift->{analysis}{address_precision} // ''} +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} my %status_level = ( none => 0, diff --git a/t/01_unit_test.t b/t/01_unit_test.t new file mode 100644 index 0000000..0980240 --- /dev/null +++ b/t/01_unit_test.t @@ -0,0 +1,60 @@ +use strict; +use warnings; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::Address; + + +# my $cs_process = Test::MockModule->new('BOM::Event::Actions::CSNotifier'); +# $cs_process->mock( +# getSmartyStreetResult => sub { +# return 'verified'; +# }); + +# latitude { shift->{metadata}{latitude} } +# sub longitude { shift->{metadata}{longitude} } +# sub geocode_precision { shift->{metadata}{geocode_precision} } +# sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } +# sub address_format { shift->{metadata}{address_format} } + +# sub status { lc shift->{analysis}{verification_status} } +# sub address_precision { lc shift->{analysis}{address_precision} } +# sub max_address_precision { lc shift->{analysis}{max_address_precision} } + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file From 1be66d71f1492a02899fdf65d82413b226915ac2 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Wed, 20 Mar 2019 08:56:14 +0000 Subject: [PATCH 06/55] changed implementation --- lib/WebService/Async/SmartyStreets.pm | 48 +++++++++--------- t/01_unit_test.t | 18 ------- t/02_smarty_test.t | 73 +++++++++++++++++++++++++++ 3 files changed, 97 insertions(+), 42 deletions(-) create mode 100644 t/02_smarty_test.t diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 3e2395e..59cbb8c 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -1,5 +1,5 @@ package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API +# ABSTRACT: Access SmartyStreet API use strict; use warnings; @@ -31,10 +31,10 @@ sub configure { } sub auth_id { shift->{auth_id} } -sub token { shift->{token} } +sub token { shift->{token} } sub next_id { - ++(shift->{id} //= 'AA00000000') + ++(shift->{id} //= 'AA00000000'); } sub ua { @@ -42,26 +42,26 @@ sub ua { $self->{ua} //= do { $self->add_child( my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, + fail_on_error => 1, + decode_content => 1, + pipeline => 0, max_connections_per_host => 4, - user_agent => 'Mozilla/4.0 (WebService::Async::SmartyStreets; TEAM@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - ) - ); - $ua - } + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; TEAM@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } } async sub verify_international { my ($self, %args) = @_; my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - return await $self->verify($uri => %args) + return await $self->verify($uri => %args); } async sub verify_usa { my ($self, %args) = @_; my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); - return await $self->verify($uri => %args) + return await $self->verify($uri => %args); } async sub verify { @@ -77,19 +77,19 @@ async sub verify { 'input-id' => $self->next_id, ); $log->tracef('GET %s', '' . $uri); - my $decoded = do { - my $res = await $self->ua->GET( - $uri - ); - decode_json_utf8($res->decoded_content); - }; + my $decoded = await get_decoded_data($self, $uri); $log->tracef('=> %s', $decoded); - return map { - WebService::Async::SmartyStreets::Address->new( - %$_ - ) - } @$decoded; + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; } +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + my $response = do { + my $res = await $self->ua->GET($uri); + decode_json_utf8($res->decoded_content); + }; + return $response; +} 1; diff --git a/t/01_unit_test.t b/t/01_unit_test.t index 0980240..7657d0c 100644 --- a/t/01_unit_test.t +++ b/t/01_unit_test.t @@ -1,26 +1,8 @@ use strict; use warnings; use Test::More; -use Test::MockModule; use WebService::Async::SmartyStreets::Address; - -# my $cs_process = Test::MockModule->new('BOM::Event::Actions::CSNotifier'); -# $cs_process->mock( -# getSmartyStreetResult => sub { -# return 'verified'; -# }); - -# latitude { shift->{metadata}{latitude} } -# sub longitude { shift->{metadata}{longitude} } -# sub geocode_precision { shift->{metadata}{geocode_precision} } -# sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } -# sub address_format { shift->{metadata}{address_format} } - -# sub status { lc shift->{analysis}{verification_status} } -# sub address_precision { lc shift->{analysis}{address_precision} } -# sub max_address_precision { lc shift->{analysis}{max_address_precision} } - subtest 'Parsing test' => sub { my %dummy_data = ( input_id => 12345, diff --git a/t/02_smarty_test.t b/t/02_smarty_test.t new file mode 100644 index 0000000..b115b79 --- /dev/null +++ b/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify_international( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file From 3b38cfdee0f5d7969074a73338706e61b02bc6b6 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Wed, 20 Mar 2019 09:04:18 +0000 Subject: [PATCH 07/55] Forgotten make file --- Makefile.PL | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Makefile.PL diff --git a/Makefile.PL b/Makefile.PL new file mode 100644 index 0000000..d5db5a5 --- /dev/null +++ b/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "1.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); From 0ea4673a9555cbaf8277c06813366668c50b6b5d Mon Sep 17 00:00:00 2001 From: Nobody User Date: Wed, 20 Mar 2019 09:53:50 +0000 Subject: [PATCH 08/55] added readme --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/README.md b/README.md index a09ba1c..b7662d7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,59 @@ # perl-WebService-Async-SmartyStreets + Address lookup and verification API + +This repo makes the connection to [SmartyStreets](https://smartystreets.com/) + +## Description ## +The main purpose of the module is to predict the validity of a given address. +The module accepts multiple fields of an address, pass it to the SmartyStreets +API and returns the predicted response. + +It will return a `Future WebService::Async::SmartyStreets::Address` object. + +**More information about the API can be +found [here](https://smartystreets.com/docs/cloud/international-street-api).** + +## Sample Usage ## + +``` +my $loop = IO::Async::Loop->new; +$loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) +); + +(async sub { + my $addr = await $ss->verify_international( + address1 => 'Jl.pelabuhan 2 gang langgeng jaya 2 no 22', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + # Need to pass this if you want to do verification + geocode => 'true', + ); +})->()->get; +``` + +The module requires `auth_id` and `token` to run. The module offers `verify_international` +and `verify_usa`. The compulsary field is `country`. + +The response is parsed and stored as `WebService::Async::SmartyStreets::Address` object. + +The fields available are: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- status +- address_precision +- max_address_precision \ No newline at end of file From 9df21d3ee3e9039c8424fa7140f8dd2420b1c6bf Mon Sep 17 00:00:00 2001 From: Nobody User Date: Wed, 20 Mar 2019 10:16:30 +0000 Subject: [PATCH 09/55] added comments for Address.pm --- lib/WebService/Async/SmartyStreets/Address.pm | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index e9d5cf2..b7a33af 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -3,6 +3,14 @@ package WebService::Async::SmartyStreets::Address; use strict; use warnings; +=pod + +WebService::Async::SmartyStreets::Address + +This is a object that contains the response from SmartyStreets API + +=cut + sub new { my ($class, %args) = @_; bless \%args, $class @@ -13,6 +21,12 @@ sub address_parts { @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } } +=pod + +Various subroutine that parses and returns the field from the caller + +=cut + sub input_id { shift->{input_id} } sub organization { shift->{organization} } sub latitude { shift->{metadata}{latitude} } @@ -25,6 +39,7 @@ sub status { lc shift->{analysis}{verification_status} // ''} sub address_precision { lc shift->{analysis}{address_precision} // ''} sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} +# Maps each verification response into a score my %status_level = ( none => 0, partial => 1, @@ -32,6 +47,16 @@ my %status_level = ( verified => 3 ); +=pod + +status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +return type: 1 or 0 + +=cut + sub status_at_least { my ($self, $target) = @_; my $target_level = $status_level{$target} // die 'unknown target status ' . $target; @@ -48,6 +73,17 @@ my %accuracy_level = ( delivery_point => 5, ); +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response at least hits a certain accuracy (in terms of score) +Instantly returns 0 if the status is lower than 'partial' + +return type: 1 or 0 + +=cut + sub accuracy_at_least { my ($self, $target) = @_; return 0 unless $self->status_at_least('partial'); From 9775dd12d89c2e1dc9d3eb3ce51ecac26c11cab9 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Wed, 20 Mar 2019 10:26:39 +0000 Subject: [PATCH 10/55] added comments in smarty Street pm --- lib/WebService/Async/SmartyStreets.pm | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 59cbb8c..4ee0542 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -6,6 +6,14 @@ use warnings; our $VERSION = '1.001'; +=pod + +WebService::Async::SmartyStreets + +This module calls the SmartyStreets API and checks for the validity of the address + +=cut + use parent qw(IO::Async::Notifier); use mro; @@ -22,6 +30,15 @@ use WebService::Async::SmartyStreets::Address; use Log::Any qw($log); +=pod + +WebService::Async::SmartyStreets::Address + +This is a object that contains the response from SmartyStreets API + +=cut + + sub configure { my ($self, %args) = @_; for my $k (qw(auth_id token)) { @@ -37,6 +54,14 @@ sub next_id { ++(shift->{id} //= 'AA00000000'); } +=pod + +ua + +User agent that makes the connection to the SmartyStreets API + +=cut + sub ua { my ($self) = @_; $self->{ua} //= do { @@ -53,6 +78,14 @@ sub ua { } } +=pod + +verify_international, verify_usa + +calls to different API depending on the country of the address + +=cut + async sub verify_international { my ($self, %args) = @_; my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); From a46548a087ba063b0873250c06a45a3b6c8b5ca6 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 21 Mar 2019 02:11:19 +0000 Subject: [PATCH 11/55] added makefile --- Makefile | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..424ec00 --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +test: + dzil test + From 2d49627c10df4efc7f1c211004bf072b110ce390 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 21 Mar 2019 02:42:02 +0000 Subject: [PATCH 12/55] small changes --- lib/WebService/Async/SmartyStreets.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 4ee0542..7ec78e8 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -72,7 +72,7 @@ sub ua { pipeline => 0, max_connections_per_host => 4, user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; TEAM@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', )); $ua; } From fe1c37e43fbf83620b7928d9724262aa91ad1c7d Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 21 Mar 2019 06:47:53 +0000 Subject: [PATCH 13/55] added descriptons --- Changes | 2 +- README.md | 266 ++++++++++++++---- lib/WebService/Async/SmartyStreets.pm | 63 +++-- lib/WebService/Async/SmartyStreets/Address.pm | 56 +++- 4 files changed, 314 insertions(+), 73 deletions(-) diff --git a/Changes b/Changes index 077edd1..85d8fe9 100644 --- a/Changes +++ b/Changes @@ -3,4 +3,4 @@ Revision history for {{$dist->name}} {{$NEXT}} 0.01 2019-03-14 00:00:00+00:00 UTC - First version, released os an POC. \ No newline at end of file + Pre-release version, released os an POC. \ No newline at end of file diff --git a/README.md b/README.md index b7662d7..1414179 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,84 @@ -# perl-WebService-Async-SmartyStreets - -Address lookup and verification API - -This repo makes the connection to [SmartyStreets](https://smartystreets.com/) - -## Description ## -The main purpose of the module is to predict the validity of a given address. -The module accepts multiple fields of an address, pass it to the SmartyStreets -API and returns the predicted response. - -It will return a `Future WebService::Async::SmartyStreets::Address` object. - -**More information about the API can be -found [here](https://smartystreets.com/docs/cloud/international-street-api).** - -## Sample Usage ## - -``` -my $loop = IO::Async::Loop->new; -$loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) -); - -(async sub { - my $addr = await $ss->verify_international( - address1 => 'Jl.pelabuhan 2 gang langgeng jaya 2 no 22', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - # Need to pass this if you want to do verification - geocode => 'true', - ); -})->()->get; -``` +# NAME + +WebService::Async::SmartyStreets::Address - represents (parses) the return response from SmartyStreets API in an object + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This is parses the response given by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); -The module requires `auth_id` and `token` to run. The module offers `verify_international` -and `verify_usa`. The compulsary field is `country`. +## Sample SmartyStreets API response -The response is parsed and stored as `WebService::Async::SmartyStreets::Address` object. + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] -The fields available are: +# Attributes + +All attributes that is parsed includes: - input_id - organization @@ -54,6 +87,145 @@ The fields available are: - geocode_precision - max_geocode_precision - address_format -- status +- verification_status - address_precision -- max_address_precision \ No newline at end of file +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +return type: 1 or 0 + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score) +Instantly returns 0 if the status is lower than 'partial' + +return type: 1 or 0 + +## input_id + +Returns the input_id parsed + +## organization + +Returns the organization parsed + +## latitude + +Returns the latitude parsed + +## longitude + +Returns the latitude parsed + +## geocode_precision + +Returns the geocode_precision parsed + +## max_geocode_precision + +Returns the max_geocode_precision parsed + +## address_format + +Returns the value of address_format parsed + +## status + +Returns the value of verification_status parsed + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed + +Address precision indicates the precision of the address values. + +## max_address_precision + +Returns the value of max_address_precision parsed + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->()->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token + +## auth_id + +Returns auth_id + +## token + +Returns token + +## ua + +Constructs a Net::Async::HTTP object + +## verify_international + +Calls and passes the address data to SmartyStreets International API +Returns a WebService::Async::SmartyStreets::Address object + +## verify_usa + +Calls and passes the address data to SmartyStreets USA API (USA address only) +Returns a WebService::Async::SmartyStreets::Address object + +## verify + +Prepares the data and calls get_decoded_data to obtain the response and parses it +to WebService::Async::SmartyStreets::Address object. + +## get_decoded_data + +Gets the data by making the call to SmartyStreets API and decode the response +Returns a Future Object + +# AUTHOR + +Binary.com + diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 7ec78e8..634c32b 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -4,13 +4,37 @@ package WebService::Async::SmartyStreets; use strict; use warnings; -our $VERSION = '1.001'; +our $VERSION = '0.001'; -=pod +=HEAD -WebService::Async::SmartyStreets +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address -This module calls the SmartyStreets API and checks for the validity of the address +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->()->get; + +=head1 DESCRIPTION + +his class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +=over 4 =cut @@ -30,15 +54,12 @@ use WebService::Async::SmartyStreets::Address; use Log::Any qw($log); -=pod +=head2 configure -WebService::Async::SmartyStreets::Address - -This is a object that contains the response from SmartyStreets API +Configures the class with the auth_id and token =cut - sub configure { my ($self, %args) = @_; for my $k (qw(auth_id token)) { @@ -54,11 +75,9 @@ sub next_id { ++(shift->{id} //= 'AA00000000'); } -=pod - -ua +=head2 ua -User agent that makes the connection to the SmartyStreets API +Creates a User agent (Net::Async::HTTP) that is used to make connection to the SmartyStreets API =cut @@ -78,9 +97,7 @@ sub ua { } } -=pod - -verify_international, verify_usa +=head2 verify_international, verify_usa calls to different API depending on the country of the address @@ -97,6 +114,13 @@ async sub verify_usa { return await $self->verify($uri => %args); } + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address + +=cut + async sub verify { my ($self, $uri, %args) = @_; $uri->query_param($_ => $args{$_}) for keys %args; @@ -115,6 +139,12 @@ async sub verify { return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; } +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and return response + +=cut + async sub get_decoded_data { my $self = shift; my $uri = shift; @@ -124,5 +154,6 @@ async sub get_decoded_data { }; return $response; } + 1; diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index b7a33af..99ab42b 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -3,11 +3,51 @@ package WebService::Async::SmartyStreets::Address; use strict; use warnings; -=pod - -WebService::Async::SmartyStreets::Address - -This is a object that contains the response from SmartyStreets API +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 =cut @@ -21,7 +61,7 @@ sub address_parts { @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } } -=pod +=head2 Various subroutine that parses and returns the field from the caller @@ -47,9 +87,7 @@ my %status_level = ( verified => 3 ); -=pod - -status_at_least +=head2 status_at_least Checks if the returned response at least hits a certain level (in terms of score) From 59dd689b68baf97dc87b784de79175736ff652a7 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 21 Mar 2019 07:21:44 +0000 Subject: [PATCH 14/55] added doc --- README.md | 64 ++++++++++++++------------- lib/WebService/Async/SmartyStreets.pm | 11 ++++- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 1414179..49083e3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # NAME -WebService::Async::SmartyStreets::Address - represents (parses) the return response from SmartyStreets API in an object +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API # VERSION @@ -25,7 +25,7 @@ version 0.001 # DESCRIPTION -This is parses the response given by SmartyStreets API into an object to access them. +This module parses the response by SmartyStreets API into an object to access them. ## Construction @@ -101,48 +101,51 @@ Creates the object. takes in hashrefs ## status_at_least -Checks if the returned response at least hits a certain level (in terms of score) - -return type: 1 or 0 +Checks if the returned response at least hits a certain level (in terms of score). +Takes in: String +Returns: 1 or 0 ## accuracy_at_least -Checks if the returned response at least hits a certain accuracy (in terms of score) -Instantly returns 0 if the status is lower than 'partial' +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +Takes in: String +Returns: 1 or 0 -return type: 1 or 0 +# Attributes ## input_id -Returns the input_id parsed +Returns the input_id parsed. ## organization -Returns the organization parsed +Returns the organization parsed. ## latitude -Returns the latitude parsed +Returns the latitude parsed. ## longitude -Returns the latitude parsed +Returns the latitude parsed. ## geocode_precision -Returns the geocode_precision parsed +Returns the geocode_precision parsed. ## max_geocode_precision -Returns the max_geocode_precision parsed +Returns the max_geocode_precision parsed. ## address_format -Returns the value of address_format parsed +Returns the value of address_format parsed. ## status -Returns the value of verification_status parsed +Returns the value of verification_status parsed. The value returned should be either: @@ -153,13 +156,11 @@ The value returned should be either: ## address_precision -Returns the value of address_precision parsed - -Address precision indicates the precision of the address values. +Returns the value of address_precision parsed. ## max_address_precision -Returns the value of max_address_precision parsed +Returns the value of max_address_precision parsed. --- @@ -191,39 +192,42 @@ This class calls the SmartyStreets API and parse the response to `WebService::As ## configure -configures the class with auth_id and token +configures the class with auth_id and token. ## auth_id -Returns auth_id +Returns auth_id. ## token -Returns token +Returns token. ## ua -Constructs a Net::Async::HTTP object +Constructs a Net::Async::HTTP object. ## verify_international -Calls and passes the address data to SmartyStreets International API -Returns a WebService::Async::SmartyStreets::Address object +Calls and passes the address data to SmartyStreets International API. +Takes in a hash. +Returns a WebService::Async::SmartyStreets::Address object. ## verify_usa -Calls and passes the address data to SmartyStreets USA API (USA address only) -Returns a WebService::Async::SmartyStreets::Address object +Calls and passes the address data to SmartyStreets USA API (USA address only). +Takes in a hash. +Returns a WebService::Async::SmartyStreets::Address object. ## verify Prepares the data and calls get_decoded_data to obtain the response and parses it to WebService::Async::SmartyStreets::Address object. +Takes in uri and a hash ## get_decoded_data -Gets the data by making the call to SmartyStreets API and decode the response -Returns a Future Object +Gets the data by making the call to SmartyStreets API and decode the response. +Returns a Future Object. # AUTHOR diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 634c32b..9a6a891 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -57,6 +57,7 @@ use Log::Any qw($log); =head2 configure Configures the class with the auth_id and token +Takes in: Hash of auth_id and token =cut @@ -99,7 +100,9 @@ sub ua { =head2 verify_international, verify_usa -calls to different API depending on the country of the address +Calls to different API depending on the country of the address. +Takes in: Hash of address and required components +Returns: WebService::Async::SmartyStreets::Address object =cut @@ -117,7 +120,9 @@ async sub verify_usa { =head2 verify -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. +Takes in: URI and hash +Returns: WebService::Async::SmartyStreets::Address object =cut @@ -142,6 +147,8 @@ async sub verify { =head2 get_decoded_data Calls the SmartyStreets API then decode and return response +Takes in: Uri +Returns: decoded response in Hash =cut From 11fc9153832dda29245bf5aa8aced2e83812ca2b Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 21 Mar 2019 08:53:28 +0000 Subject: [PATCH 15/55] change comments --- lib/WebService/Async/SmartyStreets.pm | 15 +++++++++++++-- lib/WebService/Async/SmartyStreets/Address.pm | 12 ++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 9a6a891..4434e3a 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -57,7 +57,7 @@ use Log::Any qw($log); =head2 configure Configures the class with the auth_id and token -Takes in: Hash of auth_id and token +Takes in: Hash which consists of auth_id and token =cut @@ -102,6 +102,17 @@ sub ua { Calls to different API depending on the country of the address. Takes in: Hash of address and required components + +Components includes: + - country (compulsory) + - address1 + - address2 + - organization + - locality + - administrative_area + - postal_code + - geocode (true or false) + Returns: WebService::Async::SmartyStreets::Address object =cut @@ -121,7 +132,7 @@ async sub verify_usa { =head2 verify Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. -Takes in: URI and hash +Takes in: URI object and hash of address args Returns: WebService::Async::SmartyStreets::Address object =cut diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index 99ab42b..d0bd027 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -89,9 +89,9 @@ my %status_level = ( =head2 status_at_least -Checks if the returned response at least hits a certain level (in terms of score) - -return type: 1 or 0 +Checks if the returned response is at least hits a certain level (in terms of score) +Takes in: String of verification status +Return : 1 or 0 =cut @@ -115,10 +115,10 @@ my %accuracy_level = ( accuracy_at_least -Similar with status at least, checks if the returned response at least hits a certain accuracy (in terms of score) +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) Instantly returns 0 if the status is lower than 'partial' - -return type: 1 or 0 +Takes in: String of accuracy +Return : 1 or 0 =cut From 403c2e7b62b6908b048d2b617e5adf220718c9d1 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 21 Mar 2019 08:58:37 +0000 Subject: [PATCH 16/55] test --- Changes | 3 +-- Makefile.PL | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Changes b/Changes index 85d8fe9..175a316 100644 --- a/Changes +++ b/Changes @@ -2,5 +2,4 @@ Revision history for {{$dist->name}} {{$NEXT}} -0.01 2019-03-14 00:00:00+00:00 UTC - Pre-release version, released os an POC. \ No newline at end of file + Pre-release version, released os an proof of concept. \ No newline at end of file diff --git a/Makefile.PL b/Makefile.PL index d5db5a5..37cc16f 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -35,7 +35,7 @@ my %WriteMakefileArgs = ( "Test::More" => "0.94", "Test::Warn" => 0 }, - "VERSION" => "1.001", + "VERSION" => "0.001", "test" => { "TESTS" => "t/*.t" } From 5ac12636f3556b08915c636c10ec84ec089da41c Mon Sep 17 00:00:00 2001 From: limchengyang Date: Mon, 25 Mar 2019 08:07:35 +0000 Subject: [PATCH 17/55] test --- lib/WebService/Async/SmartyStreets.pm | 34 ++++++++++++++++----------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 4434e3a..0338236 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -16,23 +16,29 @@ version 0.001 =head1 SYNOPSIS - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->()->get; + { + my $ss; + sub get_smartystreets { + return $ss if $ss; + $ss = WebService::Async::SmartyStreets->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + return $ss; + } + } + + my $ss = get_smartystreets(); + + my $addr = $ss->verify_international(, geocode => 'true')->get; + return $addr->status; =head1 DESCRIPTION -his class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +This module uses Future::AsyncAwait, visit https://metacpan.org/pod/Future::AsyncAwait for more information. =over 4 From 964afd95bb233899c857e96e6bca341c1a547950 Mon Sep 17 00:00:00 2001 From: Michael Mueller Date: Tue, 26 Mar 2019 10:16:21 +0800 Subject: [PATCH 18/55] Update lib/WebService/Async/SmartyStreets/Address.pm Co-Authored-By: limchengyang <45479072+limchengyang@users.noreply.github.com> --- lib/WebService/Async/SmartyStreets/Address.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index d0bd027..17120b3 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -89,7 +89,7 @@ my %status_level = ( =head2 status_at_least -Checks if the returned response is at least hits a certain level (in terms of score) +Checks if the returned response at least hits a certain level (in terms of score) Takes in: String of verification status Return : 1 or 0 From 93311ae336cd51889ffa5963773296c9c1bfe0d8 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 29 Mar 2019 03:23:37 +0000 Subject: [PATCH 19/55] deleted unnecessary file --- binary.pl | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 binary.pl diff --git a/binary.pl b/binary.pl deleted file mode 100644 index 8548d6a..0000000 --- a/binary.pl +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env perl -use strict; -use warnings; - -use Future::AsyncAwait; - -use IO::Async::Loop; -use WebService::Async::SmartyStreets; - -use Log::Any qw($log); -use Log::Any::Adapter qw(Stdout), log_level => 'trace'; - -my $loop = IO::Async::Loop->new; -$loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) -); - -(async sub { - my $addr = await $ss->verify_international( - address1 => 'Jl.pelabuhan 2 gang langgeng jaya 2 no 22', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - # Need to pass this if you want to do verification - geocode => 'true', - ); - - $log->infof('Verification status: %s', $addr->status); - $log->warnf('Inaccurate address - only verified to %s precision', $addr->precision) unless $addr->accuracy_at_least('street'); - $log->infof('Address info is %s', { %$addr }); -})->()->get; - From 15b6b1a3588fdd23cd1806c780a8ed8b3e7d472b Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 29 Mar 2019 07:42:03 +0000 Subject: [PATCH 20/55] changes comments --- Changes | 2 +- lib/WebService/Async/SmartyStreets.pm | 90 +++++++++++++-------- lib/WebService/Async/SmartyStreets/Untitled | 0 3 files changed, 56 insertions(+), 36 deletions(-) create mode 100644 lib/WebService/Async/SmartyStreets/Untitled diff --git a/Changes b/Changes index 175a316..f3123fe 100644 --- a/Changes +++ b/Changes @@ -2,4 +2,4 @@ Revision history for {{$dist->name}} {{$NEXT}} - Pre-release version, released os an proof of concept. \ No newline at end of file + Pre-release version, Released as an proof of concept. \ No newline at end of file diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 0338236..ccb7749 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -10,26 +10,20 @@ our $VERSION = '0.001'; WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address -=head1 VERSION - -version 0.001 - =head1 SYNOPSIS - { - my $ss; - sub get_smartystreets { - return $ss if $ss; - $ss = WebService::Async::SmartyStreets->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - return $ss; - } + my $ss; + sub get_smartystreets { + return $ss if $ss; + $ss = WebService::Async::SmartyStreets->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + return $ss; } - my $ss = get_smartystreets(); + $ss = get_smartystreets(); my $addr = $ss->verify_international(, geocode => 'true')->get; return $addr->status; @@ -38,7 +32,7 @@ version 0.001 This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` -This module uses Future::AsyncAwait, visit https://metacpan.org/pod/Future::AsyncAwait for more information. +Note that this module uses L =over 4 @@ -84,7 +78,7 @@ sub next_id { =head2 ua -Creates a User agent (Net::Async::HTTP) that is used to make connection to the SmartyStreets API +Accessor for the L instance which will be used for SmartyStreets API requests. =cut @@ -104,22 +98,25 @@ sub ua { } } -=head2 verify_international, verify_usa +=head2 verify_international Calls to different API depending on the country of the address. -Takes in: Hash of address and required components - -Components includes: - - country (compulsory) - - address1 - - address2 - - organization - - locality - - administrative_area - - postal_code - - geocode (true or false) - -Returns: WebService::Async::SmartyStreets::Address object +Takes the following named parameters: + += over 4 + += item * C - country += item * C - address line 1 += item * C - address line 2 += item * C - name of organization (usually building names) += item * C - city += item * C - state += item * C - post code += item * C - true or false + += back + +Returns a L which resolves to a L instance. =cut @@ -128,6 +125,13 @@ async sub verify_international { my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); return await $self->verify($uri => %args); } + +=head2 verify_international + +See L. + +=cut + async sub verify_usa { my ($self, %args) = @_; my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); @@ -138,8 +142,17 @@ async sub verify_usa { =head2 verify Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. -Takes in: URI object and hash of address args -Returns: WebService::Async::SmartyStreets::Address object + +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to += item * C - address parametes in hash (See L) + += back + +Returns L object =cut @@ -164,7 +177,14 @@ async sub verify { =head2 get_decoded_data Calls the SmartyStreets API then decode and return response -Takes in: Uri +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to + += back + Returns: decoded response in Hash =cut diff --git a/lib/WebService/Async/SmartyStreets/Untitled b/lib/WebService/Async/SmartyStreets/Untitled new file mode 100644 index 0000000..e69de29 From 9963432928aa74363e277eb0bd0fc131832f1ee8 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 29 Mar 2019 09:51:02 +0000 Subject: [PATCH 21/55] experiment --- .build/latest | 1 + lib/WebService/Async/SmartyStreets.pm | 23 ++++++-- .../Async/SmartyStreets/International.pm | 58 +++++++++++++++++++ lib/WebService/Async/SmartyStreets/Untitled | 0 4 files changed, 76 insertions(+), 6 deletions(-) create mode 120000 .build/latest create mode 100644 lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 lib/WebService/Async/SmartyStreets/Untitled diff --git a/.build/latest b/.build/latest new file mode 120000 index 0000000..6247eee --- /dev/null +++ b/.build/latest @@ -0,0 +1 @@ +ZjbI6QoQzx \ No newline at end of file diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index ccb7749..820cf47 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -120,11 +120,11 @@ Returns a L which resolves to a Lnew('https://international-street.api.smartystreets.com/verify'); - return await $self->verify($uri => %args); -} +# async sub verify_international { +# my ($self, %args) = @_; +# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); +# return await $self->verify($uri => %args); +# } =head2 verify_international @@ -157,7 +157,10 @@ Returns L object =cut async sub verify { - my ($self, $uri, %args) = @_; + my ($self, %args) = @_; + + my $uri = URI->new(get_uri()); + $uri->query_param($_ => $args{$_}) for keys %args; $uri->query_param( 'auth-id' => ($self->auth_id // die 'need an auth ID'), @@ -199,5 +202,13 @@ async sub get_decoded_data { return $response; } +sub get_uri { + die "Subroutine not overriden in the child's module"; +} + +# sub get_address { +# die "Subroutine not overriden in the child's module"; +# } + 1; diff --git a/lib/WebService/Async/SmartyStreets/International.pm b/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..a7c771a --- /dev/null +++ b/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,58 @@ +package WebService::Async::SmartyStreets::International; + +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + + +# =head2 _init + +# Overrides _init from IO::Async::Notifier +# Takes in the following parameters (in hash): + +# = over 4 + +# = item * C - country +# = item * C - address line 1 +# = item * C - address line 2 +# = item * C - name of organization (usually building names) +# = item * C - city +# = item * C - state +# = item * C - post code +# = item * C - true or false + +# = back + +# Returns a L instance. + +# =cut + +# sub _init { +# my ($self, $paramref) = @_; +# $self->SUPER::_init; + +# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { +# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; +# } +# } + +# =head2 get_address + +# Overrides get_address in L +# Returns address in hash + +# =cut + +# sub get_address : method { shift->{address} } + +# =head2 get_url + +# Overrides get_uri in l +# Returns URI in string + +# =cut + +sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } + +1; \ No newline at end of file diff --git a/lib/WebService/Async/SmartyStreets/Untitled b/lib/WebService/Async/SmartyStreets/Untitled deleted file mode 100644 index e69de29..0000000 From d2c3347049472342246eeec8ecd60062123d2910 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 29 Mar 2019 10:39:29 +0000 Subject: [PATCH 22/55] as per commented, moved verify_international and verify_usa into different modules --- .build/lD7H1AP4uL/Changes | 5 + .build/lD7H1AP4uL/INSTALL | 43 + .build/lD7H1AP4uL/LICENSE | 379 +++++++ .build/lD7H1AP4uL/MANIFEST | 32 + .build/lD7H1AP4uL/META.json | 82 ++ .build/lD7H1AP4uL/META.yml | 37 + .build/lD7H1AP4uL/MYMETA.json | 82 ++ .build/lD7H1AP4uL/MYMETA.yml | 37 + .build/lD7H1AP4uL/Makefile | 937 ++++++++++++++++++ .build/lD7H1AP4uL/Makefile.PL | 73 ++ .build/lD7H1AP4uL/README | 12 + .build/lD7H1AP4uL/README.md | 235 +++++ .build/lD7H1AP4uL/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/lD7H1AP4uL/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 214 ++++ .../WebService/Async/SmartyStreets/Address.pm | 134 +++ .../Async/SmartyStreets/International.pm | 58 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/lD7H1AP4uL/blib/man1/.exists | 0 .build/lD7H1AP4uL/blib/man3/.exists | 0 .build/lD7H1AP4uL/blib/script/.exists | 0 .build/lD7H1AP4uL/cpanfile | 17 + .build/lD7H1AP4uL/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 214 ++++ .../WebService/Async/SmartyStreets/Address.pm | 134 +++ .../Async/SmartyStreets/International.pm | 58 ++ .build/lD7H1AP4uL/pm_to_blib | 0 .build/lD7H1AP4uL/t/00-check-deps.t | 17 + .build/lD7H1AP4uL/t/00-compile.t | 56 ++ .build/lD7H1AP4uL/t/00-report-prereqs.dd | 53 + .build/lD7H1AP4uL/t/00-report-prereqs.t | 183 ++++ .build/lD7H1AP4uL/t/01_unit_test.t | 42 + .build/lD7H1AP4uL/t/02_smarty_test.t | 73 ++ .build/lD7H1AP4uL/t/rc/.perlcriticrc | 23 + .build/lD7H1AP4uL/t/rc/.perltidyrc | 63 ++ .build/lD7H1AP4uL/xt/author/eol.t | 24 + .build/lD7H1AP4uL/xt/author/mojibake.t | 9 + .build/lD7H1AP4uL/xt/author/pod-coverage.t | 7 + .build/lD7H1AP4uL/xt/author/pod-syntax.t | 7 + .build/lD7H1AP4uL/xt/author/synopsis.t | 5 + .build/lD7H1AP4uL/xt/author/test-version.t | 23 + .../lD7H1AP4uL/xt/release/common_spelling.t | 11 + .build/lD7H1AP4uL/xt/release/pod-linkcheck.t | 20 + .build/lD7H1AP4uL/xt/release/unused-vars.t | 14 + .build/latest | 1 - .build/mEAyItBKml/Changes | 5 + .build/mEAyItBKml/INSTALL | 43 + .build/mEAyItBKml/LICENSE | 379 +++++++ .build/mEAyItBKml/MANIFEST | 32 + .build/mEAyItBKml/META.json | 82 ++ .build/mEAyItBKml/META.yml | 37 + .build/mEAyItBKml/MYMETA.json | 82 ++ .build/mEAyItBKml/MYMETA.yml | 37 + .build/mEAyItBKml/Makefile | 937 ++++++++++++++++++ .build/mEAyItBKml/Makefile.PL | 73 ++ .build/mEAyItBKml/README | 12 + .build/mEAyItBKml/README.md | 235 +++++ .build/mEAyItBKml/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/mEAyItBKml/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 214 ++++ .../WebService/Async/SmartyStreets/Address.pm | 134 +++ .../Async/SmartyStreets/International.pm | 58 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/mEAyItBKml/blib/man1/.exists | 0 .build/mEAyItBKml/blib/man3/.exists | 0 .build/mEAyItBKml/blib/script/.exists | 0 .build/mEAyItBKml/cpanfile | 17 + .build/mEAyItBKml/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 214 ++++ .../WebService/Async/SmartyStreets/Address.pm | 134 +++ .../Async/SmartyStreets/International.pm | 58 ++ .build/mEAyItBKml/pm_to_blib | 0 .build/mEAyItBKml/t/00-check-deps.t | 17 + .build/mEAyItBKml/t/00-compile.t | 56 ++ .build/mEAyItBKml/t/00-report-prereqs.dd | 53 + .build/mEAyItBKml/t/00-report-prereqs.t | 183 ++++ .build/mEAyItBKml/t/01_unit_test.t | 42 + .build/mEAyItBKml/t/02_smarty_test.t | 73 ++ .build/mEAyItBKml/t/rc/.perlcriticrc | 23 + .build/mEAyItBKml/t/rc/.perltidyrc | 63 ++ .build/mEAyItBKml/xt/author/eol.t | 24 + .build/mEAyItBKml/xt/author/mojibake.t | 9 + .build/mEAyItBKml/xt/author/pod-coverage.t | 7 + .build/mEAyItBKml/xt/author/pod-syntax.t | 7 + .build/mEAyItBKml/xt/author/synopsis.t | 5 + .build/mEAyItBKml/xt/author/test-version.t | 23 + .../mEAyItBKml/xt/release/common_spelling.t | 11 + .build/mEAyItBKml/xt/release/pod-linkcheck.t | 20 + .build/mEAyItBKml/xt/release/unused-vars.t | 14 + lib/WebService/Async/SmartyStreets.pm | 83 +- .../Async/SmartyStreets/International.pm | 56 +- lib/WebService/Async/SmartyStreets/USA.pm | 32 + t/02_smarty_test.t | 6 +- 97 files changed, 7039 insertions(+), 99 deletions(-) create mode 100644 .build/lD7H1AP4uL/Changes create mode 100644 .build/lD7H1AP4uL/INSTALL create mode 100644 .build/lD7H1AP4uL/LICENSE create mode 100644 .build/lD7H1AP4uL/MANIFEST create mode 100644 .build/lD7H1AP4uL/META.json create mode 100644 .build/lD7H1AP4uL/META.yml create mode 100644 .build/lD7H1AP4uL/MYMETA.json create mode 100644 .build/lD7H1AP4uL/MYMETA.yml create mode 100644 .build/lD7H1AP4uL/Makefile create mode 100644 .build/lD7H1AP4uL/Makefile.PL create mode 100644 .build/lD7H1AP4uL/README create mode 100644 .build/lD7H1AP4uL/README.md create mode 100644 .build/lD7H1AP4uL/blib/arch/.exists create mode 100644 .build/lD7H1AP4uL/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/lD7H1AP4uL/blib/bin/.exists create mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/.exists create mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/lD7H1AP4uL/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/lD7H1AP4uL/blib/man1/.exists create mode 100644 .build/lD7H1AP4uL/blib/man3/.exists create mode 100644 .build/lD7H1AP4uL/blib/script/.exists create mode 100644 .build/lD7H1AP4uL/cpanfile create mode 100644 .build/lD7H1AP4uL/dist.ini create mode 100644 .build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/lD7H1AP4uL/pm_to_blib create mode 100644 .build/lD7H1AP4uL/t/00-check-deps.t create mode 100644 .build/lD7H1AP4uL/t/00-compile.t create mode 100644 .build/lD7H1AP4uL/t/00-report-prereqs.dd create mode 100644 .build/lD7H1AP4uL/t/00-report-prereqs.t create mode 100644 .build/lD7H1AP4uL/t/01_unit_test.t create mode 100644 .build/lD7H1AP4uL/t/02_smarty_test.t create mode 100644 .build/lD7H1AP4uL/t/rc/.perlcriticrc create mode 100644 .build/lD7H1AP4uL/t/rc/.perltidyrc create mode 100644 .build/lD7H1AP4uL/xt/author/eol.t create mode 100644 .build/lD7H1AP4uL/xt/author/mojibake.t create mode 100644 .build/lD7H1AP4uL/xt/author/pod-coverage.t create mode 100644 .build/lD7H1AP4uL/xt/author/pod-syntax.t create mode 100644 .build/lD7H1AP4uL/xt/author/synopsis.t create mode 100644 .build/lD7H1AP4uL/xt/author/test-version.t create mode 100644 .build/lD7H1AP4uL/xt/release/common_spelling.t create mode 100644 .build/lD7H1AP4uL/xt/release/pod-linkcheck.t create mode 100644 .build/lD7H1AP4uL/xt/release/unused-vars.t delete mode 120000 .build/latest create mode 100644 .build/mEAyItBKml/Changes create mode 100644 .build/mEAyItBKml/INSTALL create mode 100644 .build/mEAyItBKml/LICENSE create mode 100644 .build/mEAyItBKml/MANIFEST create mode 100644 .build/mEAyItBKml/META.json create mode 100644 .build/mEAyItBKml/META.yml create mode 100644 .build/mEAyItBKml/MYMETA.json create mode 100644 .build/mEAyItBKml/MYMETA.yml create mode 100644 .build/mEAyItBKml/Makefile create mode 100644 .build/mEAyItBKml/Makefile.PL create mode 100644 .build/mEAyItBKml/README create mode 100644 .build/mEAyItBKml/README.md create mode 100644 .build/mEAyItBKml/blib/arch/.exists create mode 100644 .build/mEAyItBKml/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/mEAyItBKml/blib/bin/.exists create mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/.exists create mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/mEAyItBKml/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/mEAyItBKml/blib/man1/.exists create mode 100644 .build/mEAyItBKml/blib/man3/.exists create mode 100644 .build/mEAyItBKml/blib/script/.exists create mode 100644 .build/mEAyItBKml/cpanfile create mode 100644 .build/mEAyItBKml/dist.ini create mode 100644 .build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/mEAyItBKml/pm_to_blib create mode 100644 .build/mEAyItBKml/t/00-check-deps.t create mode 100644 .build/mEAyItBKml/t/00-compile.t create mode 100644 .build/mEAyItBKml/t/00-report-prereqs.dd create mode 100644 .build/mEAyItBKml/t/00-report-prereqs.t create mode 100644 .build/mEAyItBKml/t/01_unit_test.t create mode 100644 .build/mEAyItBKml/t/02_smarty_test.t create mode 100644 .build/mEAyItBKml/t/rc/.perlcriticrc create mode 100644 .build/mEAyItBKml/t/rc/.perltidyrc create mode 100644 .build/mEAyItBKml/xt/author/eol.t create mode 100644 .build/mEAyItBKml/xt/author/mojibake.t create mode 100644 .build/mEAyItBKml/xt/author/pod-coverage.t create mode 100644 .build/mEAyItBKml/xt/author/pod-syntax.t create mode 100644 .build/mEAyItBKml/xt/author/synopsis.t create mode 100644 .build/mEAyItBKml/xt/author/test-version.t create mode 100644 .build/mEAyItBKml/xt/release/common_spelling.t create mode 100644 .build/mEAyItBKml/xt/release/pod-linkcheck.t create mode 100644 .build/mEAyItBKml/xt/release/unused-vars.t create mode 100644 lib/WebService/Async/SmartyStreets/USA.pm diff --git a/.build/lD7H1AP4uL/Changes b/.build/lD7H1AP4uL/Changes new file mode 100644 index 0000000..39c8c44 --- /dev/null +++ b/.build/lD7H1AP4uL/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-03-29 09:51:35+00:00 UTC + + Pre-release version, Released as an proof of concept. \ No newline at end of file diff --git a/.build/lD7H1AP4uL/INSTALL b/.build/lD7H1AP4uL/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/lD7H1AP4uL/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/lD7H1AP4uL/LICENSE b/.build/lD7H1AP4uL/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/lD7H1AP4uL/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/lD7H1AP4uL/MANIFEST b/.build/lD7H1AP4uL/MANIFEST new file mode 100644 index 0000000..77742b1 --- /dev/null +++ b/.build/lD7H1AP4uL/MANIFEST @@ -0,0 +1,32 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/lD7H1AP4uL/META.json b/.build/lD7H1AP4uL/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/lD7H1AP4uL/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/lD7H1AP4uL/META.yml b/.build/lD7H1AP4uL/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/lD7H1AP4uL/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/lD7H1AP4uL/MYMETA.json b/.build/lD7H1AP4uL/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/lD7H1AP4uL/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/lD7H1AP4uL/MYMETA.yml b/.build/lD7H1AP4uL/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/lD7H1AP4uL/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/lD7H1AP4uL/Makefile b/.build/lD7H1AP4uL/Makefile new file mode 100644 index 0000000..595bd73 --- /dev/null +++ b/.build/lD7H1AP4uL/Makefile @@ -0,0 +1,937 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/lD7H1AP4uL/Makefile.PL b/.build/lD7H1AP4uL/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/lD7H1AP4uL/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/lD7H1AP4uL/README b/.build/lD7H1AP4uL/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/lD7H1AP4uL/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/lD7H1AP4uL/README.md b/.build/lD7H1AP4uL/README.md new file mode 100644 index 0000000..49083e3 --- /dev/null +++ b/.build/lD7H1AP4uL/README.md @@ -0,0 +1,235 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). +Takes in: String +Returns: 1 or 0 + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +Takes in: String +Returns: 1 or 0 + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->()->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Constructs a Net::Async::HTTP object. + +## verify_international + +Calls and passes the address data to SmartyStreets International API. +Takes in a hash. +Returns a WebService::Async::SmartyStreets::Address object. + +## verify_usa + +Calls and passes the address data to SmartyStreets USA API (USA address only). +Takes in a hash. +Returns a WebService::Async::SmartyStreets::Address object. + +## verify + +Prepares the data and calls get_decoded_data to obtain the response and parses it +to WebService::Async::SmartyStreets::Address object. +Takes in uri and a hash + +## get_decoded_data + +Gets the data by making the call to SmartyStreets API and decode the response. +Returns a Future Object. + +# AUTHOR + +Binary.com + diff --git a/.build/lD7H1AP4uL/blib/arch/.exists b/.build/lD7H1AP4uL/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/lD7H1AP4uL/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/blib/bin/.exists b/.build/lD7H1AP4uL/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/.exists b/.build/lD7H1AP4uL/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..820cf47 --- /dev/null +++ b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,214 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=HEAD + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss; + sub get_smartystreets { + return $ss if $ss; + $ss = WebService::Async::SmartyStreets->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + return $ss; + } + + $ss = get_smartystreets(); + + my $addr = $ss->verify_international(, geocode => 'true')->get; + return $addr->status; + +=head1 DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token +Takes in: Hash which consists of auth_id and token + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify_international + +Calls to different API depending on the country of the address. +Takes the following named parameters: + += over 4 + += item * C - country += item * C - address line 1 += item * C - address line 2 += item * C - name of organization (usually building names) += item * C - city += item * C - state += item * C - post code += item * C - true or false + += back + +Returns a L which resolves to a L instance. + +=cut + +# async sub verify_international { +# my ($self, %args) = @_; +# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); +# return await $self->verify($uri => %args); +# } + +=head2 verify_international + +See L. + +=cut + +async sub verify_usa { + my ($self, %args) = @_; + my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); + return await $self->verify($uri => %args); +} + + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to += item * C - address parametes in hash (See L) + += back + +Returns L object + +=cut + +async sub verify { + my ($self, %args) = @_; + + my $uri = URI->new(get_uri()); + + $uri->query_param($_ => $args{$_}) for keys %args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and return response +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to + += back + +Returns: decoded response in Hash + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + my $response = do { + my $res = await $self->ua->GET($uri); + decode_json_utf8($res->decoded_content); + }; + return $response; +} + +sub get_uri { + die "Subroutine not overriden in the child's module"; +} + +# sub get_address { +# die "Subroutine not overriden in the child's module"; +# } + +1; + diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..081ad4c --- /dev/null +++ b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,134 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +sub address_parts { + my ($self) = @_; + @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } +} + +=head2 + +Various subroutine that parses and returns the field from the caller + +=cut + +sub input_id { shift->{input_id} } +sub organization { shift->{organization} } +sub latitude { shift->{metadata}{latitude} } +sub longitude { shift->{metadata}{longitude} } +sub geocode_precision { shift->{metadata}{geocode_precision} } +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } +sub address_format { shift->{metadata}{address_format} } + +sub status { lc shift->{analysis}{verification_status} // ''} +sub address_precision { lc shift->{analysis}{address_precision} // ''} +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) +Takes in: String of verification status +Return : 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) +Instantly returns 0 if the status is lower than 'partial' +Takes in: String of accuracy +Return : 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..2c44322 --- /dev/null +++ b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,58 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + + +# =head2 _init + +# Overrides _init from IO::Async::Notifier +# Takes in the following parameters (in hash): + +# = over 4 + +# = item * C - country +# = item * C - address line 1 +# = item * C - address line 2 +# = item * C - name of organization (usually building names) +# = item * C - city +# = item * C - state +# = item * C - post code +# = item * C - true or false + +# = back + +# Returns a L instance. + +# =cut + +# sub _init { +# my ($self, $paramref) = @_; +# $self->SUPER::_init; + +# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { +# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; +# } +# } + +# =head2 get_address + +# Overrides get_address in L +# Returns address in hash + +# =cut + +# sub get_address : method { shift->{address} } + +# =head2 get_url + +# Overrides get_uri in l +# Returns URI in string + +# =cut + +sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } + +1; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/lD7H1AP4uL/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/blib/man1/.exists b/.build/lD7H1AP4uL/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/blib/man3/.exists b/.build/lD7H1AP4uL/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/blib/script/.exists b/.build/lD7H1AP4uL/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/cpanfile b/.build/lD7H1AP4uL/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/lD7H1AP4uL/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/dist.ini b/.build/lD7H1AP4uL/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/lD7H1AP4uL/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..820cf47 --- /dev/null +++ b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,214 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=HEAD + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss; + sub get_smartystreets { + return $ss if $ss; + $ss = WebService::Async::SmartyStreets->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + return $ss; + } + + $ss = get_smartystreets(); + + my $addr = $ss->verify_international(, geocode => 'true')->get; + return $addr->status; + +=head1 DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token +Takes in: Hash which consists of auth_id and token + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify_international + +Calls to different API depending on the country of the address. +Takes the following named parameters: + += over 4 + += item * C - country += item * C - address line 1 += item * C - address line 2 += item * C - name of organization (usually building names) += item * C - city += item * C - state += item * C - post code += item * C - true or false + += back + +Returns a L which resolves to a L instance. + +=cut + +# async sub verify_international { +# my ($self, %args) = @_; +# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); +# return await $self->verify($uri => %args); +# } + +=head2 verify_international + +See L. + +=cut + +async sub verify_usa { + my ($self, %args) = @_; + my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); + return await $self->verify($uri => %args); +} + + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to += item * C - address parametes in hash (See L) + += back + +Returns L object + +=cut + +async sub verify { + my ($self, %args) = @_; + + my $uri = URI->new(get_uri()); + + $uri->query_param($_ => $args{$_}) for keys %args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and return response +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to + += back + +Returns: decoded response in Hash + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + my $response = do { + my $res = await $self->ua->GET($uri); + decode_json_utf8($res->decoded_content); + }; + return $response; +} + +sub get_uri { + die "Subroutine not overriden in the child's module"; +} + +# sub get_address { +# die "Subroutine not overriden in the child's module"; +# } + +1; + diff --git a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..081ad4c --- /dev/null +++ b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,134 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +sub address_parts { + my ($self) = @_; + @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } +} + +=head2 + +Various subroutine that parses and returns the field from the caller + +=cut + +sub input_id { shift->{input_id} } +sub organization { shift->{organization} } +sub latitude { shift->{metadata}{latitude} } +sub longitude { shift->{metadata}{longitude} } +sub geocode_precision { shift->{metadata}{geocode_precision} } +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } +sub address_format { shift->{metadata}{address_format} } + +sub status { lc shift->{analysis}{verification_status} // ''} +sub address_precision { lc shift->{analysis}{address_precision} // ''} +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) +Takes in: String of verification status +Return : 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) +Instantly returns 0 if the status is lower than 'partial' +Takes in: String of accuracy +Return : 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..2c44322 --- /dev/null +++ b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,58 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + + +# =head2 _init + +# Overrides _init from IO::Async::Notifier +# Takes in the following parameters (in hash): + +# = over 4 + +# = item * C - country +# = item * C - address line 1 +# = item * C - address line 2 +# = item * C - name of organization (usually building names) +# = item * C - city +# = item * C - state +# = item * C - post code +# = item * C - true or false + +# = back + +# Returns a L instance. + +# =cut + +# sub _init { +# my ($self, $paramref) = @_; +# $self->SUPER::_init; + +# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { +# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; +# } +# } + +# =head2 get_address + +# Overrides get_address in L +# Returns address in hash + +# =cut + +# sub get_address : method { shift->{address} } + +# =head2 get_url + +# Overrides get_uri in l +# Returns URI in string + +# =cut + +sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } + +1; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/pm_to_blib b/.build/lD7H1AP4uL/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/lD7H1AP4uL/t/00-check-deps.t b/.build/lD7H1AP4uL/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/lD7H1AP4uL/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/lD7H1AP4uL/t/00-compile.t b/.build/lD7H1AP4uL/t/00-compile.t new file mode 100644 index 0000000..6095756 --- /dev/null +++ b/.build/lD7H1AP4uL/t/00-compile.t @@ -0,0 +1,56 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 3 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/lD7H1AP4uL/t/00-report-prereqs.dd b/.build/lD7H1AP4uL/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/lD7H1AP4uL/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/lD7H1AP4uL/t/00-report-prereqs.t b/.build/lD7H1AP4uL/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/lD7H1AP4uL/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/lD7H1AP4uL/t/01_unit_test.t b/.build/lD7H1AP4uL/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/lD7H1AP4uL/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/t/02_smarty_test.t b/.build/lD7H1AP4uL/t/02_smarty_test.t new file mode 100644 index 0000000..b115b79 --- /dev/null +++ b/.build/lD7H1AP4uL/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify_international( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/lD7H1AP4uL/t/rc/.perlcriticrc b/.build/lD7H1AP4uL/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/lD7H1AP4uL/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/lD7H1AP4uL/t/rc/.perltidyrc b/.build/lD7H1AP4uL/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/lD7H1AP4uL/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/lD7H1AP4uL/xt/author/eol.t b/.build/lD7H1AP4uL/xt/author/eol.t new file mode 100644 index 0000000..4284e50 --- /dev/null +++ b/.build/lD7H1AP4uL/xt/author/eol.t @@ -0,0 +1,24 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/lD7H1AP4uL/xt/author/mojibake.t b/.build/lD7H1AP4uL/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/lD7H1AP4uL/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/lD7H1AP4uL/xt/author/pod-coverage.t b/.build/lD7H1AP4uL/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/lD7H1AP4uL/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/lD7H1AP4uL/xt/author/pod-syntax.t b/.build/lD7H1AP4uL/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/lD7H1AP4uL/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/lD7H1AP4uL/xt/author/synopsis.t b/.build/lD7H1AP4uL/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/lD7H1AP4uL/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/lD7H1AP4uL/xt/author/test-version.t b/.build/lD7H1AP4uL/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/lD7H1AP4uL/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/lD7H1AP4uL/xt/release/common_spelling.t b/.build/lD7H1AP4uL/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/lD7H1AP4uL/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/lD7H1AP4uL/xt/release/pod-linkcheck.t b/.build/lD7H1AP4uL/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/lD7H1AP4uL/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/lD7H1AP4uL/xt/release/unused-vars.t b/.build/lD7H1AP4uL/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/lD7H1AP4uL/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/.build/latest b/.build/latest deleted file mode 120000 index 6247eee..0000000 --- a/.build/latest +++ /dev/null @@ -1 +0,0 @@ -ZjbI6QoQzx \ No newline at end of file diff --git a/.build/mEAyItBKml/Changes b/.build/mEAyItBKml/Changes new file mode 100644 index 0000000..e860876 --- /dev/null +++ b/.build/mEAyItBKml/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-03-29 09:52:07+00:00 UTC + + Pre-release version, Released as an proof of concept. \ No newline at end of file diff --git a/.build/mEAyItBKml/INSTALL b/.build/mEAyItBKml/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/mEAyItBKml/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/mEAyItBKml/LICENSE b/.build/mEAyItBKml/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/mEAyItBKml/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/mEAyItBKml/MANIFEST b/.build/mEAyItBKml/MANIFEST new file mode 100644 index 0000000..77742b1 --- /dev/null +++ b/.build/mEAyItBKml/MANIFEST @@ -0,0 +1,32 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/mEAyItBKml/META.json b/.build/mEAyItBKml/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/mEAyItBKml/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/mEAyItBKml/META.yml b/.build/mEAyItBKml/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/mEAyItBKml/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/mEAyItBKml/MYMETA.json b/.build/mEAyItBKml/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/mEAyItBKml/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/mEAyItBKml/MYMETA.yml b/.build/mEAyItBKml/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/mEAyItBKml/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/mEAyItBKml/Makefile b/.build/mEAyItBKml/Makefile new file mode 100644 index 0000000..cb34402 --- /dev/null +++ b/.build/mEAyItBKml/Makefile @@ -0,0 +1,937 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/perl-WebService-Async-SmartyStreets/.build/mEAyItBKml/--force +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/mEAyItBKml/Makefile.PL b/.build/mEAyItBKml/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/mEAyItBKml/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/mEAyItBKml/README b/.build/mEAyItBKml/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/mEAyItBKml/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/mEAyItBKml/README.md b/.build/mEAyItBKml/README.md new file mode 100644 index 0000000..49083e3 --- /dev/null +++ b/.build/mEAyItBKml/README.md @@ -0,0 +1,235 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). +Takes in: String +Returns: 1 or 0 + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +Takes in: String +Returns: 1 or 0 + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->()->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Constructs a Net::Async::HTTP object. + +## verify_international + +Calls and passes the address data to SmartyStreets International API. +Takes in a hash. +Returns a WebService::Async::SmartyStreets::Address object. + +## verify_usa + +Calls and passes the address data to SmartyStreets USA API (USA address only). +Takes in a hash. +Returns a WebService::Async::SmartyStreets::Address object. + +## verify + +Prepares the data and calls get_decoded_data to obtain the response and parses it +to WebService::Async::SmartyStreets::Address object. +Takes in uri and a hash + +## get_decoded_data + +Gets the data by making the call to SmartyStreets API and decode the response. +Returns a Future Object. + +# AUTHOR + +Binary.com + diff --git a/.build/mEAyItBKml/blib/arch/.exists b/.build/mEAyItBKml/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/mEAyItBKml/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/blib/bin/.exists b/.build/mEAyItBKml/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/.exists b/.build/mEAyItBKml/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..820cf47 --- /dev/null +++ b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,214 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=HEAD + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss; + sub get_smartystreets { + return $ss if $ss; + $ss = WebService::Async::SmartyStreets->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + return $ss; + } + + $ss = get_smartystreets(); + + my $addr = $ss->verify_international(, geocode => 'true')->get; + return $addr->status; + +=head1 DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token +Takes in: Hash which consists of auth_id and token + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify_international + +Calls to different API depending on the country of the address. +Takes the following named parameters: + += over 4 + += item * C - country += item * C - address line 1 += item * C - address line 2 += item * C - name of organization (usually building names) += item * C - city += item * C - state += item * C - post code += item * C - true or false + += back + +Returns a L which resolves to a L instance. + +=cut + +# async sub verify_international { +# my ($self, %args) = @_; +# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); +# return await $self->verify($uri => %args); +# } + +=head2 verify_international + +See L. + +=cut + +async sub verify_usa { + my ($self, %args) = @_; + my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); + return await $self->verify($uri => %args); +} + + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to += item * C - address parametes in hash (See L) + += back + +Returns L object + +=cut + +async sub verify { + my ($self, %args) = @_; + + my $uri = URI->new(get_uri()); + + $uri->query_param($_ => $args{$_}) for keys %args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and return response +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to + += back + +Returns: decoded response in Hash + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + my $response = do { + my $res = await $self->ua->GET($uri); + decode_json_utf8($res->decoded_content); + }; + return $response; +} + +sub get_uri { + die "Subroutine not overriden in the child's module"; +} + +# sub get_address { +# die "Subroutine not overriden in the child's module"; +# } + +1; + diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..081ad4c --- /dev/null +++ b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,134 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +sub address_parts { + my ($self) = @_; + @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } +} + +=head2 + +Various subroutine that parses and returns the field from the caller + +=cut + +sub input_id { shift->{input_id} } +sub organization { shift->{organization} } +sub latitude { shift->{metadata}{latitude} } +sub longitude { shift->{metadata}{longitude} } +sub geocode_precision { shift->{metadata}{geocode_precision} } +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } +sub address_format { shift->{metadata}{address_format} } + +sub status { lc shift->{analysis}{verification_status} // ''} +sub address_precision { lc shift->{analysis}{address_precision} // ''} +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) +Takes in: String of verification status +Return : 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) +Instantly returns 0 if the status is lower than 'partial' +Takes in: String of accuracy +Return : 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..2c44322 --- /dev/null +++ b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,58 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + + +# =head2 _init + +# Overrides _init from IO::Async::Notifier +# Takes in the following parameters (in hash): + +# = over 4 + +# = item * C - country +# = item * C - address line 1 +# = item * C - address line 2 +# = item * C - name of organization (usually building names) +# = item * C - city +# = item * C - state +# = item * C - post code +# = item * C - true or false + +# = back + +# Returns a L instance. + +# =cut + +# sub _init { +# my ($self, $paramref) = @_; +# $self->SUPER::_init; + +# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { +# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; +# } +# } + +# =head2 get_address + +# Overrides get_address in L +# Returns address in hash + +# =cut + +# sub get_address : method { shift->{address} } + +# =head2 get_url + +# Overrides get_uri in l +# Returns URI in string + +# =cut + +sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } + +1; \ No newline at end of file diff --git a/.build/mEAyItBKml/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/mEAyItBKml/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/blib/man1/.exists b/.build/mEAyItBKml/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/blib/man3/.exists b/.build/mEAyItBKml/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/blib/script/.exists b/.build/mEAyItBKml/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/cpanfile b/.build/mEAyItBKml/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/mEAyItBKml/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/mEAyItBKml/dist.ini b/.build/mEAyItBKml/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/mEAyItBKml/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..820cf47 --- /dev/null +++ b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,214 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=HEAD + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss; + sub get_smartystreets { + return $ss if $ss; + $ss = WebService::Async::SmartyStreets->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + return $ss; + } + + $ss = get_smartystreets(); + + my $addr = $ss->verify_international(, geocode => 'true')->get; + return $addr->status; + +=head1 DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token +Takes in: Hash which consists of auth_id and token + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify_international + +Calls to different API depending on the country of the address. +Takes the following named parameters: + += over 4 + += item * C - country += item * C - address line 1 += item * C - address line 2 += item * C - name of organization (usually building names) += item * C - city += item * C - state += item * C - post code += item * C - true or false + += back + +Returns a L which resolves to a L instance. + +=cut + +# async sub verify_international { +# my ($self, %args) = @_; +# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); +# return await $self->verify($uri => %args); +# } + +=head2 verify_international + +See L. + +=cut + +async sub verify_usa { + my ($self, %args) = @_; + my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); + return await $self->verify($uri => %args); +} + + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to += item * C - address parametes in hash (See L) + += back + +Returns L object + +=cut + +async sub verify { + my ($self, %args) = @_; + + my $uri = URI->new(get_uri()); + + $uri->query_param($_ => $args{$_}) for keys %args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and return response +Takes the following named parameters: + += over 4 + += item * C - URI address that the process will make the call to + += back + +Returns: decoded response in Hash + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + my $response = do { + my $res = await $self->ua->GET($uri); + decode_json_utf8($res->decoded_content); + }; + return $response; +} + +sub get_uri { + die "Subroutine not overriden in the child's module"; +} + +# sub get_address { +# die "Subroutine not overriden in the child's module"; +# } + +1; + diff --git a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..081ad4c --- /dev/null +++ b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,134 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +sub address_parts { + my ($self) = @_; + @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } +} + +=head2 + +Various subroutine that parses and returns the field from the caller + +=cut + +sub input_id { shift->{input_id} } +sub organization { shift->{organization} } +sub latitude { shift->{metadata}{latitude} } +sub longitude { shift->{metadata}{longitude} } +sub geocode_precision { shift->{metadata}{geocode_precision} } +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } +sub address_format { shift->{metadata}{address_format} } + +sub status { lc shift->{analysis}{verification_status} // ''} +sub address_precision { lc shift->{analysis}{address_precision} // ''} +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) +Takes in: String of verification status +Return : 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) +Instantly returns 0 if the status is lower than 'partial' +Takes in: String of accuracy +Return : 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..2c44322 --- /dev/null +++ b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,58 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + + +# =head2 _init + +# Overrides _init from IO::Async::Notifier +# Takes in the following parameters (in hash): + +# = over 4 + +# = item * C - country +# = item * C - address line 1 +# = item * C - address line 2 +# = item * C - name of organization (usually building names) +# = item * C - city +# = item * C - state +# = item * C - post code +# = item * C - true or false + +# = back + +# Returns a L instance. + +# =cut + +# sub _init { +# my ($self, $paramref) = @_; +# $self->SUPER::_init; + +# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { +# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; +# } +# } + +# =head2 get_address + +# Overrides get_address in L +# Returns address in hash + +# =cut + +# sub get_address : method { shift->{address} } + +# =head2 get_url + +# Overrides get_uri in l +# Returns URI in string + +# =cut + +sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } + +1; \ No newline at end of file diff --git a/.build/mEAyItBKml/pm_to_blib b/.build/mEAyItBKml/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/mEAyItBKml/t/00-check-deps.t b/.build/mEAyItBKml/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/mEAyItBKml/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/mEAyItBKml/t/00-compile.t b/.build/mEAyItBKml/t/00-compile.t new file mode 100644 index 0000000..6095756 --- /dev/null +++ b/.build/mEAyItBKml/t/00-compile.t @@ -0,0 +1,56 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 3 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/mEAyItBKml/t/00-report-prereqs.dd b/.build/mEAyItBKml/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/mEAyItBKml/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/mEAyItBKml/t/00-report-prereqs.t b/.build/mEAyItBKml/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/mEAyItBKml/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/mEAyItBKml/t/01_unit_test.t b/.build/mEAyItBKml/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/mEAyItBKml/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/mEAyItBKml/t/02_smarty_test.t b/.build/mEAyItBKml/t/02_smarty_test.t new file mode 100644 index 0000000..b115b79 --- /dev/null +++ b/.build/mEAyItBKml/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify_international( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/mEAyItBKml/t/rc/.perlcriticrc b/.build/mEAyItBKml/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/mEAyItBKml/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/mEAyItBKml/t/rc/.perltidyrc b/.build/mEAyItBKml/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/mEAyItBKml/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/mEAyItBKml/xt/author/eol.t b/.build/mEAyItBKml/xt/author/eol.t new file mode 100644 index 0000000..4284e50 --- /dev/null +++ b/.build/mEAyItBKml/xt/author/eol.t @@ -0,0 +1,24 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/mEAyItBKml/xt/author/mojibake.t b/.build/mEAyItBKml/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/mEAyItBKml/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/mEAyItBKml/xt/author/pod-coverage.t b/.build/mEAyItBKml/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/mEAyItBKml/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/mEAyItBKml/xt/author/pod-syntax.t b/.build/mEAyItBKml/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/mEAyItBKml/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/mEAyItBKml/xt/author/synopsis.t b/.build/mEAyItBKml/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/mEAyItBKml/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/mEAyItBKml/xt/author/test-version.t b/.build/mEAyItBKml/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/mEAyItBKml/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/mEAyItBKml/xt/release/common_spelling.t b/.build/mEAyItBKml/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/mEAyItBKml/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/mEAyItBKml/xt/release/pod-linkcheck.t b/.build/mEAyItBKml/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/mEAyItBKml/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/mEAyItBKml/xt/release/unused-vars.t b/.build/mEAyItBKml/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/mEAyItBKml/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 820cf47..5a15116 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -98,68 +98,41 @@ sub ua { } } -=head2 verify_international - -Calls to different API depending on the country of the address. -Takes the following named parameters: - -= over 4 - -= item * C - country -= item * C - address line 1 -= item * C - address line 2 -= item * C - name of organization (usually building names) -= item * C - city -= item * C - state -= item * C - post code -= item * C - true or false - -= back - -Returns a L which resolves to a L instance. - -=cut - -# async sub verify_international { -# my ($self, %args) = @_; -# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); -# return await $self->verify($uri => %args); -# } - -=head2 verify_international - -See L. +=head2 verify -=cut +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. -async sub verify_usa { - my ($self, %args) = @_; - my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); - return await $self->verify($uri => %args); -} +Takes the following named parameters: +=over 4 -=head2 verify +=item * C - URI address (in string) +=item * C - address parameters in hash (See L) -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. +=back -Takes the following named parameters: +args consists of the following parameters: -= over 4 +=over 4 -= item * C - URI address that the process will make the call to -= item * C - address parametes in hash (See L) +=item * C - country +=item * C - address line 1 +=item * C - address line 2 +=item * C - name of organization (usually building names) +=item * C - city +=item * C - state +=item * C - post code +=item * C - true or false -= back +=back Returns L object =cut async sub verify { - my ($self, %args) = @_; - - my $uri = URI->new(get_uri()); + my ($self, $uri_string, %args) = @_; + my $uri = URI->new($uri_string); $uri->query_param($_ => $args{$_}) for keys %args; $uri->query_param( @@ -182,11 +155,11 @@ async sub verify { Calls the SmartyStreets API then decode and return response Takes the following named parameters: -= over 4 +=over 4 -= item * C - URI address that the process will make the call to +=item * C - URI address that the process will make the call to -= back +=back Returns: decoded response in Hash @@ -202,13 +175,15 @@ async sub get_decoded_data { return $response; } +=head2 get_uri + +Dummy sub designed to be overriden in L and L + +=cut + sub get_uri { die "Subroutine not overriden in the child's module"; } -# sub get_address { -# die "Subroutine not overriden in the child's module"; -# } - 1; diff --git a/lib/WebService/Async/SmartyStreets/International.pm b/lib/WebService/Async/SmartyStreets/International.pm index a7c771a..043dde1 100644 --- a/lib/WebService/Async/SmartyStreets/International.pm +++ b/lib/WebService/Async/SmartyStreets/International.pm @@ -5,54 +5,28 @@ use warnings; use parent 'WebService::Async::SmartyStreets'; +=head2 get_uri -# =head2 _init +Overrides get_uri in l +Returns URI in string -# Overrides _init from IO::Async::Notifier -# Takes in the following parameters (in hash): +=cut -# = over 4 - -# = item * C - country -# = item * C - address line 1 -# = item * C - address line 2 -# = item * C - name of organization (usually building names) -# = item * C - city -# = item * C - state -# = item * C - post code -# = item * C - true or false +sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } -# = back +=head2 verify -# Returns a L instance. +Overrides verify in l +Gets the input arguments and pass it to the parents -# =cut +=cut -# sub _init { -# my ($self, $paramref) = @_; -# $self->SUPER::_init; +sub verify { + my $self = shift; + my $uri = get_uri(); + my %args = @_; -# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { -# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; -# } -# } - -# =head2 get_address - -# Overrides get_address in L -# Returns address in hash - -# =cut - -# sub get_address : method { shift->{address} } - -# =head2 get_url - -# Overrides get_uri in l -# Returns URI in string - -# =cut - -sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } + $self->SUPER::verify($uri, %args); +} 1; \ No newline at end of file diff --git a/lib/WebService/Async/SmartyStreets/USA.pm b/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..ef4f46e --- /dev/null +++ b/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,32 @@ +package WebService::Async::SmartyStreets::USA; + +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=head2 get_uri + +Overrides get_uri in l +Returns URI in string + +=cut + +sub get_uri { return 'https://us-street.api.smartystreets.com/street-address'; } + +=head2 verify + +Overrides verify in l +Gets the input arguments and pass it to the parents + +=cut + +sub verify { + my $self = shift; + my $uri = get_uri(); + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/t/02_smarty_test.t b/t/02_smarty_test.t index b115b79..d487ea7 100644 --- a/t/02_smarty_test.t +++ b/t/02_smarty_test.t @@ -3,7 +3,7 @@ use warnings; use Future; use Test::More; use Test::MockModule; -use WebService::Async::SmartyStreets; +use WebService::Async::SmartyStreets::International; use JSON::MaybeXS qw( encode_json ); use Future::AsyncAwait; @@ -43,13 +43,13 @@ $mock_ss->mock( subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets->new( + my $ss = WebService::Async::SmartyStreets::International->new( # this function is mocked, so the values doesnt matter auth_id => '...', token => '...' ); - my $addr = $ss->verify_international( + my $addr = $ss->verify( address1 => 'Jalan 1223 Jamse Bndo 012', address2 => '03/03', locality => 'Sukabumi', From 284dfa9f2f992ecd26b4f5a72a635fb6b92e7f8d Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 29 Mar 2019 10:48:05 +0000 Subject: [PATCH 23/55] removed do --- lib/WebService/Async/SmartyStreets.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 5a15116..5936627 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -168,10 +168,10 @@ Returns: decoded response in Hash async sub get_decoded_data { my $self = shift; my $uri = shift; - my $response = do { - my $res = await $self->ua->GET($uri); - decode_json_utf8($res->decoded_content); - }; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + return $response; } From 97985d1494847a58787ef3ef227fc2221c905d52 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 1 Apr 2019 01:47:33 +0000 Subject: [PATCH 24/55] moved sypsnosis inline --- lib/WebService/Async/SmartyStreets.pm | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 5936627..6cc30f6 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -13,20 +13,17 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th =head1 SYNOPSIS my $ss; - sub get_smartystreets { - return $ss if $ss; - $ss = WebService::Async::SmartyStreets->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - return $ss; - } - + + $ss = WebService::Async::SmartyStreets->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + $ss = get_smartystreets(); my $addr = $ss->verify_international(, geocode => 'true')->get; - return $addr->status; + print($addr->status); =head1 DESCRIPTION @@ -171,7 +168,8 @@ async sub get_decoded_data { my $res = await $self->ua->GET($uri); my $response = decode_json_utf8($res->decoded_content); - +use Data::Dumper; +warn Dumper($response); return $response; } From f95bc45bfbeb220fe769861409a06227422cca2e Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 1 Apr 2019 02:37:36 +0000 Subject: [PATCH 25/55] added comments --- lib/WebService/Async/SmartyStreets.pm | 2 +- lib/WebService/Async/SmartyStreets/Address.pm | 92 +++++++++++++++++-- 2 files changed, 86 insertions(+), 8 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 6cc30f6..786fa18 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -158,7 +158,7 @@ Takes the following named parameters: =back -Returns: decoded response in Hash +Returns an arrayref of hashrefs which the keys corresponds to L =cut diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index 17120b3..217a40a 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -61,22 +61,88 @@ sub address_parts { @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } } -=head2 +=head2 input_id -Various subroutine that parses and returns the field from the caller +Returns the value of the input_id + +Example usage: + + $obj->input_id; =cut sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + sub address_format { shift->{metadata}{address_format} } +=head2 status + +Returns the value of the status + +=cut + sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} # Maps each verification response into a score @@ -90,8 +156,14 @@ my %status_level = ( =head2 status_at_least Checks if the returned response at least hits a certain level (in terms of score) -Takes in: String of verification status -Return : 1 or 0 + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 =cut @@ -116,9 +188,15 @@ my %accuracy_level = ( accuracy_at_least Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) -Instantly returns 0 if the status is lower than 'partial' -Takes in: String of accuracy -Return : 1 or 0 + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 =cut From c92679a47b4199d66486f0bb6f33e85410ce4ae0 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 1 Apr 2019 03:05:39 +0000 Subject: [PATCH 26/55] removed dumper --- lib/WebService/Async/SmartyStreets.pm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 786fa18..2c40dd2 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -168,8 +168,7 @@ async sub get_decoded_data { my $res = await $self->ua->GET($uri); my $response = decode_json_utf8($res->decoded_content); -use Data::Dumper; -warn Dumper($response); + return $response; } From cf5a793461342d74df5cf314fedf7c930a7757d7 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 1 Apr 2019 03:19:52 +0000 Subject: [PATCH 27/55] added comments, removed builds --- .build/lD7H1AP4uL/Changes | 5 - .build/lD7H1AP4uL/INSTALL | 43 - .build/lD7H1AP4uL/LICENSE | 379 ------- .build/lD7H1AP4uL/MANIFEST | 32 - .build/lD7H1AP4uL/META.json | 82 -- .build/lD7H1AP4uL/META.yml | 37 - .build/lD7H1AP4uL/MYMETA.json | 82 -- .build/lD7H1AP4uL/MYMETA.yml | 37 - .build/lD7H1AP4uL/Makefile | 937 ------------------ .build/lD7H1AP4uL/Makefile.PL | 73 -- .build/lD7H1AP4uL/README | 12 - .build/lD7H1AP4uL/README.md | 235 ----- .build/lD7H1AP4uL/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/lD7H1AP4uL/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 214 ---- .../WebService/Async/SmartyStreets/Address.pm | 134 --- .../Async/SmartyStreets/International.pm | 58 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/lD7H1AP4uL/blib/man1/.exists | 0 .build/lD7H1AP4uL/blib/man3/.exists | 0 .build/lD7H1AP4uL/blib/script/.exists | 0 .build/lD7H1AP4uL/cpanfile | 17 - .build/lD7H1AP4uL/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 214 ---- .../WebService/Async/SmartyStreets/Address.pm | 134 --- .../Async/SmartyStreets/International.pm | 58 -- .build/lD7H1AP4uL/pm_to_blib | 0 .build/lD7H1AP4uL/t/00-check-deps.t | 17 - .build/lD7H1AP4uL/t/00-compile.t | 56 -- .build/lD7H1AP4uL/t/00-report-prereqs.dd | 53 - .build/lD7H1AP4uL/t/00-report-prereqs.t | 183 ---- .build/lD7H1AP4uL/t/01_unit_test.t | 42 - .build/lD7H1AP4uL/t/02_smarty_test.t | 73 -- .build/lD7H1AP4uL/t/rc/.perlcriticrc | 23 - .build/lD7H1AP4uL/t/rc/.perltidyrc | 63 -- .build/lD7H1AP4uL/xt/author/eol.t | 24 - .build/lD7H1AP4uL/xt/author/mojibake.t | 9 - .build/lD7H1AP4uL/xt/author/pod-coverage.t | 7 - .build/lD7H1AP4uL/xt/author/pod-syntax.t | 7 - .build/lD7H1AP4uL/xt/author/synopsis.t | 5 - .build/lD7H1AP4uL/xt/author/test-version.t | 23 - .../lD7H1AP4uL/xt/release/common_spelling.t | 11 - .build/lD7H1AP4uL/xt/release/pod-linkcheck.t | 20 - .build/lD7H1AP4uL/xt/release/unused-vars.t | 14 - .build/mEAyItBKml/Changes | 5 - .build/mEAyItBKml/INSTALL | 43 - .build/mEAyItBKml/LICENSE | 379 ------- .build/mEAyItBKml/MANIFEST | 32 - .build/mEAyItBKml/META.json | 82 -- .build/mEAyItBKml/META.yml | 37 - .build/mEAyItBKml/MYMETA.json | 82 -- .build/mEAyItBKml/MYMETA.yml | 37 - .build/mEAyItBKml/Makefile | 937 ------------------ .build/mEAyItBKml/Makefile.PL | 73 -- .build/mEAyItBKml/README | 12 - .build/mEAyItBKml/README.md | 235 ----- .build/mEAyItBKml/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/mEAyItBKml/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 214 ---- .../WebService/Async/SmartyStreets/Address.pm | 134 --- .../Async/SmartyStreets/International.pm | 58 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/mEAyItBKml/blib/man1/.exists | 0 .build/mEAyItBKml/blib/man3/.exists | 0 .build/mEAyItBKml/blib/script/.exists | 0 .build/mEAyItBKml/cpanfile | 17 - .build/mEAyItBKml/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 214 ---- .../WebService/Async/SmartyStreets/Address.pm | 134 --- .../Async/SmartyStreets/International.pm | 58 -- .build/mEAyItBKml/pm_to_blib | 0 .build/mEAyItBKml/t/00-check-deps.t | 17 - .build/mEAyItBKml/t/00-compile.t | 56 -- .build/mEAyItBKml/t/00-report-prereqs.dd | 53 - .build/mEAyItBKml/t/00-report-prereqs.t | 183 ---- .build/mEAyItBKml/t/01_unit_test.t | 42 - .build/mEAyItBKml/t/02_smarty_test.t | 73 -- .build/mEAyItBKml/t/rc/.perlcriticrc | 23 - .build/mEAyItBKml/t/rc/.perltidyrc | 63 -- .build/mEAyItBKml/xt/author/eol.t | 24 - .build/mEAyItBKml/xt/author/mojibake.t | 9 - .build/mEAyItBKml/xt/author/pod-coverage.t | 7 - .build/mEAyItBKml/xt/author/pod-syntax.t | 7 - .build/mEAyItBKml/xt/author/synopsis.t | 5 - .build/mEAyItBKml/xt/author/test-version.t | 23 - .../mEAyItBKml/xt/release/common_spelling.t | 11 - .build/mEAyItBKml/xt/release/pod-linkcheck.t | 20 - .build/mEAyItBKml/xt/release/unused-vars.t | 14 - lib/WebService/Async/SmartyStreets.pm | 3 + 93 files changed, 3 insertions(+), 6960 deletions(-) delete mode 100644 .build/lD7H1AP4uL/Changes delete mode 100644 .build/lD7H1AP4uL/INSTALL delete mode 100644 .build/lD7H1AP4uL/LICENSE delete mode 100644 .build/lD7H1AP4uL/MANIFEST delete mode 100644 .build/lD7H1AP4uL/META.json delete mode 100644 .build/lD7H1AP4uL/META.yml delete mode 100644 .build/lD7H1AP4uL/MYMETA.json delete mode 100644 .build/lD7H1AP4uL/MYMETA.yml delete mode 100644 .build/lD7H1AP4uL/Makefile delete mode 100644 .build/lD7H1AP4uL/Makefile.PL delete mode 100644 .build/lD7H1AP4uL/README delete mode 100644 .build/lD7H1AP4uL/README.md delete mode 100644 .build/lD7H1AP4uL/blib/arch/.exists delete mode 100644 .build/lD7H1AP4uL/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/lD7H1AP4uL/blib/bin/.exists delete mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/.exists delete mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/lD7H1AP4uL/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/lD7H1AP4uL/blib/man1/.exists delete mode 100644 .build/lD7H1AP4uL/blib/man3/.exists delete mode 100644 .build/lD7H1AP4uL/blib/script/.exists delete mode 100644 .build/lD7H1AP4uL/cpanfile delete mode 100644 .build/lD7H1AP4uL/dist.ini delete mode 100644 .build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/lD7H1AP4uL/pm_to_blib delete mode 100644 .build/lD7H1AP4uL/t/00-check-deps.t delete mode 100644 .build/lD7H1AP4uL/t/00-compile.t delete mode 100644 .build/lD7H1AP4uL/t/00-report-prereqs.dd delete mode 100644 .build/lD7H1AP4uL/t/00-report-prereqs.t delete mode 100644 .build/lD7H1AP4uL/t/01_unit_test.t delete mode 100644 .build/lD7H1AP4uL/t/02_smarty_test.t delete mode 100644 .build/lD7H1AP4uL/t/rc/.perlcriticrc delete mode 100644 .build/lD7H1AP4uL/t/rc/.perltidyrc delete mode 100644 .build/lD7H1AP4uL/xt/author/eol.t delete mode 100644 .build/lD7H1AP4uL/xt/author/mojibake.t delete mode 100644 .build/lD7H1AP4uL/xt/author/pod-coverage.t delete mode 100644 .build/lD7H1AP4uL/xt/author/pod-syntax.t delete mode 100644 .build/lD7H1AP4uL/xt/author/synopsis.t delete mode 100644 .build/lD7H1AP4uL/xt/author/test-version.t delete mode 100644 .build/lD7H1AP4uL/xt/release/common_spelling.t delete mode 100644 .build/lD7H1AP4uL/xt/release/pod-linkcheck.t delete mode 100644 .build/lD7H1AP4uL/xt/release/unused-vars.t delete mode 100644 .build/mEAyItBKml/Changes delete mode 100644 .build/mEAyItBKml/INSTALL delete mode 100644 .build/mEAyItBKml/LICENSE delete mode 100644 .build/mEAyItBKml/MANIFEST delete mode 100644 .build/mEAyItBKml/META.json delete mode 100644 .build/mEAyItBKml/META.yml delete mode 100644 .build/mEAyItBKml/MYMETA.json delete mode 100644 .build/mEAyItBKml/MYMETA.yml delete mode 100644 .build/mEAyItBKml/Makefile delete mode 100644 .build/mEAyItBKml/Makefile.PL delete mode 100644 .build/mEAyItBKml/README delete mode 100644 .build/mEAyItBKml/README.md delete mode 100644 .build/mEAyItBKml/blib/arch/.exists delete mode 100644 .build/mEAyItBKml/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/mEAyItBKml/blib/bin/.exists delete mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/.exists delete mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/mEAyItBKml/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/mEAyItBKml/blib/man1/.exists delete mode 100644 .build/mEAyItBKml/blib/man3/.exists delete mode 100644 .build/mEAyItBKml/blib/script/.exists delete mode 100644 .build/mEAyItBKml/cpanfile delete mode 100644 .build/mEAyItBKml/dist.ini delete mode 100644 .build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/mEAyItBKml/pm_to_blib delete mode 100644 .build/mEAyItBKml/t/00-check-deps.t delete mode 100644 .build/mEAyItBKml/t/00-compile.t delete mode 100644 .build/mEAyItBKml/t/00-report-prereqs.dd delete mode 100644 .build/mEAyItBKml/t/00-report-prereqs.t delete mode 100644 .build/mEAyItBKml/t/01_unit_test.t delete mode 100644 .build/mEAyItBKml/t/02_smarty_test.t delete mode 100644 .build/mEAyItBKml/t/rc/.perlcriticrc delete mode 100644 .build/mEAyItBKml/t/rc/.perltidyrc delete mode 100644 .build/mEAyItBKml/xt/author/eol.t delete mode 100644 .build/mEAyItBKml/xt/author/mojibake.t delete mode 100644 .build/mEAyItBKml/xt/author/pod-coverage.t delete mode 100644 .build/mEAyItBKml/xt/author/pod-syntax.t delete mode 100644 .build/mEAyItBKml/xt/author/synopsis.t delete mode 100644 .build/mEAyItBKml/xt/author/test-version.t delete mode 100644 .build/mEAyItBKml/xt/release/common_spelling.t delete mode 100644 .build/mEAyItBKml/xt/release/pod-linkcheck.t delete mode 100644 .build/mEAyItBKml/xt/release/unused-vars.t diff --git a/.build/lD7H1AP4uL/Changes b/.build/lD7H1AP4uL/Changes deleted file mode 100644 index 39c8c44..0000000 --- a/.build/lD7H1AP4uL/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-03-29 09:51:35+00:00 UTC - - Pre-release version, Released as an proof of concept. \ No newline at end of file diff --git a/.build/lD7H1AP4uL/INSTALL b/.build/lD7H1AP4uL/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/lD7H1AP4uL/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/lD7H1AP4uL/LICENSE b/.build/lD7H1AP4uL/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/lD7H1AP4uL/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/lD7H1AP4uL/MANIFEST b/.build/lD7H1AP4uL/MANIFEST deleted file mode 100644 index 77742b1..0000000 --- a/.build/lD7H1AP4uL/MANIFEST +++ /dev/null @@ -1,32 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/lD7H1AP4uL/META.json b/.build/lD7H1AP4uL/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/lD7H1AP4uL/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/lD7H1AP4uL/META.yml b/.build/lD7H1AP4uL/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/lD7H1AP4uL/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/lD7H1AP4uL/MYMETA.json b/.build/lD7H1AP4uL/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/lD7H1AP4uL/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/lD7H1AP4uL/MYMETA.yml b/.build/lD7H1AP4uL/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/lD7H1AP4uL/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/lD7H1AP4uL/Makefile b/.build/lD7H1AP4uL/Makefile deleted file mode 100644 index 595bd73..0000000 --- a/.build/lD7H1AP4uL/Makefile +++ /dev/null @@ -1,937 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/lD7H1AP4uL/Makefile.PL b/.build/lD7H1AP4uL/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/lD7H1AP4uL/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/lD7H1AP4uL/README b/.build/lD7H1AP4uL/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/lD7H1AP4uL/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/lD7H1AP4uL/README.md b/.build/lD7H1AP4uL/README.md deleted file mode 100644 index 49083e3..0000000 --- a/.build/lD7H1AP4uL/README.md +++ /dev/null @@ -1,235 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). -Takes in: String -Returns: 1 or 0 - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -Takes in: String -Returns: 1 or 0 - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->()->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Constructs a Net::Async::HTTP object. - -## verify_international - -Calls and passes the address data to SmartyStreets International API. -Takes in a hash. -Returns a WebService::Async::SmartyStreets::Address object. - -## verify_usa - -Calls and passes the address data to SmartyStreets USA API (USA address only). -Takes in a hash. -Returns a WebService::Async::SmartyStreets::Address object. - -## verify - -Prepares the data and calls get_decoded_data to obtain the response and parses it -to WebService::Async::SmartyStreets::Address object. -Takes in uri and a hash - -## get_decoded_data - -Gets the data by making the call to SmartyStreets API and decode the response. -Returns a Future Object. - -# AUTHOR - -Binary.com - diff --git a/.build/lD7H1AP4uL/blib/arch/.exists b/.build/lD7H1AP4uL/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/lD7H1AP4uL/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/blib/bin/.exists b/.build/lD7H1AP4uL/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/.exists b/.build/lD7H1AP4uL/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 820cf47..0000000 --- a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,214 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=HEAD - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss; - sub get_smartystreets { - return $ss if $ss; - $ss = WebService::Async::SmartyStreets->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - return $ss; - } - - $ss = get_smartystreets(); - - my $addr = $ss->verify_international(, geocode => 'true')->get; - return $addr->status; - -=head1 DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token -Takes in: Hash which consists of auth_id and token - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify_international - -Calls to different API depending on the country of the address. -Takes the following named parameters: - -= over 4 - -= item * C - country -= item * C - address line 1 -= item * C - address line 2 -= item * C - name of organization (usually building names) -= item * C - city -= item * C - state -= item * C - post code -= item * C - true or false - -= back - -Returns a L which resolves to a L instance. - -=cut - -# async sub verify_international { -# my ($self, %args) = @_; -# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); -# return await $self->verify($uri => %args); -# } - -=head2 verify_international - -See L. - -=cut - -async sub verify_usa { - my ($self, %args) = @_; - my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); - return await $self->verify($uri => %args); -} - - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to -= item * C - address parametes in hash (See L) - -= back - -Returns L object - -=cut - -async sub verify { - my ($self, %args) = @_; - - my $uri = URI->new(get_uri()); - - $uri->query_param($_ => $args{$_}) for keys %args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and return response -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to - -= back - -Returns: decoded response in Hash - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - my $response = do { - my $res = await $self->ua->GET($uri); - decode_json_utf8($res->decoded_content); - }; - return $response; -} - -sub get_uri { - die "Subroutine not overriden in the child's module"; -} - -# sub get_address { -# die "Subroutine not overriden in the child's module"; -# } - -1; - diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 081ad4c..0000000 --- a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,134 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -sub address_parts { - my ($self) = @_; - @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } -} - -=head2 - -Various subroutine that parses and returns the field from the caller - -=cut - -sub input_id { shift->{input_id} } -sub organization { shift->{organization} } -sub latitude { shift->{metadata}{latitude} } -sub longitude { shift->{metadata}{longitude} } -sub geocode_precision { shift->{metadata}{geocode_precision} } -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } -sub address_format { shift->{metadata}{address_format} } - -sub status { lc shift->{analysis}{verification_status} // ''} -sub address_precision { lc shift->{analysis}{address_precision} // ''} -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) -Takes in: String of verification status -Return : 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) -Instantly returns 0 if the status is lower than 'partial' -Takes in: String of accuracy -Return : 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 2c44322..0000000 --- a/.build/lD7H1AP4uL/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,58 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - - -# =head2 _init - -# Overrides _init from IO::Async::Notifier -# Takes in the following parameters (in hash): - -# = over 4 - -# = item * C - country -# = item * C - address line 1 -# = item * C - address line 2 -# = item * C - name of organization (usually building names) -# = item * C - city -# = item * C - state -# = item * C - post code -# = item * C - true or false - -# = back - -# Returns a L instance. - -# =cut - -# sub _init { -# my ($self, $paramref) = @_; -# $self->SUPER::_init; - -# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { -# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; -# } -# } - -# =head2 get_address - -# Overrides get_address in L -# Returns address in hash - -# =cut - -# sub get_address : method { shift->{address} } - -# =head2 get_url - -# Overrides get_uri in l -# Returns URI in string - -# =cut - -sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } - -1; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/lD7H1AP4uL/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/blib/man1/.exists b/.build/lD7H1AP4uL/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/blib/man3/.exists b/.build/lD7H1AP4uL/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/blib/script/.exists b/.build/lD7H1AP4uL/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/cpanfile b/.build/lD7H1AP4uL/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/lD7H1AP4uL/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/dist.ini b/.build/lD7H1AP4uL/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/lD7H1AP4uL/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 820cf47..0000000 --- a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,214 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=HEAD - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss; - sub get_smartystreets { - return $ss if $ss; - $ss = WebService::Async::SmartyStreets->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - return $ss; - } - - $ss = get_smartystreets(); - - my $addr = $ss->verify_international(, geocode => 'true')->get; - return $addr->status; - -=head1 DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token -Takes in: Hash which consists of auth_id and token - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify_international - -Calls to different API depending on the country of the address. -Takes the following named parameters: - -= over 4 - -= item * C - country -= item * C - address line 1 -= item * C - address line 2 -= item * C - name of organization (usually building names) -= item * C - city -= item * C - state -= item * C - post code -= item * C - true or false - -= back - -Returns a L which resolves to a L instance. - -=cut - -# async sub verify_international { -# my ($self, %args) = @_; -# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); -# return await $self->verify($uri => %args); -# } - -=head2 verify_international - -See L. - -=cut - -async sub verify_usa { - my ($self, %args) = @_; - my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); - return await $self->verify($uri => %args); -} - - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to -= item * C - address parametes in hash (See L) - -= back - -Returns L object - -=cut - -async sub verify { - my ($self, %args) = @_; - - my $uri = URI->new(get_uri()); - - $uri->query_param($_ => $args{$_}) for keys %args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and return response -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to - -= back - -Returns: decoded response in Hash - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - my $response = do { - my $res = await $self->ua->GET($uri); - decode_json_utf8($res->decoded_content); - }; - return $response; -} - -sub get_uri { - die "Subroutine not overriden in the child's module"; -} - -# sub get_address { -# die "Subroutine not overriden in the child's module"; -# } - -1; - diff --git a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 081ad4c..0000000 --- a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,134 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -sub address_parts { - my ($self) = @_; - @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } -} - -=head2 - -Various subroutine that parses and returns the field from the caller - -=cut - -sub input_id { shift->{input_id} } -sub organization { shift->{organization} } -sub latitude { shift->{metadata}{latitude} } -sub longitude { shift->{metadata}{longitude} } -sub geocode_precision { shift->{metadata}{geocode_precision} } -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } -sub address_format { shift->{metadata}{address_format} } - -sub status { lc shift->{analysis}{verification_status} // ''} -sub address_precision { lc shift->{analysis}{address_precision} // ''} -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) -Takes in: String of verification status -Return : 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) -Instantly returns 0 if the status is lower than 'partial' -Takes in: String of accuracy -Return : 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm b/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 2c44322..0000000 --- a/.build/lD7H1AP4uL/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,58 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - - -# =head2 _init - -# Overrides _init from IO::Async::Notifier -# Takes in the following parameters (in hash): - -# = over 4 - -# = item * C - country -# = item * C - address line 1 -# = item * C - address line 2 -# = item * C - name of organization (usually building names) -# = item * C - city -# = item * C - state -# = item * C - post code -# = item * C - true or false - -# = back - -# Returns a L instance. - -# =cut - -# sub _init { -# my ($self, $paramref) = @_; -# $self->SUPER::_init; - -# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { -# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; -# } -# } - -# =head2 get_address - -# Overrides get_address in L -# Returns address in hash - -# =cut - -# sub get_address : method { shift->{address} } - -# =head2 get_url - -# Overrides get_uri in l -# Returns URI in string - -# =cut - -sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } - -1; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/pm_to_blib b/.build/lD7H1AP4uL/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lD7H1AP4uL/t/00-check-deps.t b/.build/lD7H1AP4uL/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/lD7H1AP4uL/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/lD7H1AP4uL/t/00-compile.t b/.build/lD7H1AP4uL/t/00-compile.t deleted file mode 100644 index 6095756..0000000 --- a/.build/lD7H1AP4uL/t/00-compile.t +++ /dev/null @@ -1,56 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 3 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/lD7H1AP4uL/t/00-report-prereqs.dd b/.build/lD7H1AP4uL/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/lD7H1AP4uL/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/lD7H1AP4uL/t/00-report-prereqs.t b/.build/lD7H1AP4uL/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/lD7H1AP4uL/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/lD7H1AP4uL/t/01_unit_test.t b/.build/lD7H1AP4uL/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/lD7H1AP4uL/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/lD7H1AP4uL/t/02_smarty_test.t b/.build/lD7H1AP4uL/t/02_smarty_test.t deleted file mode 100644 index b115b79..0000000 --- a/.build/lD7H1AP4uL/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify_international( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/lD7H1AP4uL/t/rc/.perlcriticrc b/.build/lD7H1AP4uL/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/lD7H1AP4uL/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/lD7H1AP4uL/t/rc/.perltidyrc b/.build/lD7H1AP4uL/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/lD7H1AP4uL/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/lD7H1AP4uL/xt/author/eol.t b/.build/lD7H1AP4uL/xt/author/eol.t deleted file mode 100644 index 4284e50..0000000 --- a/.build/lD7H1AP4uL/xt/author/eol.t +++ /dev/null @@ -1,24 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/lD7H1AP4uL/xt/author/mojibake.t b/.build/lD7H1AP4uL/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/lD7H1AP4uL/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/lD7H1AP4uL/xt/author/pod-coverage.t b/.build/lD7H1AP4uL/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/lD7H1AP4uL/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/lD7H1AP4uL/xt/author/pod-syntax.t b/.build/lD7H1AP4uL/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/lD7H1AP4uL/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/lD7H1AP4uL/xt/author/synopsis.t b/.build/lD7H1AP4uL/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/lD7H1AP4uL/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/lD7H1AP4uL/xt/author/test-version.t b/.build/lD7H1AP4uL/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/lD7H1AP4uL/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/lD7H1AP4uL/xt/release/common_spelling.t b/.build/lD7H1AP4uL/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/lD7H1AP4uL/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/lD7H1AP4uL/xt/release/pod-linkcheck.t b/.build/lD7H1AP4uL/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/lD7H1AP4uL/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/lD7H1AP4uL/xt/release/unused-vars.t b/.build/lD7H1AP4uL/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/lD7H1AP4uL/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/.build/mEAyItBKml/Changes b/.build/mEAyItBKml/Changes deleted file mode 100644 index e860876..0000000 --- a/.build/mEAyItBKml/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-03-29 09:52:07+00:00 UTC - - Pre-release version, Released as an proof of concept. \ No newline at end of file diff --git a/.build/mEAyItBKml/INSTALL b/.build/mEAyItBKml/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/mEAyItBKml/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/mEAyItBKml/LICENSE b/.build/mEAyItBKml/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/mEAyItBKml/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/mEAyItBKml/MANIFEST b/.build/mEAyItBKml/MANIFEST deleted file mode 100644 index 77742b1..0000000 --- a/.build/mEAyItBKml/MANIFEST +++ /dev/null @@ -1,32 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/mEAyItBKml/META.json b/.build/mEAyItBKml/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/mEAyItBKml/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/mEAyItBKml/META.yml b/.build/mEAyItBKml/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/mEAyItBKml/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/mEAyItBKml/MYMETA.json b/.build/mEAyItBKml/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/mEAyItBKml/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/mEAyItBKml/MYMETA.yml b/.build/mEAyItBKml/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/mEAyItBKml/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/mEAyItBKml/Makefile b/.build/mEAyItBKml/Makefile deleted file mode 100644 index cb34402..0000000 --- a/.build/mEAyItBKml/Makefile +++ /dev/null @@ -1,937 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/perl-WebService-Async-SmartyStreets/.build/mEAyItBKml/--force -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/mEAyItBKml/Makefile.PL b/.build/mEAyItBKml/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/mEAyItBKml/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/mEAyItBKml/README b/.build/mEAyItBKml/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/mEAyItBKml/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/mEAyItBKml/README.md b/.build/mEAyItBKml/README.md deleted file mode 100644 index 49083e3..0000000 --- a/.build/mEAyItBKml/README.md +++ /dev/null @@ -1,235 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). -Takes in: String -Returns: 1 or 0 - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -Takes in: String -Returns: 1 or 0 - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->()->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Constructs a Net::Async::HTTP object. - -## verify_international - -Calls and passes the address data to SmartyStreets International API. -Takes in a hash. -Returns a WebService::Async::SmartyStreets::Address object. - -## verify_usa - -Calls and passes the address data to SmartyStreets USA API (USA address only). -Takes in a hash. -Returns a WebService::Async::SmartyStreets::Address object. - -## verify - -Prepares the data and calls get_decoded_data to obtain the response and parses it -to WebService::Async::SmartyStreets::Address object. -Takes in uri and a hash - -## get_decoded_data - -Gets the data by making the call to SmartyStreets API and decode the response. -Returns a Future Object. - -# AUTHOR - -Binary.com - diff --git a/.build/mEAyItBKml/blib/arch/.exists b/.build/mEAyItBKml/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/mEAyItBKml/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/blib/bin/.exists b/.build/mEAyItBKml/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/.exists b/.build/mEAyItBKml/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 820cf47..0000000 --- a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,214 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=HEAD - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss; - sub get_smartystreets { - return $ss if $ss; - $ss = WebService::Async::SmartyStreets->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - return $ss; - } - - $ss = get_smartystreets(); - - my $addr = $ss->verify_international(, geocode => 'true')->get; - return $addr->status; - -=head1 DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token -Takes in: Hash which consists of auth_id and token - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify_international - -Calls to different API depending on the country of the address. -Takes the following named parameters: - -= over 4 - -= item * C - country -= item * C - address line 1 -= item * C - address line 2 -= item * C - name of organization (usually building names) -= item * C - city -= item * C - state -= item * C - post code -= item * C - true or false - -= back - -Returns a L which resolves to a L instance. - -=cut - -# async sub verify_international { -# my ($self, %args) = @_; -# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); -# return await $self->verify($uri => %args); -# } - -=head2 verify_international - -See L. - -=cut - -async sub verify_usa { - my ($self, %args) = @_; - my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); - return await $self->verify($uri => %args); -} - - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to -= item * C - address parametes in hash (See L) - -= back - -Returns L object - -=cut - -async sub verify { - my ($self, %args) = @_; - - my $uri = URI->new(get_uri()); - - $uri->query_param($_ => $args{$_}) for keys %args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and return response -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to - -= back - -Returns: decoded response in Hash - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - my $response = do { - my $res = await $self->ua->GET($uri); - decode_json_utf8($res->decoded_content); - }; - return $response; -} - -sub get_uri { - die "Subroutine not overriden in the child's module"; -} - -# sub get_address { -# die "Subroutine not overriden in the child's module"; -# } - -1; - diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 081ad4c..0000000 --- a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,134 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -sub address_parts { - my ($self) = @_; - @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } -} - -=head2 - -Various subroutine that parses and returns the field from the caller - -=cut - -sub input_id { shift->{input_id} } -sub organization { shift->{organization} } -sub latitude { shift->{metadata}{latitude} } -sub longitude { shift->{metadata}{longitude} } -sub geocode_precision { shift->{metadata}{geocode_precision} } -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } -sub address_format { shift->{metadata}{address_format} } - -sub status { lc shift->{analysis}{verification_status} // ''} -sub address_precision { lc shift->{analysis}{address_precision} // ''} -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) -Takes in: String of verification status -Return : 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) -Instantly returns 0 if the status is lower than 'partial' -Takes in: String of accuracy -Return : 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 2c44322..0000000 --- a/.build/mEAyItBKml/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,58 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - - -# =head2 _init - -# Overrides _init from IO::Async::Notifier -# Takes in the following parameters (in hash): - -# = over 4 - -# = item * C - country -# = item * C - address line 1 -# = item * C - address line 2 -# = item * C - name of organization (usually building names) -# = item * C - city -# = item * C - state -# = item * C - post code -# = item * C - true or false - -# = back - -# Returns a L instance. - -# =cut - -# sub _init { -# my ($self, $paramref) = @_; -# $self->SUPER::_init; - -# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { -# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; -# } -# } - -# =head2 get_address - -# Overrides get_address in L -# Returns address in hash - -# =cut - -# sub get_address : method { shift->{address} } - -# =head2 get_url - -# Overrides get_uri in l -# Returns URI in string - -# =cut - -sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } - -1; \ No newline at end of file diff --git a/.build/mEAyItBKml/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/mEAyItBKml/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/blib/man1/.exists b/.build/mEAyItBKml/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/blib/man3/.exists b/.build/mEAyItBKml/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/blib/script/.exists b/.build/mEAyItBKml/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/cpanfile b/.build/mEAyItBKml/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/mEAyItBKml/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/mEAyItBKml/dist.ini b/.build/mEAyItBKml/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/mEAyItBKml/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 820cf47..0000000 --- a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,214 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=HEAD - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss; - sub get_smartystreets { - return $ss if $ss; - $ss = WebService::Async::SmartyStreets->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - return $ss; - } - - $ss = get_smartystreets(); - - my $addr = $ss->verify_international(, geocode => 'true')->get; - return $addr->status; - -=head1 DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token -Takes in: Hash which consists of auth_id and token - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify_international - -Calls to different API depending on the country of the address. -Takes the following named parameters: - -= over 4 - -= item * C - country -= item * C - address line 1 -= item * C - address line 2 -= item * C - name of organization (usually building names) -= item * C - city -= item * C - state -= item * C - post code -= item * C - true or false - -= back - -Returns a L which resolves to a L instance. - -=cut - -# async sub verify_international { -# my ($self, %args) = @_; -# my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); -# return await $self->verify($uri => %args); -# } - -=head2 verify_international - -See L. - -=cut - -async sub verify_usa { - my ($self, %args) = @_; - my $uri = URI->new('https://us-street.api.smartystreets.com/street-address'); - return await $self->verify($uri => %args); -} - - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to -= item * C - address parametes in hash (See L) - -= back - -Returns L object - -=cut - -async sub verify { - my ($self, %args) = @_; - - my $uri = URI->new(get_uri()); - - $uri->query_param($_ => $args{$_}) for keys %args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and return response -Takes the following named parameters: - -= over 4 - -= item * C - URI address that the process will make the call to - -= back - -Returns: decoded response in Hash - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - my $response = do { - my $res = await $self->ua->GET($uri); - decode_json_utf8($res->decoded_content); - }; - return $response; -} - -sub get_uri { - die "Subroutine not overriden in the child's module"; -} - -# sub get_address { -# die "Subroutine not overriden in the child's module"; -# } - -1; - diff --git a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 081ad4c..0000000 --- a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,134 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -sub address_parts { - my ($self) = @_; - @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } -} - -=head2 - -Various subroutine that parses and returns the field from the caller - -=cut - -sub input_id { shift->{input_id} } -sub organization { shift->{organization} } -sub latitude { shift->{metadata}{latitude} } -sub longitude { shift->{metadata}{longitude} } -sub geocode_precision { shift->{metadata}{geocode_precision} } -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } -sub address_format { shift->{metadata}{address_format} } - -sub status { lc shift->{analysis}{verification_status} // ''} -sub address_precision { lc shift->{analysis}{address_precision} // ''} -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) -Takes in: String of verification status -Return : 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) -Instantly returns 0 if the status is lower than 'partial' -Takes in: String of accuracy -Return : 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm b/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 2c44322..0000000 --- a/.build/mEAyItBKml/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,58 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - - -# =head2 _init - -# Overrides _init from IO::Async::Notifier -# Takes in the following parameters (in hash): - -# = over 4 - -# = item * C - country -# = item * C - address line 1 -# = item * C - address line 2 -# = item * C - name of organization (usually building names) -# = item * C - city -# = item * C - state -# = item * C - post code -# = item * C - true or false - -# = back - -# Returns a L instance. - -# =cut - -# sub _init { -# my ($self, $paramref) = @_; -# $self->SUPER::_init; - -# for my $each_input (qw(country address1 address2 organization locality administrative_area postal_code geocode)) { -# $self->{address}->{$each_input} = delete $paramref->{$each_input} if exists $paramref->{$each_input}; -# } -# } - -# =head2 get_address - -# Overrides get_address in L -# Returns address in hash - -# =cut - -# sub get_address : method { shift->{address} } - -# =head2 get_url - -# Overrides get_uri in l -# Returns URI in string - -# =cut - -sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } - -1; \ No newline at end of file diff --git a/.build/mEAyItBKml/pm_to_blib b/.build/mEAyItBKml/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/mEAyItBKml/t/00-check-deps.t b/.build/mEAyItBKml/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/mEAyItBKml/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/mEAyItBKml/t/00-compile.t b/.build/mEAyItBKml/t/00-compile.t deleted file mode 100644 index 6095756..0000000 --- a/.build/mEAyItBKml/t/00-compile.t +++ /dev/null @@ -1,56 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 3 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/mEAyItBKml/t/00-report-prereqs.dd b/.build/mEAyItBKml/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/mEAyItBKml/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/mEAyItBKml/t/00-report-prereqs.t b/.build/mEAyItBKml/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/mEAyItBKml/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/mEAyItBKml/t/01_unit_test.t b/.build/mEAyItBKml/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/mEAyItBKml/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/mEAyItBKml/t/02_smarty_test.t b/.build/mEAyItBKml/t/02_smarty_test.t deleted file mode 100644 index b115b79..0000000 --- a/.build/mEAyItBKml/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify_international( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/mEAyItBKml/t/rc/.perlcriticrc b/.build/mEAyItBKml/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/mEAyItBKml/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/mEAyItBKml/t/rc/.perltidyrc b/.build/mEAyItBKml/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/mEAyItBKml/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/mEAyItBKml/xt/author/eol.t b/.build/mEAyItBKml/xt/author/eol.t deleted file mode 100644 index 4284e50..0000000 --- a/.build/mEAyItBKml/xt/author/eol.t +++ /dev/null @@ -1,24 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/mEAyItBKml/xt/author/mojibake.t b/.build/mEAyItBKml/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/mEAyItBKml/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/mEAyItBKml/xt/author/pod-coverage.t b/.build/mEAyItBKml/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/mEAyItBKml/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/mEAyItBKml/xt/author/pod-syntax.t b/.build/mEAyItBKml/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/mEAyItBKml/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/mEAyItBKml/xt/author/synopsis.t b/.build/mEAyItBKml/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/mEAyItBKml/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/mEAyItBKml/xt/author/test-version.t b/.build/mEAyItBKml/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/mEAyItBKml/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/mEAyItBKml/xt/release/common_spelling.t b/.build/mEAyItBKml/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/mEAyItBKml/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/mEAyItBKml/xt/release/pod-linkcheck.t b/.build/mEAyItBKml/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/mEAyItBKml/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/mEAyItBKml/xt/release/unused-vars.t b/.build/mEAyItBKml/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/mEAyItBKml/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 2c40dd2..9df580d 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -157,6 +157,9 @@ Takes the following named parameters: =item * C - URI address that the process will make the call to =back +Parses the response give by SmartyStreets + +More information of the resposne can be seen in L Returns an arrayref of hashrefs which the keys corresponds to L From ec5e0f4a3839ad2506ac9c1772987cf0a9dc04b7 Mon Sep 17 00:00:00 2001 From: limchengyang <45479072+limchengyang@users.noreply.github.com> Date: Mon, 1 Apr 2019 14:48:23 +0800 Subject: [PATCH 28/55] Update README.md --- README.md | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 49083e3..63cad13 100644 --- a/README.md +++ b/README.md @@ -102,17 +102,12 @@ Creates the object. takes in hashrefs ## status_at_least Checks if the returned response at least hits a certain level (in terms of score). -Takes in: String -Returns: 1 or 0 ## accuracy_at_least Checks if the returned response at least hits a certain accuracy (in terms of score). Instantly returns 0 if the status is lower than 'partial'. -Takes in: String -Returns: 1 or 0 - # Attributes ## input_id @@ -182,7 +177,7 @@ WebService::Async::SmartyStreets; my $addr = await $ss->verify_international( # insert address here ); - })->()->get; + })->get; # DESCRIPTION @@ -209,14 +204,12 @@ Constructs a Net::Async::HTTP object. ## verify_international Calls and passes the address data to SmartyStreets International API. -Takes in a hash. -Returns a WebService::Async::SmartyStreets::Address object. +Returns WebService::Async::SmartyStreets::Address object. ## verify_usa Calls and passes the address data to SmartyStreets USA API (USA address only). -Takes in a hash. -Returns a WebService::Async::SmartyStreets::Address object. +Returns WebService::Async::SmartyStreets::Address object. ## verify From 35ed5be5e34d30a6378f24f6ec709b35c4057333 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 1 Apr 2019 07:00:43 +0000 Subject: [PATCH 29/55] changed comments --- lib/WebService/Async/SmartyStreets.pm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 9df580d..9aadabc 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -27,7 +27,7 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th =head1 DESCRIPTION -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` +This class calls the SmartyStreets API and parse the response to L Note that this module uses L @@ -99,6 +99,14 @@ sub ua { Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => "...", + token => "...", + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify("URI String", %address_to_check)->get; + Takes the following named parameters: =over 4 @@ -150,6 +158,9 @@ async sub verify { =head2 get_decoded_data Calls the SmartyStreets API then decode and return response + + my $decoded = await get_decoded_data($self, $uri) + Takes the following named parameters: =over 4 From a81ef0ebcb381fd54418a5cc67a3edb847161773 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 1 Apr 2019 07:07:06 +0000 Subject: [PATCH 30/55] comments --- README.md | 5 +++++ lib/WebService/Async/SmartyStreets.pm | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 63cad13..ac83aea 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,11 @@ Takes in uri and a hash Gets the data by making the call to SmartyStreets API and decode the response. Returns a Future Object. +## get_uri + +Dummy sub designed to be overriden in L and L + + # AUTHOR Binary.com diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 9aadabc..9504b30 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -157,7 +157,7 @@ async sub verify { =head2 get_decoded_data -Calls the SmartyStreets API then decode and return response +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets my $decoded = await get_decoded_data($self, $uri) @@ -168,7 +168,6 @@ Takes the following named parameters: =item * C - URI address that the process will make the call to =back -Parses the response give by SmartyStreets More information of the resposne can be seen in L From 94224681443de501c5afab2568e650b7a524a872 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 1 Apr 2019 07:22:33 +0000 Subject: [PATCH 31/55] comments --- README.md | 72 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index ac83aea..b2a7ab9 100644 --- a/README.md +++ b/README.md @@ -199,33 +199,77 @@ Returns token. ## ua -Constructs a Net::Async::HTTP object. +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. -## verify_international -Calls and passes the address data to SmartyStreets International API. -Returns WebService::Async::SmartyStreets::Address object. +## verify -## verify_usa +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. -Calls and passes the address data to SmartyStreets USA API (USA address only). -Returns WebService::Async::SmartyStreets::Address object. +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) -## verify +args consists of the following parameters: -Prepares the data and calls get_decoded_data to obtain the response and parses it -to WebService::Async::SmartyStreets::Address object. -Takes in uri and a hash +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false ## get_decoded_data -Gets the data by making the call to SmartyStreets API and decode the response. -Returns a Future Object. +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` ## get_uri -Dummy sub designed to be overriden in L and L +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents # AUTHOR From 614a863c76766e99af0281a92f621e4bae9d65e8 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 2 Apr 2019 10:15:07 +0800 Subject: [PATCH 32/55] Update Changes Co-Authored-By: limchengyang <45479072+limchengyang@users.noreply.github.com> --- Changes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Changes b/Changes index f3123fe..651fa7b 100644 --- a/Changes +++ b/Changes @@ -2,4 +2,4 @@ Revision history for {{$dist->name}} {{$NEXT}} - Pre-release version, Released as an proof of concept. \ No newline at end of file + Pre-release version. Released as a proof of concept. From aa84ddc820217fcd3ca3d7b41f1676e99dd09f4f Mon Sep 17 00:00:00 2001 From: Nobody User Date: Tue, 2 Apr 2019 02:44:08 +0000 Subject: [PATCH 33/55] first 2 comments --- lib/WebService/Async/SmartyStreets.pm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 9504b30..a43c2af 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -12,16 +12,12 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th =head1 SYNOPSIS - my $ss; - - $ss = WebService::Async::SmartyStreets->new( + my $ss = WebService::Async::SmartyStreets->new( auth_id => #insert auth_id, token => #insert token, ); IO::Async::Loop->new->add($ss); - $ss = get_smartystreets(); - my $addr = $ss->verify_international(, geocode => 'true')->get; print($addr->status); From fad6ca72da424d83ae2e93a7faeae4c8cd407798 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Tue, 2 Apr 2019 04:38:23 +0000 Subject: [PATCH 34/55] changed comments --- lib/WebService/Async/SmartyStreets.pm | 67 ++++++++++++------- .../Async/SmartyStreets/International.pm | 67 +++++++++++++++++-- lib/WebService/Async/SmartyStreets/USA.pm | 67 +++++++++++++++++-- 3 files changed, 161 insertions(+), 40 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index a43c2af..be31978 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -11,19 +11,31 @@ our $VERSION = '0.001'; WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address =head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets->new( + + my $ss = WebService::Async::SmartyStreets::International->new( auth_id => #insert auth_id, token => #insert token, ); IO::Async::Loop->new->add($ss); - my $addr = $ss->verify_international(, geocode => 'true')->get; + my $addr = $ss->verify(, geocode => 'true')->get; print($addr->status); - + =head1 DESCRIPTION -This class calls the SmartyStreets API and parse the response to L +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API Note that this module uses L @@ -50,7 +62,16 @@ use Log::Any qw($log); =head2 configure Configures the class with the auth_id and token -Takes in: Hash which consists of auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back =cut @@ -95,20 +116,17 @@ sub ua { Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => "...", - token => "...", - ); - IO::Async::Loop->new->add($ss); + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - my $addr = $ss->verify("URI String", %address_to_check)->get; +Please consider using the "verify" subroutine in L or L instead Takes the following named parameters: =over 4 -=item * C - URI address (in string) -=item * C - address parameters in hash (See L) +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) =back @@ -117,15 +135,22 @@ args consists of the following parameters: =over 4 =item * C - country + =item * C - address line 1 + =item * C - address line 2 + =item * C - name of organization (usually building names) + =item * C - city + =item * C - state + =item * C - post code + =item * C - true or false -=back +=back Returns L object @@ -165,7 +190,7 @@ Takes the following named parameters: =back -More information of the resposne can be seen in L +More information on the response can be seen in L Returns an arrayref of hashrefs which the keys corresponds to L @@ -181,15 +206,5 @@ async sub get_decoded_data { return $response; } -=head2 get_uri - -Dummy sub designed to be overriden in L and L - -=cut - -sub get_uri { - die "Subroutine not overriden in the child's module"; -} - 1; diff --git a/lib/WebService/Async/SmartyStreets/International.pm b/lib/WebService/Async/SmartyStreets/International.pm index 043dde1..961cf67 100644 --- a/lib/WebService/Async/SmartyStreets/International.pm +++ b/lib/WebService/Async/SmartyStreets/International.pm @@ -5,25 +5,78 @@ use warnings; use parent 'WebService::Async::SmartyStreets'; -=head2 get_uri +=HEAD -Overrides get_uri in l -Returns URI in string +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address -=cut +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L -sub get_uri { return 'https://international-street.api.smartystreets.com/verify'; } +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut =head2 verify -Overrides verify in l +Overrides verify in L + Gets the input arguments and pass it to the parents + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + =cut sub verify { my $self = shift; - my $uri = get_uri(); + my $uri = 'https://international-street.api.smartystreets.com/verify'; my %args = @_; $self->SUPER::verify($uri, %args); diff --git a/lib/WebService/Async/SmartyStreets/USA.pm b/lib/WebService/Async/SmartyStreets/USA.pm index ef4f46e..30db4b2 100644 --- a/lib/WebService/Async/SmartyStreets/USA.pm +++ b/lib/WebService/Async/SmartyStreets/USA.pm @@ -5,25 +5,78 @@ use warnings; use parent 'WebService::Async::SmartyStreets'; -=head2 get_uri +=HEAD -Overrides get_uri in l -Returns URI in string +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address -=cut +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L -sub get_uri { return 'https://us-street.api.smartystreets.com/street-address'; } +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut =head2 verify -Overrides verify in l +Overrides verify in L + Gets the input arguments and pass it to the parents + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + =cut sub verify { my $self = shift; - my $uri = get_uri(); + my $uri = 'https://us-street.api.smartystreets.com/street-address'; my %args = @_; $self->SUPER::verify($uri, %args); From 6dc348284e2acaa852f5ade4f17f6e37f3a01f36 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Tue, 2 Apr 2019 08:34:02 +0000 Subject: [PATCH 35/55] removed unused --- lib/WebService/Async/SmartyStreets/Address.pm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index 217a40a..9f15dbc 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -56,11 +56,6 @@ sub new { bless \%args, $class } -sub address_parts { - my ($self) = @_; - @{$self}{grep { exists $self->{$_} } map { 'address' . $_ } 1..12 } -} - =head2 input_id Returns the value of the input_id From 692662ffdcae68655f09b08de16998293baa6640 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Wed, 3 Apr 2019 16:27:27 +0800 Subject: [PATCH 36/55] Update lib/WebService/Async/SmartyStreets.pm Co-Authored-By: limchengyang <45479072+limchengyang@users.noreply.github.com> --- lib/WebService/Async/SmartyStreets.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index be31978..3cc850e 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -6,7 +6,7 @@ use warnings; our $VERSION = '0.001'; -=HEAD +=head1 NAME WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address From f0613223220e59b6dd96c3acd7346f6d77f9991f Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 4 Apr 2019 08:36:50 +0000 Subject: [PATCH 37/55] Removed International and USA module as it adds on confusions --- .build/4BVDjxVREH/Changes | 5 + .build/4BVDjxVREH/INSTALL | 43 + .build/4BVDjxVREH/LICENSE | 379 +++++++ .build/4BVDjxVREH/MANIFEST | 33 + .build/4BVDjxVREH/META.json | 82 ++ .build/4BVDjxVREH/META.yml | 37 + .build/4BVDjxVREH/MYMETA.json | 82 ++ .build/4BVDjxVREH/MYMETA.yml | 37 + .build/4BVDjxVREH/Makefile | 939 ++++++++++++++++++ .build/4BVDjxVREH/Makefile.PL | 73 ++ .build/4BVDjxVREH/README | 12 + .build/4BVDjxVREH/README.md | 277 ++++++ .build/4BVDjxVREH/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/4BVDjxVREH/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 2 +- .../WebService/Async/SmartyStreets/USA.pm | 2 +- .../WebService/Async/SmartyStreets/.exists | 0 .build/4BVDjxVREH/blib/man1/.exists | 0 .build/4BVDjxVREH/blib/man3/.exists | 0 .build/4BVDjxVREH/blib/script/.exists | 0 .build/4BVDjxVREH/cpanfile | 17 + .build/4BVDjxVREH/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .build/4BVDjxVREH/pm_to_blib | 0 .build/4BVDjxVREH/t/00-check-deps.t | 17 + .build/4BVDjxVREH/t/00-compile.t | 57 ++ .build/4BVDjxVREH/t/00-report-prereqs.dd | 53 + .build/4BVDjxVREH/t/00-report-prereqs.t | 183 ++++ .build/4BVDjxVREH/t/01_unit_test.t | 42 + .build/4BVDjxVREH/t/02_smarty_test.t | 73 ++ .build/4BVDjxVREH/t/rc/.perlcriticrc | 23 + .build/4BVDjxVREH/t/rc/.perltidyrc | 63 ++ .build/4BVDjxVREH/xt/author/eol.t | 25 + .build/4BVDjxVREH/xt/author/mojibake.t | 9 + .build/4BVDjxVREH/xt/author/pod-coverage.t | 7 + .build/4BVDjxVREH/xt/author/pod-syntax.t | 7 + .build/4BVDjxVREH/xt/author/synopsis.t | 5 + .build/4BVDjxVREH/xt/author/test-version.t | 23 + .../4BVDjxVREH/xt/release/common_spelling.t | 11 + .build/4BVDjxVREH/xt/release/pod-linkcheck.t | 20 + .build/4BVDjxVREH/xt/release/unused-vars.t | 14 + .build/UDufqIoogz/Changes | 5 + .build/UDufqIoogz/INSTALL | 43 + .build/UDufqIoogz/LICENSE | 379 +++++++ .build/UDufqIoogz/MANIFEST | 33 + .build/UDufqIoogz/META.json | 82 ++ .build/UDufqIoogz/META.yml | 37 + .build/UDufqIoogz/MYMETA.json | 82 ++ .build/UDufqIoogz/MYMETA.yml | 37 + .build/UDufqIoogz/Makefile | 939 ++++++++++++++++++ .build/UDufqIoogz/Makefile.PL | 73 ++ .build/UDufqIoogz/README | 12 + .build/UDufqIoogz/README.md | 277 ++++++ .build/UDufqIoogz/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/UDufqIoogz/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/UDufqIoogz/blib/man1/.exists | 0 .build/UDufqIoogz/blib/man3/.exists | 0 .build/UDufqIoogz/blib/script/.exists | 0 .build/UDufqIoogz/cpanfile | 17 + .build/UDufqIoogz/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .build/UDufqIoogz/pm_to_blib | 0 .build/UDufqIoogz/t/00-check-deps.t | 17 + .build/UDufqIoogz/t/00-compile.t | 57 ++ .build/UDufqIoogz/t/00-report-prereqs.dd | 53 + .build/UDufqIoogz/t/00-report-prereqs.t | 183 ++++ .build/UDufqIoogz/t/01_unit_test.t | 42 + .build/UDufqIoogz/t/02_smarty_test.t | 73 ++ .build/UDufqIoogz/t/rc/.perlcriticrc | 23 + .build/UDufqIoogz/t/rc/.perltidyrc | 63 ++ .build/UDufqIoogz/xt/author/eol.t | 25 + .build/UDufqIoogz/xt/author/mojibake.t | 9 + .build/UDufqIoogz/xt/author/pod-coverage.t | 7 + .build/UDufqIoogz/xt/author/pod-syntax.t | 7 + .build/UDufqIoogz/xt/author/synopsis.t | 5 + .build/UDufqIoogz/xt/author/test-version.t | 23 + .../UDufqIoogz/xt/release/common_spelling.t | 11 + .build/UDufqIoogz/xt/release/pod-linkcheck.t | 20 + .build/UDufqIoogz/xt/release/unused-vars.t | 14 + .build/adCP70XCJ7/Changes | 5 + .build/adCP70XCJ7/INSTALL | 43 + .build/adCP70XCJ7/LICENSE | 379 +++++++ .build/adCP70XCJ7/MANIFEST | 33 + .build/adCP70XCJ7/META.json | 82 ++ .build/adCP70XCJ7/META.yml | 37 + .build/adCP70XCJ7/MYMETA.json | 82 ++ .build/adCP70XCJ7/MYMETA.yml | 37 + .build/adCP70XCJ7/Makefile | 939 ++++++++++++++++++ .build/adCP70XCJ7/Makefile.PL | 73 ++ .build/adCP70XCJ7/README | 12 + .build/adCP70XCJ7/README.md | 277 ++++++ .build/adCP70XCJ7/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/adCP70XCJ7/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 225 +++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/adCP70XCJ7/blib/man1/.exists | 0 .build/adCP70XCJ7/blib/man3/.exists | 0 .build/adCP70XCJ7/blib/script/.exists | 0 .build/adCP70XCJ7/cpanfile | 17 + .build/adCP70XCJ7/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 225 +++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .build/adCP70XCJ7/pm_to_blib | 0 .build/adCP70XCJ7/t/00-check-deps.t | 17 + .build/adCP70XCJ7/t/00-compile.t | 57 ++ .build/adCP70XCJ7/t/00-report-prereqs.dd | 53 + .build/adCP70XCJ7/t/00-report-prereqs.t | 183 ++++ .build/adCP70XCJ7/t/01_unit_test.t | 42 + .build/adCP70XCJ7/t/02_smarty_test.t | 73 ++ .build/adCP70XCJ7/t/rc/.perlcriticrc | 23 + .build/adCP70XCJ7/t/rc/.perltidyrc | 63 ++ .build/adCP70XCJ7/xt/author/eol.t | 25 + .build/adCP70XCJ7/xt/author/mojibake.t | 9 + .build/adCP70XCJ7/xt/author/pod-coverage.t | 7 + .build/adCP70XCJ7/xt/author/pod-syntax.t | 7 + .build/adCP70XCJ7/xt/author/synopsis.t | 5 + .build/adCP70XCJ7/xt/author/test-version.t | 23 + .../adCP70XCJ7/xt/release/common_spelling.t | 11 + .build/adCP70XCJ7/xt/release/pod-linkcheck.t | 20 + .build/adCP70XCJ7/xt/release/unused-vars.t | 14 + .build/g9VvV3ah9V/Changes | 5 + .build/g9VvV3ah9V/INSTALL | 43 + .build/g9VvV3ah9V/LICENSE | 379 +++++++ .build/g9VvV3ah9V/MANIFEST | 33 + .build/g9VvV3ah9V/META.json | 82 ++ .build/g9VvV3ah9V/META.yml | 37 + .build/g9VvV3ah9V/MYMETA.json | 82 ++ .build/g9VvV3ah9V/MYMETA.yml | 37 + .build/g9VvV3ah9V/Makefile | 939 ++++++++++++++++++ .build/g9VvV3ah9V/Makefile.PL | 73 ++ .build/g9VvV3ah9V/README | 12 + .build/g9VvV3ah9V/README.md | 277 ++++++ .build/g9VvV3ah9V/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/g9VvV3ah9V/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/g9VvV3ah9V/blib/man1/.exists | 0 .build/g9VvV3ah9V/blib/man3/.exists | 0 .build/g9VvV3ah9V/blib/script/.exists | 0 .build/g9VvV3ah9V/cpanfile | 17 + .build/g9VvV3ah9V/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .build/g9VvV3ah9V/pm_to_blib | 0 .build/g9VvV3ah9V/t/00-check-deps.t | 17 + .build/g9VvV3ah9V/t/00-compile.t | 57 ++ .build/g9VvV3ah9V/t/00-report-prereqs.dd | 53 + .build/g9VvV3ah9V/t/00-report-prereqs.t | 183 ++++ .build/g9VvV3ah9V/t/01_unit_test.t | 42 + .build/g9VvV3ah9V/t/02_smarty_test.t | 73 ++ .build/g9VvV3ah9V/t/rc/.perlcriticrc | 23 + .build/g9VvV3ah9V/t/rc/.perltidyrc | 63 ++ .build/g9VvV3ah9V/xt/author/eol.t | 25 + .build/g9VvV3ah9V/xt/author/mojibake.t | 9 + .build/g9VvV3ah9V/xt/author/pod-coverage.t | 7 + .build/g9VvV3ah9V/xt/author/pod-syntax.t | 7 + .build/g9VvV3ah9V/xt/author/synopsis.t | 5 + .build/g9VvV3ah9V/xt/author/test-version.t | 23 + .../g9VvV3ah9V/xt/release/common_spelling.t | 11 + .build/g9VvV3ah9V/xt/release/pod-linkcheck.t | 20 + .build/g9VvV3ah9V/xt/release/unused-vars.t | 14 + .build/lZoVwHl4Bh/Changes | 5 + .build/lZoVwHl4Bh/INSTALL | 43 + .build/lZoVwHl4Bh/LICENSE | 379 +++++++ .build/lZoVwHl4Bh/MANIFEST | 33 + .build/lZoVwHl4Bh/META.json | 82 ++ .build/lZoVwHl4Bh/META.yml | 37 + .build/lZoVwHl4Bh/MYMETA.json | 82 ++ .build/lZoVwHl4Bh/MYMETA.yml | 37 + .build/lZoVwHl4Bh/Makefile | 939 ++++++++++++++++++ .build/lZoVwHl4Bh/Makefile.PL | 73 ++ .build/lZoVwHl4Bh/README | 12 + .build/lZoVwHl4Bh/README.md | 277 ++++++ .build/lZoVwHl4Bh/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/lZoVwHl4Bh/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/lZoVwHl4Bh/blib/man1/.exists | 0 .build/lZoVwHl4Bh/blib/man3/.exists | 0 .build/lZoVwHl4Bh/blib/script/.exists | 0 .build/lZoVwHl4Bh/cpanfile | 17 + .build/lZoVwHl4Bh/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .build/lZoVwHl4Bh/pm_to_blib | 0 .build/lZoVwHl4Bh/t/00-check-deps.t | 17 + .build/lZoVwHl4Bh/t/00-compile.t | 57 ++ .build/lZoVwHl4Bh/t/00-report-prereqs.dd | 53 + .build/lZoVwHl4Bh/t/00-report-prereqs.t | 183 ++++ .build/lZoVwHl4Bh/t/01_unit_test.t | 42 + .build/lZoVwHl4Bh/t/02_smarty_test.t | 73 ++ .build/lZoVwHl4Bh/t/rc/.perlcriticrc | 23 + .build/lZoVwHl4Bh/t/rc/.perltidyrc | 63 ++ .build/lZoVwHl4Bh/xt/author/eol.t | 25 + .build/lZoVwHl4Bh/xt/author/mojibake.t | 9 + .build/lZoVwHl4Bh/xt/author/pod-coverage.t | 7 + .build/lZoVwHl4Bh/xt/author/pod-syntax.t | 7 + .build/lZoVwHl4Bh/xt/author/synopsis.t | 5 + .build/lZoVwHl4Bh/xt/author/test-version.t | 23 + .../lZoVwHl4Bh/xt/release/common_spelling.t | 11 + .build/lZoVwHl4Bh/xt/release/pod-linkcheck.t | 20 + .build/lZoVwHl4Bh/xt/release/unused-vars.t | 14 + .build/previous | 1 + .build/umAPEOCzJH/Changes | 5 + .build/umAPEOCzJH/INSTALL | 43 + .build/umAPEOCzJH/LICENSE | 379 +++++++ .build/umAPEOCzJH/MANIFEST | 33 + .build/umAPEOCzJH/META.json | 82 ++ .build/umAPEOCzJH/META.yml | 37 + .build/umAPEOCzJH/MYMETA.json | 82 ++ .build/umAPEOCzJH/MYMETA.yml | 37 + .build/umAPEOCzJH/Makefile | 939 ++++++++++++++++++ .build/umAPEOCzJH/Makefile.PL | 73 ++ .build/umAPEOCzJH/README | 12 + .build/umAPEOCzJH/README.md | 277 ++++++ .build/umAPEOCzJH/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/umAPEOCzJH/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/umAPEOCzJH/blib/man1/.exists | 0 .build/umAPEOCzJH/blib/man3/.exists | 0 .build/umAPEOCzJH/blib/script/.exists | 0 .build/umAPEOCzJH/cpanfile | 17 + .build/umAPEOCzJH/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .build/umAPEOCzJH/pm_to_blib | 0 .build/umAPEOCzJH/t/00-check-deps.t | 17 + .build/umAPEOCzJH/t/00-compile.t | 57 ++ .build/umAPEOCzJH/t/00-report-prereqs.dd | 53 + .build/umAPEOCzJH/t/00-report-prereqs.t | 183 ++++ .build/umAPEOCzJH/t/01_unit_test.t | 42 + .build/umAPEOCzJH/t/02_smarty_test.t | 73 ++ .build/umAPEOCzJH/t/rc/.perlcriticrc | 23 + .build/umAPEOCzJH/t/rc/.perltidyrc | 63 ++ .build/umAPEOCzJH/xt/author/eol.t | 25 + .build/umAPEOCzJH/xt/author/mojibake.t | 9 + .build/umAPEOCzJH/xt/author/pod-coverage.t | 7 + .build/umAPEOCzJH/xt/author/pod-syntax.t | 7 + .build/umAPEOCzJH/xt/author/synopsis.t | 5 + .build/umAPEOCzJH/xt/author/test-version.t | 23 + .../umAPEOCzJH/xt/release/common_spelling.t | 11 + .build/umAPEOCzJH/xt/release/pod-linkcheck.t | 20 + .build/umAPEOCzJH/xt/release/unused-vars.t | 14 + .build/vWF93r870W/Changes | 5 + .build/vWF93r870W/INSTALL | 43 + .build/vWF93r870W/LICENSE | 379 +++++++ .build/vWF93r870W/MANIFEST | 33 + .build/vWF93r870W/META.json | 82 ++ .build/vWF93r870W/META.yml | 37 + .build/vWF93r870W/MYMETA.json | 82 ++ .build/vWF93r870W/MYMETA.yml | 37 + .build/vWF93r870W/Makefile | 939 ++++++++++++++++++ .build/vWF93r870W/Makefile.PL | 73 ++ .build/vWF93r870W/README | 12 + .build/vWF93r870W/README.md | 277 ++++++ .build/vWF93r870W/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/vWF93r870W/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .../WebService/Async/SmartyStreets/.exists | 0 .build/vWF93r870W/blib/man1/.exists | 0 .build/vWF93r870W/blib/man3/.exists | 0 .build/vWF93r870W/blib/script/.exists | 0 .build/vWF93r870W/cpanfile | 17 + .build/vWF93r870W/dist.ini | 67 ++ .../lib/WebService/Async/SmartyStreets.pm | 215 ++++ .../WebService/Async/SmartyStreets/Address.pm | 207 ++++ .../Async/SmartyStreets/International.pm | 85 ++ .../lib/WebService/Async/SmartyStreets/USA.pm | 85 ++ .build/vWF93r870W/pm_to_blib | 0 .build/vWF93r870W/t/00-check-deps.t | 17 + .build/vWF93r870W/t/00-compile.t | 57 ++ .build/vWF93r870W/t/00-report-prereqs.dd | 53 + .build/vWF93r870W/t/00-report-prereqs.t | 183 ++++ .build/vWF93r870W/t/01_unit_test.t | 42 + .build/vWF93r870W/t/02_smarty_test.t | 73 ++ .build/vWF93r870W/t/rc/.perlcriticrc | 23 + .build/vWF93r870W/t/rc/.perltidyrc | 63 ++ .build/vWF93r870W/xt/author/eol.t | 25 + .build/vWF93r870W/xt/author/mojibake.t | 9 + .build/vWF93r870W/xt/author/pod-coverage.t | 7 + .build/vWF93r870W/xt/author/pod-syntax.t | 7 + .build/vWF93r870W/xt/author/synopsis.t | 5 + .build/vWF93r870W/xt/author/test-version.t | 23 + .../vWF93r870W/xt/release/common_spelling.t | 11 + .build/vWF93r870W/xt/release/pod-linkcheck.t | 20 + .build/vWF93r870W/xt/release/unused-vars.t | 14 + lib/WebService/Async/SmartyStreets.pm | 33 +- 338 files changed, 27163 insertions(+), 18 deletions(-) create mode 100644 .build/4BVDjxVREH/Changes create mode 100644 .build/4BVDjxVREH/INSTALL create mode 100644 .build/4BVDjxVREH/LICENSE create mode 100644 .build/4BVDjxVREH/MANIFEST create mode 100644 .build/4BVDjxVREH/META.json create mode 100644 .build/4BVDjxVREH/META.yml create mode 100644 .build/4BVDjxVREH/MYMETA.json create mode 100644 .build/4BVDjxVREH/MYMETA.yml create mode 100644 .build/4BVDjxVREH/Makefile create mode 100644 .build/4BVDjxVREH/Makefile.PL create mode 100644 .build/4BVDjxVREH/README create mode 100644 .build/4BVDjxVREH/README.md create mode 100644 .build/4BVDjxVREH/blib/arch/.exists create mode 100644 .build/4BVDjxVREH/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/4BVDjxVREH/blib/bin/.exists create mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/.exists create mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm rename {lib => .build/4BVDjxVREH/blib/lib}/WebService/Async/SmartyStreets/International.pm (96%) rename {lib => .build/4BVDjxVREH/blib/lib}/WebService/Async/SmartyStreets/USA.pm (96%) create mode 100644 .build/4BVDjxVREH/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/4BVDjxVREH/blib/man1/.exists create mode 100644 .build/4BVDjxVREH/blib/man3/.exists create mode 100644 .build/4BVDjxVREH/blib/script/.exists create mode 100644 .build/4BVDjxVREH/cpanfile create mode 100644 .build/4BVDjxVREH/dist.ini create mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/4BVDjxVREH/pm_to_blib create mode 100644 .build/4BVDjxVREH/t/00-check-deps.t create mode 100644 .build/4BVDjxVREH/t/00-compile.t create mode 100644 .build/4BVDjxVREH/t/00-report-prereqs.dd create mode 100644 .build/4BVDjxVREH/t/00-report-prereqs.t create mode 100644 .build/4BVDjxVREH/t/01_unit_test.t create mode 100644 .build/4BVDjxVREH/t/02_smarty_test.t create mode 100644 .build/4BVDjxVREH/t/rc/.perlcriticrc create mode 100644 .build/4BVDjxVREH/t/rc/.perltidyrc create mode 100644 .build/4BVDjxVREH/xt/author/eol.t create mode 100644 .build/4BVDjxVREH/xt/author/mojibake.t create mode 100644 .build/4BVDjxVREH/xt/author/pod-coverage.t create mode 100644 .build/4BVDjxVREH/xt/author/pod-syntax.t create mode 100644 .build/4BVDjxVREH/xt/author/synopsis.t create mode 100644 .build/4BVDjxVREH/xt/author/test-version.t create mode 100644 .build/4BVDjxVREH/xt/release/common_spelling.t create mode 100644 .build/4BVDjxVREH/xt/release/pod-linkcheck.t create mode 100644 .build/4BVDjxVREH/xt/release/unused-vars.t create mode 100644 .build/UDufqIoogz/Changes create mode 100644 .build/UDufqIoogz/INSTALL create mode 100644 .build/UDufqIoogz/LICENSE create mode 100644 .build/UDufqIoogz/MANIFEST create mode 100644 .build/UDufqIoogz/META.json create mode 100644 .build/UDufqIoogz/META.yml create mode 100644 .build/UDufqIoogz/MYMETA.json create mode 100644 .build/UDufqIoogz/MYMETA.yml create mode 100644 .build/UDufqIoogz/Makefile create mode 100644 .build/UDufqIoogz/Makefile.PL create mode 100644 .build/UDufqIoogz/README create mode 100644 .build/UDufqIoogz/README.md create mode 100644 .build/UDufqIoogz/blib/arch/.exists create mode 100644 .build/UDufqIoogz/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/UDufqIoogz/blib/bin/.exists create mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/.exists create mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/UDufqIoogz/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/UDufqIoogz/blib/man1/.exists create mode 100644 .build/UDufqIoogz/blib/man3/.exists create mode 100644 .build/UDufqIoogz/blib/script/.exists create mode 100644 .build/UDufqIoogz/cpanfile create mode 100644 .build/UDufqIoogz/dist.ini create mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/UDufqIoogz/pm_to_blib create mode 100644 .build/UDufqIoogz/t/00-check-deps.t create mode 100644 .build/UDufqIoogz/t/00-compile.t create mode 100644 .build/UDufqIoogz/t/00-report-prereqs.dd create mode 100644 .build/UDufqIoogz/t/00-report-prereqs.t create mode 100644 .build/UDufqIoogz/t/01_unit_test.t create mode 100644 .build/UDufqIoogz/t/02_smarty_test.t create mode 100644 .build/UDufqIoogz/t/rc/.perlcriticrc create mode 100644 .build/UDufqIoogz/t/rc/.perltidyrc create mode 100644 .build/UDufqIoogz/xt/author/eol.t create mode 100644 .build/UDufqIoogz/xt/author/mojibake.t create mode 100644 .build/UDufqIoogz/xt/author/pod-coverage.t create mode 100644 .build/UDufqIoogz/xt/author/pod-syntax.t create mode 100644 .build/UDufqIoogz/xt/author/synopsis.t create mode 100644 .build/UDufqIoogz/xt/author/test-version.t create mode 100644 .build/UDufqIoogz/xt/release/common_spelling.t create mode 100644 .build/UDufqIoogz/xt/release/pod-linkcheck.t create mode 100644 .build/UDufqIoogz/xt/release/unused-vars.t create mode 100644 .build/adCP70XCJ7/Changes create mode 100644 .build/adCP70XCJ7/INSTALL create mode 100644 .build/adCP70XCJ7/LICENSE create mode 100644 .build/adCP70XCJ7/MANIFEST create mode 100644 .build/adCP70XCJ7/META.json create mode 100644 .build/adCP70XCJ7/META.yml create mode 100644 .build/adCP70XCJ7/MYMETA.json create mode 100644 .build/adCP70XCJ7/MYMETA.yml create mode 100644 .build/adCP70XCJ7/Makefile create mode 100644 .build/adCP70XCJ7/Makefile.PL create mode 100644 .build/adCP70XCJ7/README create mode 100644 .build/adCP70XCJ7/README.md create mode 100644 .build/adCP70XCJ7/blib/arch/.exists create mode 100644 .build/adCP70XCJ7/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/adCP70XCJ7/blib/bin/.exists create mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/.exists create mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/adCP70XCJ7/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/adCP70XCJ7/blib/man1/.exists create mode 100644 .build/adCP70XCJ7/blib/man3/.exists create mode 100644 .build/adCP70XCJ7/blib/script/.exists create mode 100644 .build/adCP70XCJ7/cpanfile create mode 100644 .build/adCP70XCJ7/dist.ini create mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/adCP70XCJ7/pm_to_blib create mode 100644 .build/adCP70XCJ7/t/00-check-deps.t create mode 100644 .build/adCP70XCJ7/t/00-compile.t create mode 100644 .build/adCP70XCJ7/t/00-report-prereqs.dd create mode 100644 .build/adCP70XCJ7/t/00-report-prereqs.t create mode 100644 .build/adCP70XCJ7/t/01_unit_test.t create mode 100644 .build/adCP70XCJ7/t/02_smarty_test.t create mode 100644 .build/adCP70XCJ7/t/rc/.perlcriticrc create mode 100644 .build/adCP70XCJ7/t/rc/.perltidyrc create mode 100644 .build/adCP70XCJ7/xt/author/eol.t create mode 100644 .build/adCP70XCJ7/xt/author/mojibake.t create mode 100644 .build/adCP70XCJ7/xt/author/pod-coverage.t create mode 100644 .build/adCP70XCJ7/xt/author/pod-syntax.t create mode 100644 .build/adCP70XCJ7/xt/author/synopsis.t create mode 100644 .build/adCP70XCJ7/xt/author/test-version.t create mode 100644 .build/adCP70XCJ7/xt/release/common_spelling.t create mode 100644 .build/adCP70XCJ7/xt/release/pod-linkcheck.t create mode 100644 .build/adCP70XCJ7/xt/release/unused-vars.t create mode 100644 .build/g9VvV3ah9V/Changes create mode 100644 .build/g9VvV3ah9V/INSTALL create mode 100644 .build/g9VvV3ah9V/LICENSE create mode 100644 .build/g9VvV3ah9V/MANIFEST create mode 100644 .build/g9VvV3ah9V/META.json create mode 100644 .build/g9VvV3ah9V/META.yml create mode 100644 .build/g9VvV3ah9V/MYMETA.json create mode 100644 .build/g9VvV3ah9V/MYMETA.yml create mode 100644 .build/g9VvV3ah9V/Makefile create mode 100644 .build/g9VvV3ah9V/Makefile.PL create mode 100644 .build/g9VvV3ah9V/README create mode 100644 .build/g9VvV3ah9V/README.md create mode 100644 .build/g9VvV3ah9V/blib/arch/.exists create mode 100644 .build/g9VvV3ah9V/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/g9VvV3ah9V/blib/bin/.exists create mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/.exists create mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/g9VvV3ah9V/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/g9VvV3ah9V/blib/man1/.exists create mode 100644 .build/g9VvV3ah9V/blib/man3/.exists create mode 100644 .build/g9VvV3ah9V/blib/script/.exists create mode 100644 .build/g9VvV3ah9V/cpanfile create mode 100644 .build/g9VvV3ah9V/dist.ini create mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/g9VvV3ah9V/pm_to_blib create mode 100644 .build/g9VvV3ah9V/t/00-check-deps.t create mode 100644 .build/g9VvV3ah9V/t/00-compile.t create mode 100644 .build/g9VvV3ah9V/t/00-report-prereqs.dd create mode 100644 .build/g9VvV3ah9V/t/00-report-prereqs.t create mode 100644 .build/g9VvV3ah9V/t/01_unit_test.t create mode 100644 .build/g9VvV3ah9V/t/02_smarty_test.t create mode 100644 .build/g9VvV3ah9V/t/rc/.perlcriticrc create mode 100644 .build/g9VvV3ah9V/t/rc/.perltidyrc create mode 100644 .build/g9VvV3ah9V/xt/author/eol.t create mode 100644 .build/g9VvV3ah9V/xt/author/mojibake.t create mode 100644 .build/g9VvV3ah9V/xt/author/pod-coverage.t create mode 100644 .build/g9VvV3ah9V/xt/author/pod-syntax.t create mode 100644 .build/g9VvV3ah9V/xt/author/synopsis.t create mode 100644 .build/g9VvV3ah9V/xt/author/test-version.t create mode 100644 .build/g9VvV3ah9V/xt/release/common_spelling.t create mode 100644 .build/g9VvV3ah9V/xt/release/pod-linkcheck.t create mode 100644 .build/g9VvV3ah9V/xt/release/unused-vars.t create mode 100644 .build/lZoVwHl4Bh/Changes create mode 100644 .build/lZoVwHl4Bh/INSTALL create mode 100644 .build/lZoVwHl4Bh/LICENSE create mode 100644 .build/lZoVwHl4Bh/MANIFEST create mode 100644 .build/lZoVwHl4Bh/META.json create mode 100644 .build/lZoVwHl4Bh/META.yml create mode 100644 .build/lZoVwHl4Bh/MYMETA.json create mode 100644 .build/lZoVwHl4Bh/MYMETA.yml create mode 100644 .build/lZoVwHl4Bh/Makefile create mode 100644 .build/lZoVwHl4Bh/Makefile.PL create mode 100644 .build/lZoVwHl4Bh/README create mode 100644 .build/lZoVwHl4Bh/README.md create mode 100644 .build/lZoVwHl4Bh/blib/arch/.exists create mode 100644 .build/lZoVwHl4Bh/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/lZoVwHl4Bh/blib/bin/.exists create mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/.exists create mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/lZoVwHl4Bh/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/lZoVwHl4Bh/blib/man1/.exists create mode 100644 .build/lZoVwHl4Bh/blib/man3/.exists create mode 100644 .build/lZoVwHl4Bh/blib/script/.exists create mode 100644 .build/lZoVwHl4Bh/cpanfile create mode 100644 .build/lZoVwHl4Bh/dist.ini create mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/lZoVwHl4Bh/pm_to_blib create mode 100644 .build/lZoVwHl4Bh/t/00-check-deps.t create mode 100644 .build/lZoVwHl4Bh/t/00-compile.t create mode 100644 .build/lZoVwHl4Bh/t/00-report-prereqs.dd create mode 100644 .build/lZoVwHl4Bh/t/00-report-prereqs.t create mode 100644 .build/lZoVwHl4Bh/t/01_unit_test.t create mode 100644 .build/lZoVwHl4Bh/t/02_smarty_test.t create mode 100644 .build/lZoVwHl4Bh/t/rc/.perlcriticrc create mode 100644 .build/lZoVwHl4Bh/t/rc/.perltidyrc create mode 100644 .build/lZoVwHl4Bh/xt/author/eol.t create mode 100644 .build/lZoVwHl4Bh/xt/author/mojibake.t create mode 100644 .build/lZoVwHl4Bh/xt/author/pod-coverage.t create mode 100644 .build/lZoVwHl4Bh/xt/author/pod-syntax.t create mode 100644 .build/lZoVwHl4Bh/xt/author/synopsis.t create mode 100644 .build/lZoVwHl4Bh/xt/author/test-version.t create mode 100644 .build/lZoVwHl4Bh/xt/release/common_spelling.t create mode 100644 .build/lZoVwHl4Bh/xt/release/pod-linkcheck.t create mode 100644 .build/lZoVwHl4Bh/xt/release/unused-vars.t create mode 120000 .build/previous create mode 100644 .build/umAPEOCzJH/Changes create mode 100644 .build/umAPEOCzJH/INSTALL create mode 100644 .build/umAPEOCzJH/LICENSE create mode 100644 .build/umAPEOCzJH/MANIFEST create mode 100644 .build/umAPEOCzJH/META.json create mode 100644 .build/umAPEOCzJH/META.yml create mode 100644 .build/umAPEOCzJH/MYMETA.json create mode 100644 .build/umAPEOCzJH/MYMETA.yml create mode 100644 .build/umAPEOCzJH/Makefile create mode 100644 .build/umAPEOCzJH/Makefile.PL create mode 100644 .build/umAPEOCzJH/README create mode 100644 .build/umAPEOCzJH/README.md create mode 100644 .build/umAPEOCzJH/blib/arch/.exists create mode 100644 .build/umAPEOCzJH/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/umAPEOCzJH/blib/bin/.exists create mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/.exists create mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/umAPEOCzJH/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/umAPEOCzJH/blib/man1/.exists create mode 100644 .build/umAPEOCzJH/blib/man3/.exists create mode 100644 .build/umAPEOCzJH/blib/script/.exists create mode 100644 .build/umAPEOCzJH/cpanfile create mode 100644 .build/umAPEOCzJH/dist.ini create mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/umAPEOCzJH/pm_to_blib create mode 100644 .build/umAPEOCzJH/t/00-check-deps.t create mode 100644 .build/umAPEOCzJH/t/00-compile.t create mode 100644 .build/umAPEOCzJH/t/00-report-prereqs.dd create mode 100644 .build/umAPEOCzJH/t/00-report-prereqs.t create mode 100644 .build/umAPEOCzJH/t/01_unit_test.t create mode 100644 .build/umAPEOCzJH/t/02_smarty_test.t create mode 100644 .build/umAPEOCzJH/t/rc/.perlcriticrc create mode 100644 .build/umAPEOCzJH/t/rc/.perltidyrc create mode 100644 .build/umAPEOCzJH/xt/author/eol.t create mode 100644 .build/umAPEOCzJH/xt/author/mojibake.t create mode 100644 .build/umAPEOCzJH/xt/author/pod-coverage.t create mode 100644 .build/umAPEOCzJH/xt/author/pod-syntax.t create mode 100644 .build/umAPEOCzJH/xt/author/synopsis.t create mode 100644 .build/umAPEOCzJH/xt/author/test-version.t create mode 100644 .build/umAPEOCzJH/xt/release/common_spelling.t create mode 100644 .build/umAPEOCzJH/xt/release/pod-linkcheck.t create mode 100644 .build/umAPEOCzJH/xt/release/unused-vars.t create mode 100644 .build/vWF93r870W/Changes create mode 100644 .build/vWF93r870W/INSTALL create mode 100644 .build/vWF93r870W/LICENSE create mode 100644 .build/vWF93r870W/MANIFEST create mode 100644 .build/vWF93r870W/META.json create mode 100644 .build/vWF93r870W/META.yml create mode 100644 .build/vWF93r870W/MYMETA.json create mode 100644 .build/vWF93r870W/MYMETA.yml create mode 100644 .build/vWF93r870W/Makefile create mode 100644 .build/vWF93r870W/Makefile.PL create mode 100644 .build/vWF93r870W/README create mode 100644 .build/vWF93r870W/README.md create mode 100644 .build/vWF93r870W/blib/arch/.exists create mode 100644 .build/vWF93r870W/blib/arch/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/vWF93r870W/blib/bin/.exists create mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/.exists create mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/vWF93r870W/blib/lib/auto/WebService/Async/SmartyStreets/.exists create mode 100644 .build/vWF93r870W/blib/man1/.exists create mode 100644 .build/vWF93r870W/blib/man3/.exists create mode 100644 .build/vWF93r870W/blib/script/.exists create mode 100644 .build/vWF93r870W/cpanfile create mode 100644 .build/vWF93r870W/dist.ini create mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm create mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm create mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm create mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm create mode 100644 .build/vWF93r870W/pm_to_blib create mode 100644 .build/vWF93r870W/t/00-check-deps.t create mode 100644 .build/vWF93r870W/t/00-compile.t create mode 100644 .build/vWF93r870W/t/00-report-prereqs.dd create mode 100644 .build/vWF93r870W/t/00-report-prereqs.t create mode 100644 .build/vWF93r870W/t/01_unit_test.t create mode 100644 .build/vWF93r870W/t/02_smarty_test.t create mode 100644 .build/vWF93r870W/t/rc/.perlcriticrc create mode 100644 .build/vWF93r870W/t/rc/.perltidyrc create mode 100644 .build/vWF93r870W/xt/author/eol.t create mode 100644 .build/vWF93r870W/xt/author/mojibake.t create mode 100644 .build/vWF93r870W/xt/author/pod-coverage.t create mode 100644 .build/vWF93r870W/xt/author/pod-syntax.t create mode 100644 .build/vWF93r870W/xt/author/synopsis.t create mode 100644 .build/vWF93r870W/xt/author/test-version.t create mode 100644 .build/vWF93r870W/xt/release/common_spelling.t create mode 100644 .build/vWF93r870W/xt/release/pod-linkcheck.t create mode 100644 .build/vWF93r870W/xt/release/unused-vars.t diff --git a/.build/4BVDjxVREH/Changes b/.build/4BVDjxVREH/Changes new file mode 100644 index 0000000..da2e2a6 --- /dev/null +++ b/.build/4BVDjxVREH/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-04-04 07:39:58+00:00 UTC + + Pre-release version. Released as a proof of concept. diff --git a/.build/4BVDjxVREH/INSTALL b/.build/4BVDjxVREH/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/4BVDjxVREH/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/4BVDjxVREH/LICENSE b/.build/4BVDjxVREH/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/4BVDjxVREH/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/4BVDjxVREH/MANIFEST b/.build/4BVDjxVREH/MANIFEST new file mode 100644 index 0000000..516cd11 --- /dev/null +++ b/.build/4BVDjxVREH/MANIFEST @@ -0,0 +1,33 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +lib/WebService/Async/SmartyStreets/USA.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/4BVDjxVREH/META.json b/.build/4BVDjxVREH/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/4BVDjxVREH/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/4BVDjxVREH/META.yml b/.build/4BVDjxVREH/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/4BVDjxVREH/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/4BVDjxVREH/MYMETA.json b/.build/4BVDjxVREH/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/4BVDjxVREH/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/4BVDjxVREH/MYMETA.yml b/.build/4BVDjxVREH/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/4BVDjxVREH/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/4BVDjxVREH/Makefile b/.build/4BVDjxVREH/Makefile new file mode 100644 index 0000000..84285f2 --- /dev/null +++ b/.build/4BVDjxVREH/Makefile @@ -0,0 +1,939 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm \ + lib/WebService/Async/SmartyStreets/USA.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ + 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/4BVDjxVREH/Makefile.PL b/.build/4BVDjxVREH/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/4BVDjxVREH/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/4BVDjxVREH/README b/.build/4BVDjxVREH/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/4BVDjxVREH/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/4BVDjxVREH/README.md b/.build/4BVDjxVREH/README.md new file mode 100644 index 0000000..b2a7ab9 --- /dev/null +++ b/.build/4BVDjxVREH/README.md @@ -0,0 +1,277 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. + + +## verify + +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. + +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) + +args consists of the following parameters: + +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false + +## get_decoded_data + +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# AUTHOR + +Binary.com + diff --git a/.build/4BVDjxVREH/blib/arch/.exists b/.build/4BVDjxVREH/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/4BVDjxVREH/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/blib/bin/.exists b/.build/4BVDjxVREH/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/.exists b/.build/4BVDjxVREH/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..906e5a6 --- /dev/null +++ b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + # use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/lib/WebService/Async/SmartyStreets/International.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/International.pm similarity index 96% rename from lib/WebService/Async/SmartyStreets/International.pm rename to .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/International.pm index 961cf67..4de5dde 100644 --- a/lib/WebService/Async/SmartyStreets/International.pm +++ b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -1,5 +1,5 @@ package WebService::Async::SmartyStreets::International; - +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; use strict; use warnings; diff --git a/lib/WebService/Async/SmartyStreets/USA.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/USA.pm similarity index 96% rename from lib/WebService/Async/SmartyStreets/USA.pm rename to .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/USA.pm index 30db4b2..c029590 100644 --- a/lib/WebService/Async/SmartyStreets/USA.pm +++ b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/USA.pm @@ -1,5 +1,5 @@ package WebService::Async::SmartyStreets::USA; - +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; use strict; use warnings; diff --git a/.build/4BVDjxVREH/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/4BVDjxVREH/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/blib/man1/.exists b/.build/4BVDjxVREH/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/blib/man3/.exists b/.build/4BVDjxVREH/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/blib/script/.exists b/.build/4BVDjxVREH/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/cpanfile b/.build/4BVDjxVREH/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/4BVDjxVREH/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/4BVDjxVREH/dist.ini b/.build/4BVDjxVREH/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/4BVDjxVREH/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..906e5a6 --- /dev/null +++ b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + # use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/4BVDjxVREH/pm_to_blib b/.build/4BVDjxVREH/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/4BVDjxVREH/t/00-check-deps.t b/.build/4BVDjxVREH/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/4BVDjxVREH/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/4BVDjxVREH/t/00-compile.t b/.build/4BVDjxVREH/t/00-compile.t new file mode 100644 index 0000000..0df19f4 --- /dev/null +++ b/.build/4BVDjxVREH/t/00-compile.t @@ -0,0 +1,57 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm', + 'WebService/Async/SmartyStreets/USA.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/4BVDjxVREH/t/00-report-prereqs.dd b/.build/4BVDjxVREH/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/4BVDjxVREH/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/4BVDjxVREH/t/00-report-prereqs.t b/.build/4BVDjxVREH/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/4BVDjxVREH/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/4BVDjxVREH/t/01_unit_test.t b/.build/4BVDjxVREH/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/4BVDjxVREH/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/4BVDjxVREH/t/02_smarty_test.t b/.build/4BVDjxVREH/t/02_smarty_test.t new file mode 100644 index 0000000..d487ea7 --- /dev/null +++ b/.build/4BVDjxVREH/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::International; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets::International->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/4BVDjxVREH/t/rc/.perlcriticrc b/.build/4BVDjxVREH/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/4BVDjxVREH/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/4BVDjxVREH/t/rc/.perltidyrc b/.build/4BVDjxVREH/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/4BVDjxVREH/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/4BVDjxVREH/xt/author/eol.t b/.build/4BVDjxVREH/xt/author/eol.t new file mode 100644 index 0000000..31f0f67 --- /dev/null +++ b/.build/4BVDjxVREH/xt/author/eol.t @@ -0,0 +1,25 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 'lib/WebService/Async/SmartyStreets/USA.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/4BVDjxVREH/xt/author/mojibake.t b/.build/4BVDjxVREH/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/4BVDjxVREH/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/4BVDjxVREH/xt/author/pod-coverage.t b/.build/4BVDjxVREH/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/4BVDjxVREH/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/4BVDjxVREH/xt/author/pod-syntax.t b/.build/4BVDjxVREH/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/4BVDjxVREH/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/4BVDjxVREH/xt/author/synopsis.t b/.build/4BVDjxVREH/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/4BVDjxVREH/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/4BVDjxVREH/xt/author/test-version.t b/.build/4BVDjxVREH/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/4BVDjxVREH/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/4BVDjxVREH/xt/release/common_spelling.t b/.build/4BVDjxVREH/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/4BVDjxVREH/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/4BVDjxVREH/xt/release/pod-linkcheck.t b/.build/4BVDjxVREH/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/4BVDjxVREH/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/4BVDjxVREH/xt/release/unused-vars.t b/.build/4BVDjxVREH/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/4BVDjxVREH/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/.build/UDufqIoogz/Changes b/.build/UDufqIoogz/Changes new file mode 100644 index 0000000..bcabee8 --- /dev/null +++ b/.build/UDufqIoogz/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-04-04 07:36:49+00:00 UTC + + Pre-release version. Released as a proof of concept. diff --git a/.build/UDufqIoogz/INSTALL b/.build/UDufqIoogz/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/UDufqIoogz/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/UDufqIoogz/LICENSE b/.build/UDufqIoogz/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/UDufqIoogz/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/UDufqIoogz/MANIFEST b/.build/UDufqIoogz/MANIFEST new file mode 100644 index 0000000..516cd11 --- /dev/null +++ b/.build/UDufqIoogz/MANIFEST @@ -0,0 +1,33 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +lib/WebService/Async/SmartyStreets/USA.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/UDufqIoogz/META.json b/.build/UDufqIoogz/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/UDufqIoogz/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/UDufqIoogz/META.yml b/.build/UDufqIoogz/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/UDufqIoogz/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/UDufqIoogz/MYMETA.json b/.build/UDufqIoogz/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/UDufqIoogz/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/UDufqIoogz/MYMETA.yml b/.build/UDufqIoogz/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/UDufqIoogz/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/UDufqIoogz/Makefile b/.build/UDufqIoogz/Makefile new file mode 100644 index 0000000..84285f2 --- /dev/null +++ b/.build/UDufqIoogz/Makefile @@ -0,0 +1,939 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm \ + lib/WebService/Async/SmartyStreets/USA.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ + 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/UDufqIoogz/Makefile.PL b/.build/UDufqIoogz/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/UDufqIoogz/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/UDufqIoogz/README b/.build/UDufqIoogz/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/UDufqIoogz/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/UDufqIoogz/README.md b/.build/UDufqIoogz/README.md new file mode 100644 index 0000000..b2a7ab9 --- /dev/null +++ b/.build/UDufqIoogz/README.md @@ -0,0 +1,277 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. + + +## verify + +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. + +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) + +args consists of the following parameters: + +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false + +## get_decoded_data + +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# AUTHOR + +Binary.com + diff --git a/.build/UDufqIoogz/blib/arch/.exists b/.build/UDufqIoogz/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/UDufqIoogz/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/blib/bin/.exists b/.build/UDufqIoogz/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/.exists b/.build/UDufqIoogz/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..e5060c7 --- /dev/null +++ b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/UDufqIoogz/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/UDufqIoogz/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/blib/man1/.exists b/.build/UDufqIoogz/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/blib/man3/.exists b/.build/UDufqIoogz/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/blib/script/.exists b/.build/UDufqIoogz/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/cpanfile b/.build/UDufqIoogz/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/UDufqIoogz/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/UDufqIoogz/dist.ini b/.build/UDufqIoogz/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/UDufqIoogz/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..e5060c7 --- /dev/null +++ b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/UDufqIoogz/pm_to_blib b/.build/UDufqIoogz/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/UDufqIoogz/t/00-check-deps.t b/.build/UDufqIoogz/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/UDufqIoogz/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/UDufqIoogz/t/00-compile.t b/.build/UDufqIoogz/t/00-compile.t new file mode 100644 index 0000000..0df19f4 --- /dev/null +++ b/.build/UDufqIoogz/t/00-compile.t @@ -0,0 +1,57 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm', + 'WebService/Async/SmartyStreets/USA.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/UDufqIoogz/t/00-report-prereqs.dd b/.build/UDufqIoogz/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/UDufqIoogz/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/UDufqIoogz/t/00-report-prereqs.t b/.build/UDufqIoogz/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/UDufqIoogz/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/UDufqIoogz/t/01_unit_test.t b/.build/UDufqIoogz/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/UDufqIoogz/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/UDufqIoogz/t/02_smarty_test.t b/.build/UDufqIoogz/t/02_smarty_test.t new file mode 100644 index 0000000..d487ea7 --- /dev/null +++ b/.build/UDufqIoogz/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::International; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets::International->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/UDufqIoogz/t/rc/.perlcriticrc b/.build/UDufqIoogz/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/UDufqIoogz/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/UDufqIoogz/t/rc/.perltidyrc b/.build/UDufqIoogz/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/UDufqIoogz/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/UDufqIoogz/xt/author/eol.t b/.build/UDufqIoogz/xt/author/eol.t new file mode 100644 index 0000000..31f0f67 --- /dev/null +++ b/.build/UDufqIoogz/xt/author/eol.t @@ -0,0 +1,25 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 'lib/WebService/Async/SmartyStreets/USA.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/UDufqIoogz/xt/author/mojibake.t b/.build/UDufqIoogz/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/UDufqIoogz/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/UDufqIoogz/xt/author/pod-coverage.t b/.build/UDufqIoogz/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/UDufqIoogz/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/UDufqIoogz/xt/author/pod-syntax.t b/.build/UDufqIoogz/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/UDufqIoogz/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/UDufqIoogz/xt/author/synopsis.t b/.build/UDufqIoogz/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/UDufqIoogz/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/UDufqIoogz/xt/author/test-version.t b/.build/UDufqIoogz/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/UDufqIoogz/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/UDufqIoogz/xt/release/common_spelling.t b/.build/UDufqIoogz/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/UDufqIoogz/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/UDufqIoogz/xt/release/pod-linkcheck.t b/.build/UDufqIoogz/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/UDufqIoogz/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/UDufqIoogz/xt/release/unused-vars.t b/.build/UDufqIoogz/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/UDufqIoogz/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/.build/adCP70XCJ7/Changes b/.build/adCP70XCJ7/Changes new file mode 100644 index 0000000..6e973a0 --- /dev/null +++ b/.build/adCP70XCJ7/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-04-04 08:27:20+00:00 UTC + + Pre-release version. Released as a proof of concept. diff --git a/.build/adCP70XCJ7/INSTALL b/.build/adCP70XCJ7/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/adCP70XCJ7/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/adCP70XCJ7/LICENSE b/.build/adCP70XCJ7/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/adCP70XCJ7/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/adCP70XCJ7/MANIFEST b/.build/adCP70XCJ7/MANIFEST new file mode 100644 index 0000000..516cd11 --- /dev/null +++ b/.build/adCP70XCJ7/MANIFEST @@ -0,0 +1,33 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +lib/WebService/Async/SmartyStreets/USA.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/adCP70XCJ7/META.json b/.build/adCP70XCJ7/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/adCP70XCJ7/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/adCP70XCJ7/META.yml b/.build/adCP70XCJ7/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/adCP70XCJ7/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/adCP70XCJ7/MYMETA.json b/.build/adCP70XCJ7/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/adCP70XCJ7/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/adCP70XCJ7/MYMETA.yml b/.build/adCP70XCJ7/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/adCP70XCJ7/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/adCP70XCJ7/Makefile b/.build/adCP70XCJ7/Makefile new file mode 100644 index 0000000..84285f2 --- /dev/null +++ b/.build/adCP70XCJ7/Makefile @@ -0,0 +1,939 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm \ + lib/WebService/Async/SmartyStreets/USA.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ + 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/adCP70XCJ7/Makefile.PL b/.build/adCP70XCJ7/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/adCP70XCJ7/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/adCP70XCJ7/README b/.build/adCP70XCJ7/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/adCP70XCJ7/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/adCP70XCJ7/README.md b/.build/adCP70XCJ7/README.md new file mode 100644 index 0000000..b2a7ab9 --- /dev/null +++ b/.build/adCP70XCJ7/README.md @@ -0,0 +1,277 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. + + +## verify + +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. + +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) + +args consists of the following parameters: + +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false + +## get_decoded_data + +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# AUTHOR + +Binary.com + diff --git a/.build/adCP70XCJ7/blib/arch/.exists b/.build/adCP70XCJ7/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/adCP70XCJ7/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/blib/bin/.exists b/.build/adCP70XCJ7/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/.exists b/.build/adCP70XCJ7/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..766a62d --- /dev/null +++ b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,225 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token api_choice)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } +sub api_choice { shift->{api_choice} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + + my ($self, $api_choice, %args) = @_; + + my %valid_api_choice = ( + international => 'https://international-street.api.smartystreets.com/verify', + us => 'https://us-street.api.smartystreets.com/street-address', + ); + + die "Invalid API choice" unless ($valid_api_choice{$api_choice}); + + my $uri = URI->new($valid_api_choice{$api_choice}); + + $uri->query_param($_ => $args{$_}) for keys %args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + use Data::Dumper; +warn "HIIII: ".Dumper($decoded); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/adCP70XCJ7/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/blib/man1/.exists b/.build/adCP70XCJ7/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/blib/man3/.exists b/.build/adCP70XCJ7/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/blib/script/.exists b/.build/adCP70XCJ7/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/cpanfile b/.build/adCP70XCJ7/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/adCP70XCJ7/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/adCP70XCJ7/dist.ini b/.build/adCP70XCJ7/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/adCP70XCJ7/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..766a62d --- /dev/null +++ b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,225 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token api_choice)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } +sub api_choice { shift->{api_choice} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + + my ($self, $api_choice, %args) = @_; + + my %valid_api_choice = ( + international => 'https://international-street.api.smartystreets.com/verify', + us => 'https://us-street.api.smartystreets.com/street-address', + ); + + die "Invalid API choice" unless ($valid_api_choice{$api_choice}); + + my $uri = URI->new($valid_api_choice{$api_choice}); + + $uri->query_param($_ => $args{$_}) for keys %args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + use Data::Dumper; +warn "HIIII: ".Dumper($decoded); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/pm_to_blib b/.build/adCP70XCJ7/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/adCP70XCJ7/t/00-check-deps.t b/.build/adCP70XCJ7/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/adCP70XCJ7/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/adCP70XCJ7/t/00-compile.t b/.build/adCP70XCJ7/t/00-compile.t new file mode 100644 index 0000000..0df19f4 --- /dev/null +++ b/.build/adCP70XCJ7/t/00-compile.t @@ -0,0 +1,57 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm', + 'WebService/Async/SmartyStreets/USA.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/adCP70XCJ7/t/00-report-prereqs.dd b/.build/adCP70XCJ7/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/adCP70XCJ7/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/adCP70XCJ7/t/00-report-prereqs.t b/.build/adCP70XCJ7/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/adCP70XCJ7/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/adCP70XCJ7/t/01_unit_test.t b/.build/adCP70XCJ7/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/adCP70XCJ7/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/adCP70XCJ7/t/02_smarty_test.t b/.build/adCP70XCJ7/t/02_smarty_test.t new file mode 100644 index 0000000..d487ea7 --- /dev/null +++ b/.build/adCP70XCJ7/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::International; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets::International->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/adCP70XCJ7/t/rc/.perlcriticrc b/.build/adCP70XCJ7/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/adCP70XCJ7/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/adCP70XCJ7/t/rc/.perltidyrc b/.build/adCP70XCJ7/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/adCP70XCJ7/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/adCP70XCJ7/xt/author/eol.t b/.build/adCP70XCJ7/xt/author/eol.t new file mode 100644 index 0000000..31f0f67 --- /dev/null +++ b/.build/adCP70XCJ7/xt/author/eol.t @@ -0,0 +1,25 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 'lib/WebService/Async/SmartyStreets/USA.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/adCP70XCJ7/xt/author/mojibake.t b/.build/adCP70XCJ7/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/adCP70XCJ7/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/adCP70XCJ7/xt/author/pod-coverage.t b/.build/adCP70XCJ7/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/adCP70XCJ7/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/adCP70XCJ7/xt/author/pod-syntax.t b/.build/adCP70XCJ7/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/adCP70XCJ7/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/adCP70XCJ7/xt/author/synopsis.t b/.build/adCP70XCJ7/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/adCP70XCJ7/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/adCP70XCJ7/xt/author/test-version.t b/.build/adCP70XCJ7/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/adCP70XCJ7/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/adCP70XCJ7/xt/release/common_spelling.t b/.build/adCP70XCJ7/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/adCP70XCJ7/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/adCP70XCJ7/xt/release/pod-linkcheck.t b/.build/adCP70XCJ7/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/adCP70XCJ7/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/adCP70XCJ7/xt/release/unused-vars.t b/.build/adCP70XCJ7/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/adCP70XCJ7/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/.build/g9VvV3ah9V/Changes b/.build/g9VvV3ah9V/Changes new file mode 100644 index 0000000..5b7abf3 --- /dev/null +++ b/.build/g9VvV3ah9V/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-04-04 07:38:31+00:00 UTC + + Pre-release version. Released as a proof of concept. diff --git a/.build/g9VvV3ah9V/INSTALL b/.build/g9VvV3ah9V/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/g9VvV3ah9V/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/g9VvV3ah9V/LICENSE b/.build/g9VvV3ah9V/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/g9VvV3ah9V/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/g9VvV3ah9V/MANIFEST b/.build/g9VvV3ah9V/MANIFEST new file mode 100644 index 0000000..516cd11 --- /dev/null +++ b/.build/g9VvV3ah9V/MANIFEST @@ -0,0 +1,33 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +lib/WebService/Async/SmartyStreets/USA.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/g9VvV3ah9V/META.json b/.build/g9VvV3ah9V/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/g9VvV3ah9V/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/g9VvV3ah9V/META.yml b/.build/g9VvV3ah9V/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/g9VvV3ah9V/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/g9VvV3ah9V/MYMETA.json b/.build/g9VvV3ah9V/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/g9VvV3ah9V/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/g9VvV3ah9V/MYMETA.yml b/.build/g9VvV3ah9V/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/g9VvV3ah9V/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/g9VvV3ah9V/Makefile b/.build/g9VvV3ah9V/Makefile new file mode 100644 index 0000000..84285f2 --- /dev/null +++ b/.build/g9VvV3ah9V/Makefile @@ -0,0 +1,939 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm \ + lib/WebService/Async/SmartyStreets/USA.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ + 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/g9VvV3ah9V/Makefile.PL b/.build/g9VvV3ah9V/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/g9VvV3ah9V/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/g9VvV3ah9V/README b/.build/g9VvV3ah9V/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/g9VvV3ah9V/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/g9VvV3ah9V/README.md b/.build/g9VvV3ah9V/README.md new file mode 100644 index 0000000..b2a7ab9 --- /dev/null +++ b/.build/g9VvV3ah9V/README.md @@ -0,0 +1,277 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. + + +## verify + +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. + +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) + +args consists of the following parameters: + +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false + +## get_decoded_data + +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# AUTHOR + +Binary.com + diff --git a/.build/g9VvV3ah9V/blib/arch/.exists b/.build/g9VvV3ah9V/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/g9VvV3ah9V/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/blib/bin/.exists b/.build/g9VvV3ah9V/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/.exists b/.build/g9VvV3ah9V/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..906e5a6 --- /dev/null +++ b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + # use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/g9VvV3ah9V/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/blib/man1/.exists b/.build/g9VvV3ah9V/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/blib/man3/.exists b/.build/g9VvV3ah9V/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/blib/script/.exists b/.build/g9VvV3ah9V/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/cpanfile b/.build/g9VvV3ah9V/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/g9VvV3ah9V/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/dist.ini b/.build/g9VvV3ah9V/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/g9VvV3ah9V/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..906e5a6 --- /dev/null +++ b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + # use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/pm_to_blib b/.build/g9VvV3ah9V/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/g9VvV3ah9V/t/00-check-deps.t b/.build/g9VvV3ah9V/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/g9VvV3ah9V/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/g9VvV3ah9V/t/00-compile.t b/.build/g9VvV3ah9V/t/00-compile.t new file mode 100644 index 0000000..0df19f4 --- /dev/null +++ b/.build/g9VvV3ah9V/t/00-compile.t @@ -0,0 +1,57 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm', + 'WebService/Async/SmartyStreets/USA.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/g9VvV3ah9V/t/00-report-prereqs.dd b/.build/g9VvV3ah9V/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/g9VvV3ah9V/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/g9VvV3ah9V/t/00-report-prereqs.t b/.build/g9VvV3ah9V/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/g9VvV3ah9V/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/g9VvV3ah9V/t/01_unit_test.t b/.build/g9VvV3ah9V/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/g9VvV3ah9V/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/t/02_smarty_test.t b/.build/g9VvV3ah9V/t/02_smarty_test.t new file mode 100644 index 0000000..d487ea7 --- /dev/null +++ b/.build/g9VvV3ah9V/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::International; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets::International->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/g9VvV3ah9V/t/rc/.perlcriticrc b/.build/g9VvV3ah9V/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/g9VvV3ah9V/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/g9VvV3ah9V/t/rc/.perltidyrc b/.build/g9VvV3ah9V/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/g9VvV3ah9V/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/g9VvV3ah9V/xt/author/eol.t b/.build/g9VvV3ah9V/xt/author/eol.t new file mode 100644 index 0000000..31f0f67 --- /dev/null +++ b/.build/g9VvV3ah9V/xt/author/eol.t @@ -0,0 +1,25 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 'lib/WebService/Async/SmartyStreets/USA.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/g9VvV3ah9V/xt/author/mojibake.t b/.build/g9VvV3ah9V/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/g9VvV3ah9V/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/g9VvV3ah9V/xt/author/pod-coverage.t b/.build/g9VvV3ah9V/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/g9VvV3ah9V/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/g9VvV3ah9V/xt/author/pod-syntax.t b/.build/g9VvV3ah9V/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/g9VvV3ah9V/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/g9VvV3ah9V/xt/author/synopsis.t b/.build/g9VvV3ah9V/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/g9VvV3ah9V/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/g9VvV3ah9V/xt/author/test-version.t b/.build/g9VvV3ah9V/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/g9VvV3ah9V/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/g9VvV3ah9V/xt/release/common_spelling.t b/.build/g9VvV3ah9V/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/g9VvV3ah9V/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/g9VvV3ah9V/xt/release/pod-linkcheck.t b/.build/g9VvV3ah9V/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/g9VvV3ah9V/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/g9VvV3ah9V/xt/release/unused-vars.t b/.build/g9VvV3ah9V/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/g9VvV3ah9V/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/.build/lZoVwHl4Bh/Changes b/.build/lZoVwHl4Bh/Changes new file mode 100644 index 0000000..ba36f51 --- /dev/null +++ b/.build/lZoVwHl4Bh/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-04-04 07:42:19+00:00 UTC + + Pre-release version. Released as a proof of concept. diff --git a/.build/lZoVwHl4Bh/INSTALL b/.build/lZoVwHl4Bh/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/lZoVwHl4Bh/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/lZoVwHl4Bh/LICENSE b/.build/lZoVwHl4Bh/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/lZoVwHl4Bh/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/lZoVwHl4Bh/MANIFEST b/.build/lZoVwHl4Bh/MANIFEST new file mode 100644 index 0000000..516cd11 --- /dev/null +++ b/.build/lZoVwHl4Bh/MANIFEST @@ -0,0 +1,33 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +lib/WebService/Async/SmartyStreets/USA.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/lZoVwHl4Bh/META.json b/.build/lZoVwHl4Bh/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/lZoVwHl4Bh/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/lZoVwHl4Bh/META.yml b/.build/lZoVwHl4Bh/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/lZoVwHl4Bh/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/lZoVwHl4Bh/MYMETA.json b/.build/lZoVwHl4Bh/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/lZoVwHl4Bh/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/lZoVwHl4Bh/MYMETA.yml b/.build/lZoVwHl4Bh/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/lZoVwHl4Bh/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/lZoVwHl4Bh/Makefile b/.build/lZoVwHl4Bh/Makefile new file mode 100644 index 0000000..84285f2 --- /dev/null +++ b/.build/lZoVwHl4Bh/Makefile @@ -0,0 +1,939 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm \ + lib/WebService/Async/SmartyStreets/USA.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ + 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/lZoVwHl4Bh/Makefile.PL b/.build/lZoVwHl4Bh/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/lZoVwHl4Bh/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/lZoVwHl4Bh/README b/.build/lZoVwHl4Bh/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/lZoVwHl4Bh/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/lZoVwHl4Bh/README.md b/.build/lZoVwHl4Bh/README.md new file mode 100644 index 0000000..b2a7ab9 --- /dev/null +++ b/.build/lZoVwHl4Bh/README.md @@ -0,0 +1,277 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. + + +## verify + +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. + +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) + +args consists of the following parameters: + +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false + +## get_decoded_data + +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# AUTHOR + +Binary.com + diff --git a/.build/lZoVwHl4Bh/blib/arch/.exists b/.build/lZoVwHl4Bh/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/lZoVwHl4Bh/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/blib/bin/.exists b/.build/lZoVwHl4Bh/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/.exists b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..aee25a0 --- /dev/null +++ b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + use Data::Dumper; +warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/lZoVwHl4Bh/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/blib/man1/.exists b/.build/lZoVwHl4Bh/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/blib/man3/.exists b/.build/lZoVwHl4Bh/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/blib/script/.exists b/.build/lZoVwHl4Bh/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/cpanfile b/.build/lZoVwHl4Bh/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/lZoVwHl4Bh/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/dist.ini b/.build/lZoVwHl4Bh/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/lZoVwHl4Bh/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..aee25a0 --- /dev/null +++ b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + use Data::Dumper; +warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/pm_to_blib b/.build/lZoVwHl4Bh/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/lZoVwHl4Bh/t/00-check-deps.t b/.build/lZoVwHl4Bh/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/lZoVwHl4Bh/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/lZoVwHl4Bh/t/00-compile.t b/.build/lZoVwHl4Bh/t/00-compile.t new file mode 100644 index 0000000..0df19f4 --- /dev/null +++ b/.build/lZoVwHl4Bh/t/00-compile.t @@ -0,0 +1,57 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm', + 'WebService/Async/SmartyStreets/USA.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/lZoVwHl4Bh/t/00-report-prereqs.dd b/.build/lZoVwHl4Bh/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/lZoVwHl4Bh/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/t/00-report-prereqs.t b/.build/lZoVwHl4Bh/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/lZoVwHl4Bh/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/lZoVwHl4Bh/t/01_unit_test.t b/.build/lZoVwHl4Bh/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/lZoVwHl4Bh/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/t/02_smarty_test.t b/.build/lZoVwHl4Bh/t/02_smarty_test.t new file mode 100644 index 0000000..d487ea7 --- /dev/null +++ b/.build/lZoVwHl4Bh/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::International; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets::International->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/t/rc/.perlcriticrc b/.build/lZoVwHl4Bh/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/lZoVwHl4Bh/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/lZoVwHl4Bh/t/rc/.perltidyrc b/.build/lZoVwHl4Bh/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/lZoVwHl4Bh/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/lZoVwHl4Bh/xt/author/eol.t b/.build/lZoVwHl4Bh/xt/author/eol.t new file mode 100644 index 0000000..31f0f67 --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/author/eol.t @@ -0,0 +1,25 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 'lib/WebService/Async/SmartyStreets/USA.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/lZoVwHl4Bh/xt/author/mojibake.t b/.build/lZoVwHl4Bh/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/lZoVwHl4Bh/xt/author/pod-coverage.t b/.build/lZoVwHl4Bh/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/lZoVwHl4Bh/xt/author/pod-syntax.t b/.build/lZoVwHl4Bh/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/lZoVwHl4Bh/xt/author/synopsis.t b/.build/lZoVwHl4Bh/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/lZoVwHl4Bh/xt/author/test-version.t b/.build/lZoVwHl4Bh/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/lZoVwHl4Bh/xt/release/common_spelling.t b/.build/lZoVwHl4Bh/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/lZoVwHl4Bh/xt/release/pod-linkcheck.t b/.build/lZoVwHl4Bh/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/lZoVwHl4Bh/xt/release/unused-vars.t b/.build/lZoVwHl4Bh/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/lZoVwHl4Bh/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/.build/previous b/.build/previous new file mode 120000 index 0000000..a487817 --- /dev/null +++ b/.build/previous @@ -0,0 +1 @@ +adCP70XCJ7 \ No newline at end of file diff --git a/.build/umAPEOCzJH/Changes b/.build/umAPEOCzJH/Changes new file mode 100644 index 0000000..5763cd3 --- /dev/null +++ b/.build/umAPEOCzJH/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-04-04 07:41:26+00:00 UTC + + Pre-release version. Released as a proof of concept. diff --git a/.build/umAPEOCzJH/INSTALL b/.build/umAPEOCzJH/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/umAPEOCzJH/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/umAPEOCzJH/LICENSE b/.build/umAPEOCzJH/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/umAPEOCzJH/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/umAPEOCzJH/MANIFEST b/.build/umAPEOCzJH/MANIFEST new file mode 100644 index 0000000..516cd11 --- /dev/null +++ b/.build/umAPEOCzJH/MANIFEST @@ -0,0 +1,33 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +lib/WebService/Async/SmartyStreets/USA.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/umAPEOCzJH/META.json b/.build/umAPEOCzJH/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/umAPEOCzJH/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/umAPEOCzJH/META.yml b/.build/umAPEOCzJH/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/umAPEOCzJH/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/umAPEOCzJH/MYMETA.json b/.build/umAPEOCzJH/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/umAPEOCzJH/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/umAPEOCzJH/MYMETA.yml b/.build/umAPEOCzJH/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/umAPEOCzJH/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/umAPEOCzJH/Makefile b/.build/umAPEOCzJH/Makefile new file mode 100644 index 0000000..84285f2 --- /dev/null +++ b/.build/umAPEOCzJH/Makefile @@ -0,0 +1,939 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm \ + lib/WebService/Async/SmartyStreets/USA.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ + 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/umAPEOCzJH/Makefile.PL b/.build/umAPEOCzJH/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/umAPEOCzJH/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/umAPEOCzJH/README b/.build/umAPEOCzJH/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/umAPEOCzJH/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/umAPEOCzJH/README.md b/.build/umAPEOCzJH/README.md new file mode 100644 index 0000000..b2a7ab9 --- /dev/null +++ b/.build/umAPEOCzJH/README.md @@ -0,0 +1,277 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. + + +## verify + +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. + +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) + +args consists of the following parameters: + +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false + +## get_decoded_data + +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# AUTHOR + +Binary.com + diff --git a/.build/umAPEOCzJH/blib/arch/.exists b/.build/umAPEOCzJH/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/umAPEOCzJH/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/blib/bin/.exists b/.build/umAPEOCzJH/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/.exists b/.build/umAPEOCzJH/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..906e5a6 --- /dev/null +++ b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + # use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/umAPEOCzJH/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/blib/man1/.exists b/.build/umAPEOCzJH/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/blib/man3/.exists b/.build/umAPEOCzJH/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/blib/script/.exists b/.build/umAPEOCzJH/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/cpanfile b/.build/umAPEOCzJH/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/umAPEOCzJH/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/umAPEOCzJH/dist.ini b/.build/umAPEOCzJH/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/umAPEOCzJH/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..906e5a6 --- /dev/null +++ b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + # use Data::Dumper; +# warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/pm_to_blib b/.build/umAPEOCzJH/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/umAPEOCzJH/t/00-check-deps.t b/.build/umAPEOCzJH/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/umAPEOCzJH/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/umAPEOCzJH/t/00-compile.t b/.build/umAPEOCzJH/t/00-compile.t new file mode 100644 index 0000000..0df19f4 --- /dev/null +++ b/.build/umAPEOCzJH/t/00-compile.t @@ -0,0 +1,57 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm', + 'WebService/Async/SmartyStreets/USA.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/umAPEOCzJH/t/00-report-prereqs.dd b/.build/umAPEOCzJH/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/umAPEOCzJH/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/umAPEOCzJH/t/00-report-prereqs.t b/.build/umAPEOCzJH/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/umAPEOCzJH/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/umAPEOCzJH/t/01_unit_test.t b/.build/umAPEOCzJH/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/umAPEOCzJH/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/umAPEOCzJH/t/02_smarty_test.t b/.build/umAPEOCzJH/t/02_smarty_test.t new file mode 100644 index 0000000..d487ea7 --- /dev/null +++ b/.build/umAPEOCzJH/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::International; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets::International->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/umAPEOCzJH/t/rc/.perlcriticrc b/.build/umAPEOCzJH/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/umAPEOCzJH/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/umAPEOCzJH/t/rc/.perltidyrc b/.build/umAPEOCzJH/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/umAPEOCzJH/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/umAPEOCzJH/xt/author/eol.t b/.build/umAPEOCzJH/xt/author/eol.t new file mode 100644 index 0000000..31f0f67 --- /dev/null +++ b/.build/umAPEOCzJH/xt/author/eol.t @@ -0,0 +1,25 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 'lib/WebService/Async/SmartyStreets/USA.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/umAPEOCzJH/xt/author/mojibake.t b/.build/umAPEOCzJH/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/umAPEOCzJH/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/umAPEOCzJH/xt/author/pod-coverage.t b/.build/umAPEOCzJH/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/umAPEOCzJH/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/umAPEOCzJH/xt/author/pod-syntax.t b/.build/umAPEOCzJH/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/umAPEOCzJH/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/umAPEOCzJH/xt/author/synopsis.t b/.build/umAPEOCzJH/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/umAPEOCzJH/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/umAPEOCzJH/xt/author/test-version.t b/.build/umAPEOCzJH/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/umAPEOCzJH/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/umAPEOCzJH/xt/release/common_spelling.t b/.build/umAPEOCzJH/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/umAPEOCzJH/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/umAPEOCzJH/xt/release/pod-linkcheck.t b/.build/umAPEOCzJH/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/umAPEOCzJH/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/umAPEOCzJH/xt/release/unused-vars.t b/.build/umAPEOCzJH/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/umAPEOCzJH/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/.build/vWF93r870W/Changes b/.build/vWF93r870W/Changes new file mode 100644 index 0000000..939e30f --- /dev/null +++ b/.build/vWF93r870W/Changes @@ -0,0 +1,5 @@ +Revision history for WebService-Async-SmartyStreets + +0.001 2019-04-04 07:14:05+00:00 UTC + + Pre-release version. Released as a proof of concept. diff --git a/.build/vWF93r870W/INSTALL b/.build/vWF93r870W/INSTALL new file mode 100644 index 0000000..8a141e8 --- /dev/null +++ b/.build/vWF93r870W/INSTALL @@ -0,0 +1,43 @@ +This is the Perl distribution WebService-Async-SmartyStreets. + +Installing WebService-Async-SmartyStreets is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm WebService::Async::SmartyStreets + +If it does not have permission to install modules to the current perl, cpanm +will automatically set up and install to a local::lib in your home directory. +See the local::lib documentation (https://metacpan.org/pod/local::lib) for +details on enabling it in your environment. + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan WebService::Async::SmartyStreets + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Makefile.PL + % make && make test + +Then install it: + + % make install + +If your perl is system-managed, you can create a local::lib in your home +directory to install modules to. For details, see the local::lib documentation: +https://metacpan.org/pod/local::lib + +## Documentation + +WebService-Async-SmartyStreets documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc WebService::Async::SmartyStreets diff --git a/.build/vWF93r870W/LICENSE b/.build/vWF93r870W/LICENSE new file mode 100644 index 0000000..10b08c8 --- /dev/null +++ b/.build/vWF93r870W/LICENSE @@ -0,0 +1,379 @@ +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + +Terms of the Perl programming language system itself + +a) the GNU General Public License as published by the Free + Software Foundation; either version 1, or (at your option) any + later version, or +b) the "Artistic License" + +--- The GNU General Public License, Version 1, February 1989 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The GNU General Public License, Version 1, February 1989 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation's +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and `show +c'; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Artistic License 1.0 --- + +This software is Copyright (c) 2019 by binary.com. + +This is free software, licensed under: + + The Artistic License 1.0 + +The Artistic License + +Preamble + +The intent of this document is to state the conditions under which a Package +may be copied, such that the Copyright Holder maintains some semblance of +artistic control over the development of the package, while giving the users of +the package the right to use and distribute the Package in a more-or-less +customary fashion, plus the right to make reasonable modifications. + +Definitions: + + - "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through + textual modification. + - "Standard Version" refers to such a Package if it has not been modified, + or has been modified in accordance with the wishes of the Copyright + Holder. + - "Copyright Holder" is whoever is named in the copyright or copyrights for + the package. + - "You" is you, if you're thinking about copying or distributing this Package. + - "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will + not be required to justify it to the Copyright Holder, but only to the + computing community at large as a market that must bear the fee.) + - "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that + recipients of the item may redistribute it under the same conditions they + received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived +from the Public Domain or from the Copyright Holder. A Package modified in such +a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that +you insert a prominent notice in each changed file stating how and when you +changed that file, and provided that you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or an + equivalent medium, or placing the modifications on a major archive site + such as ftp.uu.net, or by allowing the Copyright Holder to include your + modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable +form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard + names, and clearly documenting the differences in manual pages (or + equivalent), together with instructions on where to get the Standard + Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. You +may not charge a fee for this Package itself. However, you may distribute this +Package in aggregate with other (possibly commercial) programs as part of a +larger (possibly commercial) software distribution provided that you do not +advertise this Package as a product of your own. + +6. The scripts and library files supplied as input to or produced as output +from the programs of this Package do not automatically fall under the copyright +of this Package, but belong to whomever generated them, and may be sold +commercially, and may be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not +be considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +The End + diff --git a/.build/vWF93r870W/MANIFEST b/.build/vWF93r870W/MANIFEST new file mode 100644 index 0000000..516cd11 --- /dev/null +++ b/.build/vWF93r870W/MANIFEST @@ -0,0 +1,33 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +Changes +INSTALL +LICENSE +MANIFEST +META.json +META.yml +Makefile.PL +README +README.md +cpanfile +dist.ini +lib/WebService/Async/SmartyStreets.pm +lib/WebService/Async/SmartyStreets/Address.pm +lib/WebService/Async/SmartyStreets/International.pm +lib/WebService/Async/SmartyStreets/USA.pm +t/00-check-deps.t +t/00-compile.t +t/00-report-prereqs.dd +t/00-report-prereqs.t +t/01_unit_test.t +t/02_smarty_test.t +t/rc/.perlcriticrc +t/rc/.perltidyrc +xt/author/eol.t +xt/author/mojibake.t +xt/author/pod-coverage.t +xt/author/pod-syntax.t +xt/author/synopsis.t +xt/author/test-version.t +xt/release/common_spelling.t +xt/release/pod-linkcheck.t +xt/release/unused-vars.t diff --git a/.build/vWF93r870W/META.json b/.build/vWF93r870W/META.json new file mode 100644 index 0000000..92c14b4 --- /dev/null +++ b/.build/vWF93r870W/META.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : 2 + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "perl" : "5.014000" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} + diff --git a/.build/vWF93r870W/META.yml b/.build/vWF93r870W/META.yml new file mode 100644 index 0000000..c09c92b --- /dev/null +++ b/.build/vWF93r870W/META.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' + perl: '5.014000' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/vWF93r870W/MYMETA.json b/.build/vWF93r870W/MYMETA.json new file mode 100644 index 0000000..5841be1 --- /dev/null +++ b/.build/vWF93r870W/MYMETA.json @@ -0,0 +1,82 @@ +{ + "abstract" : "Access SmartyStreet API", + "author" : [ + "binary.com " + ], + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "WebService-Async-SmartyStreets", + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.64" + } + }, + "develop" : { + "requires" : { + "Pod::Coverage::TrustPod" : "0", + "Test::EOL" : "0", + "Test::Mojibake" : "0", + "Test::More" : "0.88", + "Test::Pod" : "1.41", + "Test::Pod::Coverage" : "1.08", + "Test::Pod::LinkCheck" : "0", + "Test::Synopsis" : "0", + "Test::Version" : "1" + } + }, + "runtime" : { + "requires" : { + "Future::AsyncAwait" : "0.21", + "IO::Async::SSL" : "0", + "Net::Async::HTTP" : "0.44", + "indirect" : "0", + "mro" : "0", + "parent" : "0", + "perl" : "5.014000" + } + }, + "test" : { + "recommends" : { + "CPAN::Meta" : "2.120900" + }, + "requires" : { + "ExtUtils::MakeMaker" : "0", + "File::Spec" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", + "Test::CheckDeps" : "0.010", + "Test::FailWarnings" : "0", + "Test::Fatal" : "0", + "Test::More" : "0.94", + "Test::Warn" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" + }, + "repository" : { + "type" : "git", + "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", + "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" + } + }, + "version" : "0.001", + "x_generated_by_perl" : "v5.26.2", + "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" +} diff --git a/.build/vWF93r870W/MYMETA.yml b/.build/vWF93r870W/MYMETA.yml new file mode 100644 index 0000000..2dd7ffb --- /dev/null +++ b/.build/vWF93r870W/MYMETA.yml @@ -0,0 +1,37 @@ +--- +abstract: 'Access SmartyStreet API' +author: + - 'binary.com ' +build_requires: + ExtUtils::MakeMaker: '0' + File::Spec: '0' + IO::Handle: '0' + IPC::Open3: '0' + Test::CheckDeps: '0.010' + Test::FailWarnings: '0' + Test::Fatal: '0' + Test::More: '0.94' + Test::Warn: '0' +configure_requires: + ExtUtils::MakeMaker: '6.64' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: WebService-Async-SmartyStreets +requires: + Future::AsyncAwait: '0.21' + IO::Async::SSL: '0' + Net::Async::HTTP: '0.44' + indirect: '0' + mro: '0' + parent: '0' + perl: '5.014000' +resources: + bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues + repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git +version: '0.001' +x_generated_by_perl: v5.26.2 +x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/vWF93r870W/Makefile b/.build/vWF93r870W/Makefile new file mode 100644 index 0000000..84285f2 --- /dev/null +++ b/.build/vWF93r870W/Makefile @@ -0,0 +1,939 @@ +# This Makefile is for the WebService::Async::SmartyStreets extension to perl. +# +# It was generated automatically by MakeMaker version +# 7.32 (Revision: 73200) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: () +# + +# MakeMaker Parameters: + +# ABSTRACT => q[Access SmartyStreet API] +# AUTHOR => [q[binary.com ]] +# BUILD_REQUIRES => { } +# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } +# DISTNAME => q[WebService-Async-SmartyStreets] +# LICENSE => q[perl] +# MIN_PERL_VERSION => q[5.014000] +# NAME => q[WebService::Async::SmartyStreets] +# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } +# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } +# VERSION => q[0.001] +# test => { TESTS=>q[t/*.t] } + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). +# They may have been overridden via Makefile.PL or on the command line. +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +DLEXT = so +DLSRC = dl_dlopen.xs +EXE_EXT = +FULL_AR = /usr/bin/ar +LD = cc +LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector +LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib +LIBC = libc-2.13.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 3.2.0-5-amd64 +RANLIB = : +SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 +SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux +SO = so +VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux +VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +DFSEP = $(DIRFILESEP) +NAME = WebService::Async::SmartyStreets +NAME_SYM = WebService_Async_SmartyStreets +VERSION = 0.001 +VERSION_MACRO = VERSION +VERSION_SYM = 0_001 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.001 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1 +MAN3EXT = 3perl +INSTALLDIRS = site +INSTALL_BASE = /home/git/regentmarkets/cpan/local +DESTDIR = +PREFIX = $(INSTALL_BASE) +INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(INSTALL_BASE)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(INSTALL_BASE)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(INSTALL_BASE)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLSITESCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) +INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin +DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) +INSTALLMAN1DIR = none +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = none +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 +PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = Makefile.old +MAKE_APERL_FILE = Makefile.aperl +PERLMAINCC = $(CC) +PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE +PERL = "/home/git/binary-com/perl/bin/perl" +FULLPERL = "/home/git/binary-com/perl/bin/perl" +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_DIR = 755 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm +MM_VERSION = 7.32 +MM_REVISION = 73200 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +MAKE = make +FULLEXT = WebService/Async/SmartyStreets +BASEEXT = SmartyStreets +PARENT_NAME = WebService::Async +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic +BOOTDEP = + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/WebService/Async +INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVEDEP = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ + lib/WebService/Async/SmartyStreets/Address.pm \ + lib/WebService/Async/SmartyStreets/International.pm \ + lib/WebService/Async/SmartyStreets/USA.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 7.32 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(TRUE) +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- +EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- +FALSE = false +TRUE = true +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- +DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- +UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- +WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- +MACROSTART = +MACROEND = +USEMAKEFILE = -f +FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- +CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- + + +# --- MakeMaker makemakerdflt section: +makemakerdflt : all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = WebService-Async-SmartyStreets +DISTVNAME = WebService-Async-SmartyStreets-0.001 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + INSTALL_BASE="$(INSTALL_BASE)"\ + PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ + PASTHRU_INC='$(INC) $(PASTHRU_INC)' + + +# --- MakeMaker special_targets section: +.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) blibdirs + $(NOECHO) $(NOOP) + +help : + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker blibdirs section: +blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists + $(NOECHO) $(NOOP) + +# Backwards compat with 6.18 through 6.25 +blibdirs.ts : blibdirs + $(NOECHO) $(NOOP) + +$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) + $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists + +$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHLIB) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) + $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists + +$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) + $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists + +$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) + $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists + +$(INST_BIN)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_BIN) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) + $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists + +$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_SCRIPT) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) + $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists + +$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN1DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) + $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists + +$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) + $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists + + + +# --- MakeMaker linkext section: + +linkext :: dynamic + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all config + $(NOECHO) $(NOOP) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + - $(RM_F) \ + $(BASEEXT).bso $(BASEEXT).def \ + $(BASEEXT).exp $(BASEEXT).x \ + $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ + $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ + *$(LIB_EXT) *$(OBJ_EXT) \ + *perl.core MYMETA.json \ + MYMETA.yml blibdirs.ts \ + core core.*perl.*.? \ + core.[0-9] core.[0-9][0-9] \ + core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ + core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ + mon.out perl \ + perl$(EXE_EXT) perl.exe \ + perlmain.c pm_to_blib \ + pm_to_blib.ts so_locations \ + tmon.out + - $(RM_RF) \ + blib + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +# so clean is forced to complete before realclean_subdirs runs +realclean_subdirs : clean + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: +# Delete temporary files (via clean) and also delete dist files +realclean purge :: realclean_subdirs + - $(RM_F) \ + $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(RM_RF) \ + $(DISTVNAME) + + +# --- MakeMaker metafile section: +metafile : create_distdir + $(NOECHO) $(ECHO) Generating META.yml + $(NOECHO) $(ECHO) '---' > META_new.yml + $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'author:' >> META_new.yml + $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml + $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml + $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml + $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml + $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml + $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml + $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml + $(NOECHO) $(ECHO) ' directory:' >> META_new.yml + $(NOECHO) $(ECHO) ' - t' >> META_new.yml + $(NOECHO) $(ECHO) ' - inc' >> META_new.yml + $(NOECHO) $(ECHO) 'requires:' >> META_new.yml + $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml + $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml + $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml + -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml + $(NOECHO) $(ECHO) Generating META.json + $(NOECHO) $(ECHO) '{' > META_new.json + $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json + $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json + $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json + $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json + $(NOECHO) $(ECHO) ' ],' >> META_new.json + $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json + $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json + $(NOECHO) $(ECHO) ' "t",' >> META_new.json + $(NOECHO) $(ECHO) ' "inc"' >> META_new.json + $(NOECHO) $(ECHO) ' ]' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json + $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json + $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json + $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' }' >> META_new.json + $(NOECHO) $(ECHO) ' },' >> META_new.json + $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json + $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json + $(NOECHO) $(ECHO) '}' >> META_new.json + -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json + + +# --- MakeMaker signature section: +signature : + cpansign -s + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' + $(POSTOP) + + +# --- MakeMaker distdir section: +create_distdir : + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + +distdir : create_distdir distmeta + $(NOECHO) $(NOOP) + + + +# --- MakeMaker dist_test section: +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + + +# --- MakeMaker dist_ci section: +ci : + $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ + -e 'print(qq{Executing $(CI) @all\n});' \ + -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ + -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ + -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- + + +# --- MakeMaker distmeta section: +distmeta : create_distdir metafile + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ + -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ + -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ + -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- + + + +# --- MakeMaker distsignature section: +distsignature : distmeta + $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ + -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- + $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE + cd $(DISTVNAME) && cpansign -s + + + +# --- MakeMaker install section: + +install :: pure_install doc_install + $(NOECHO) $(NOOP) + +install_perl :: pure_perl_install doc_perl_install + $(NOECHO) $(NOOP) + +install_site :: pure_site_install doc_site_install + $(NOECHO) $(NOOP) + +install_vendor :: pure_vendor_install doc_vendor_install + $(NOECHO) $(NOOP) + +pure_install :: pure_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +doc_install :: doc_$(INSTALLDIRS)_install + $(NOECHO) $(NOOP) + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(SITEARCHEXP)/auto/$(FULLEXT)" + + +pure_site_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + "$(PERL_ARCHLIB)/auto/$(FULLEXT)" + +pure_vendor_install :: all + $(NOECHO) $(MOD_INSTALL) \ + read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ + write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ + "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" + + +doc_perl_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLPRIVLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_site_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + +doc_vendor_install :: all + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" + -$(NOECHO) $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLVENDORLIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> "$(DESTINSTALLARCHLIB)/perllocal.pod" + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + $(NOECHO) $(NOOP) + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE : + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) + -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) + $(PERLRUN) Makefile.PL + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" + $(FALSE) + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = "/home/git/binary-com/perl/bin/perl" +MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" + +$(MAP_TARGET) :: $(MAKE_APERL_FILE) + $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR="" \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= + + +# --- MakeMaker test section: +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + $(NOECHO) $(NOOP) + +test :: $(TEST_TYPE) + $(NOECHO) $(NOOP) + +# Occasionally we may face this degenerate target: +test_ : test_dynamic + $(NOECHO) $(NOOP) + +subdirs-test_dynamic :: dynamic pure_all + +test_dynamic :: subdirs-test_dynamic + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: dynamic pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +subdirs-test_static :: static pure_all + +test_static :: subdirs-test_static + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_static :: static pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd : + $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd + $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) + $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ + 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ + 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ + 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ + 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' + $(NOECHO) $(TOUCH) pm_to_blib + + +# --- MakeMaker selfdocument section: + +# here so even if top_targets is overridden, these will still be defined +# gmake will silently still work if any are .PHONY-ed but nmake won't + +static :: + $(NOECHO) $(NOOP) + +dynamic :: + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + + +# --- MakeMaker postamble section: + + +# End. diff --git a/.build/vWF93r870W/Makefile.PL b/.build/vWF93r870W/Makefile.PL new file mode 100644 index 0000000..37cc16f --- /dev/null +++ b/.build/vWF93r870W/Makefile.PL @@ -0,0 +1,73 @@ +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. +use strict; +use warnings; + +use 5.014000; + +use ExtUtils::MakeMaker 6.48; + +my %WriteMakefileArgs = ( + "ABSTRACT" => "Access SmartyStreet API", + "AUTHOR" => "binary.com ", + "CONFIGURE_REQUIRES" => { + "ExtUtils::MakeMaker" => "6.64" + }, + "DISTNAME" => "WebService-Async-SmartyStreets", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.014000", + "NAME" => "WebService::Async::SmartyStreets", + "PREREQ_PM" => { + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "Net::Async::HTTP" => "0.44", + "indirect" => 0, + "mro" => 0, + "parent" => 0 + }, + "TEST_REQUIRES" => { + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0 + }, + "VERSION" => "0.001", + "test" => { + "TESTS" => "t/*.t" + } +); + + +my %FallbackPrereqs = ( + "ExtUtils::MakeMaker" => 0, + "File::Spec" => 0, + "Future::AsyncAwait" => "0.21", + "IO::Async::SSL" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "Net::Async::HTTP" => "0.44", + "Test::CheckDeps" => "0.010", + "Test::FailWarnings" => 0, + "Test::Fatal" => 0, + "Test::More" => "0.94", + "Test::Warn" => 0, + "indirect" => 0, + "mro" => 0, + "parent" => 0 +); + + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; +} + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; + +WriteMakefile(%WriteMakefileArgs); diff --git a/.build/vWF93r870W/README b/.build/vWF93r870W/README new file mode 100644 index 0000000..6a6732a --- /dev/null +++ b/.build/vWF93r870W/README @@ -0,0 +1,12 @@ +This archive contains the distribution WebService-Async-SmartyStreets, +version 0.001: + + Access SmartyStreet API + +This software is copyright (c) 2019 by binary.com. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + + +This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/vWF93r870W/README.md b/.build/vWF93r870W/README.md new file mode 100644 index 0000000..b2a7ab9 --- /dev/null +++ b/.build/vWF93r870W/README.md @@ -0,0 +1,277 @@ +# NAME + +WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API + +# VERSION + +version 0.001 + +# SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +# DESCRIPTION + +This module parses the response by SmartyStreets API into an object to access them. + +## Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +## Sample SmartyStreets API response + + [ + { + "address1": "Hainichener Str. 64", + "address2": "09599 Freiberg", + "components": { + "administrative_area": "Sachsen", + "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", + "country_iso_3": "DEU", + "locality": "Freiberg", + "postal_code": "09599", + "postal_code_short": "09599", + "premise": "64", + "premise_number": "64", + "thoroughfare": "Hainichener Str.", + "thoroughfare_name": "Hainichenerstr.", + "thoroughfare_trailing_type": "Str." + }, + "metadata": { + "latitude": 50.92221, + "longitude": 13.32259, + "geocode_precision": "Premise", + "max_geocode_precision": "DeliveryPoint", + "address_format": "thoroughfare premise|postal_code locality" + }, + "analysis": { + "verification_status": "Verified", + "address_precision": "Premise", + "max_address_precision": "DeliveryPoint" + } + } + ] + +# Attributes + +All attributes that is parsed includes: + +- input_id +- organization +- latitude +- longitude +- geocode_precision +- max_geocode_precision +- address_format +- verification_status +- address_precision +- max_address_precision + +For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) + +# Methods + +## new + +Creates the object. takes in hashrefs + +## status_at_least + +Checks if the returned response at least hits a certain level (in terms of score). + +## accuracy_at_least + +Checks if the returned response at least hits a certain accuracy (in terms of score). +Instantly returns 0 if the status is lower than 'partial'. + +# Attributes + +## input_id + +Returns the input_id parsed. + +## organization + +Returns the organization parsed. + +## latitude + +Returns the latitude parsed. + +## longitude + +Returns the latitude parsed. + +## geocode_precision + +Returns the geocode_precision parsed. + +## max_geocode_precision + +Returns the max_geocode_precision parsed. + +## address_format + +Returns the value of address_format parsed. + +## status + +Returns the value of verification_status parsed. + +The value returned should be either: + +- none +- ambiguous +- partial +- verified + +## address_precision + +Returns the value of address_precision parsed. + +## max_address_precision + +Returns the value of max_address_precision parsed. + +--- + +# NAME + +WebService::Async::SmartyStreets; + +# SYNOPSIS + + my $loop = IO::Async::Loop->new; + $loop->add( + my $ss = WebService::Async::SmartyStreets->new( + # International token + auth_id => '...' + token => '...' + ) + ); + (async sub { + my $addr = await $ss->verify_international( + # insert address here + ); + })->get; + +# DESCRIPTION + +This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` + +# METHODS + +## configure + +configures the class with auth_id and token. + +## auth_id + +Returns auth_id. + +## token + +Returns token. + +## ua + +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. + + +## verify + +Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. + +Takes the following named parameters: +- uri - URI address (in string) +- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) + +args consists of the following parameters: + +- country - country +- address1 - address line 1 +- address2 - address line 2 +- organization - name of organization (usually building names) +- locality - city +- administrative_area - state +- postal_code - post code +- geocode - true or false + +## get_decoded_data + +Parses the response give by SmartyStreets + +More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) + +Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` + +## get_uri + +Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` + +--- + +# NAME + +WebService::Async::SmartyStreets::International + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# NAME + +WebService::Async::SmartyStreets::USA + +# Description + +This module is a child of `WebService::Async::SmartyStreets` + +## get_uri + +Overrides get_uri in `WebService::Async::SmartyStreets` +Returns URI in string + +## verify + +Overrides verify in `WebService::Async::SmartyStreets` +Gets the input arguments and pass it to the parents + +# AUTHOR + +Binary.com + diff --git a/.build/vWF93r870W/blib/arch/.exists b/.build/vWF93r870W/blib/arch/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/vWF93r870W/blib/arch/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/blib/bin/.exists b/.build/vWF93r870W/blib/bin/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/.exists b/.build/vWF93r870W/blib/lib/WebService/Async/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..aee25a0 --- /dev/null +++ b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + use Data::Dumper; +warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/vWF93r870W/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/vWF93r870W/blib/lib/auto/WebService/Async/SmartyStreets/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/blib/man1/.exists b/.build/vWF93r870W/blib/man1/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/blib/man3/.exists b/.build/vWF93r870W/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/blib/script/.exists b/.build/vWF93r870W/blib/script/.exists new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/cpanfile b/.build/vWF93r870W/cpanfile new file mode 100644 index 0000000..d9703de --- /dev/null +++ b/.build/vWF93r870W/cpanfile @@ -0,0 +1,17 @@ +requires 'mro', 0; +requires 'indirect', 0; +requires 'parent', 0; +requires 'Net::Async::HTTP', '>= 0.44'; +requires 'IO::Async::SSL', 0; +requires 'Future::AsyncAwait', '>= 0.21'; + +on configure => sub { + requires 'ExtUtils::MakeMaker', '6.64'; +}; + +on test => sub { + requires 'Test::More'; + requires 'Test::Warn'; + requires 'Test::FailWarnings'; + requires 'Test::Fatal'; +}; \ No newline at end of file diff --git a/.build/vWF93r870W/dist.ini b/.build/vWF93r870W/dist.ini new file mode 100644 index 0000000..1df65a7 --- /dev/null +++ b/.build/vWF93r870W/dist.ini @@ -0,0 +1,67 @@ +name = WebService-Async-SmartyStreets +author = binary.com +license = Perl_5 +copyright_holder = binary.com +copyright_year = 2019 +main_module = lib/WebService/Async/SmartyStreets.pm + +[Git::GatherDir] +exclude_filename = Makefile.PL +include_dotfiles = 1 +[PruneCruft] +except = t/rc/\.perl*rc$ +[ManifestSkip] +[MetaYAML] +[License] +[Readme] +[MakeMaker] +eumm_version = 6.48 +prereq_fatal = 1 +[ExecDir] +[ShareDir] +dir = share +[Manifest] +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] +[Prereqs::FromCPANfile] +[Prereqs / BuildRequires] +perl = 5.014000 +[CheckPrereqsIndexed] +[CheckExtraTests] +[VersionFromModule] +[PodVersion] +[PkgVersion] +[GitHub::Meta] +repo = binary-com/perl-WebService-Async-SmartyStreets +[InstallGuide] +[MetaJSON] +[InsertExample] +[PodSyntaxTests] +[MojibakeTests] +[Test::CheckDeps] +[Test::Compile] +[Test::Synopsis] +[Test::EOL] +[Test::Version] +[Test::Pod::LinkCheck] +[PodCoverageTests] +[Test::UnusedVars] +[Test::ReportPrereqs] +[SpellingCommonMistakesTests] +[CopyFilesFromBuild] +copy = Makefile.PL +;[Git::Check] +;allow_dirty = dist.ini +;changelog = Changes +[Git::Commit] +allow_dirty = dist.ini +allow_dirty = cpanfile +allow_dirty = Changes +allow_dirty = Makefile.PL +[Git::Tag] +tag_format = v%v +tag_message = Tag v%v for CPAN release +[ReversionOnRelease] +[NextRelease] +[InstallRelease] \ No newline at end of file diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm new file mode 100644 index 0000000..aee25a0 --- /dev/null +++ b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm @@ -0,0 +1,215 @@ +package WebService::Async::SmartyStreets; +# ABSTRACT: Access SmartyStreet API + +use strict; +use warnings; + +our $VERSION = '0.001'; + +=head1 NAME + +WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + IO::Async::Loop->new->add($ss); + + my $addr = $ss->verify(, geocode => 'true')->get; + print($addr->status); + +=head1 DESCRIPTION + +This module calls the SmartyStreets API and parse the response to L + +The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. + +For further information, please check the following child modules as they accesses different API: + + L + + This module accesses the SmartyStreets International Street Address API + + L + + This module accesses the SmartyStreets US Street Address API + +Note that this module uses L + +=over 4 + +=cut + +use parent qw(IO::Async::Notifier); + +use mro; +no indirect; + +use URI; +use URI::QueryParam; + +use Future::AsyncAwait; +use Net::Async::HTTP; +use JSON::MaybeUTF8 qw(:v1); + +use WebService::Async::SmartyStreets::Address; + +use Log::Any qw($log); + +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + +=head2 verify + +Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. + + my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; + +Please consider using the "verify" subroutine in L or L instead + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +async sub verify { + use Data::Dumper; +warn "HI: ".Dumper(@_); + my ($self, $args) = @_; + my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); + + $uri->query_param($_ => $args{$_}) for keys %$args; + $uri->query_param( + 'auth-id' => ($self->auth_id // die 'need an auth ID'), + ); + $uri->query_param( + 'auth-token' => ($self->token // die 'need an auth token'), + ); + $uri->query_param( + 'input-id' => $self->next_id, + ); + $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; +} + +=head2 get_decoded_data + +Calls the SmartyStreets API then decode and parses the response give by SmartyStreets + + my $decoded = await get_decoded_data($self, $uri) + +Takes the following named parameters: + +=over 4 + +=item * C - URI address that the process will make the call to + +=back + +More information on the response can be seen in L + +Returns an arrayref of hashrefs which the keys corresponds to L + +=cut + +async sub get_decoded_data { + my $self = shift; + my $uri = shift; + + my $res = await $self->ua->GET($uri); + my $response = decode_json_utf8($res->decoded_content); + + return $response; +} + +1; diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm new file mode 100644 index 0000000..49730e5 --- /dev/null +++ b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm @@ -0,0 +1,207 @@ +package WebService::Async::SmartyStreets::Address; +$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; +use strict; +use warnings; + +=HEAD + +WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API + +=head1 VERSION + +version 0.001 + +=head1 SYNOPSIS + + use WebService::Async::SmartyStreets::Address; + # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address + my $response = WebService::Async::SmartyStreets::Address->new( + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + # Accessing the attributes + print ($response->status); + +=head1 DESCRIPTION + +represents (parses) the return response from SmartyStreets API in an object + +=head2 Construction + + WebService::Async::SmartyStreets::Address->new( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + +=over 4 + +=cut + +sub new { + my ($class, %args) = @_; + bless \%args, $class +} + +=head2 input_id + +Returns the value of the input_id + +Example usage: + + $obj->input_id; + +=cut + +sub input_id { shift->{input_id} } + +=head2 organization + +Returns the value of the organization + +=cut + +sub organization { shift->{organization} } + +=head2 latitude + +Returns the value of the latitude + +=cut + +sub latitude { shift->{metadata}{latitude} } + +=head2 longitude + +Returns the value of the longitude + +=cut + +sub longitude { shift->{metadata}{longitude} } + +=head2 geocode_precision + +Returns the value of the geocode_precision + +=cut + +sub geocode_precision { shift->{metadata}{geocode_precision} } + +=head2 max_geocode_precision + +Returns the value of the max_geocode_precision + +=cut + +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } + +=head2 address_format + +Returns the value of the address_format + +=cut + +sub address_format { shift->{metadata}{address_format} } + +=head2 status + +Returns the value of the status + +=cut + +sub status { lc shift->{analysis}{verification_status} // ''} + +=head2 address_precision + +Returns the value of the address_precision + +=cut + +sub address_precision { lc shift->{analysis}{address_precision} // ''} + +=head2 max_address_precision + +Returns the value of the max_address_precision + +=cut + +sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} + +# Maps each verification response into a score +my %status_level = ( + none => 0, + partial => 1, + ambiguous => 2, + verified => 3 +); + +=head2 status_at_least + +Checks if the returned response at least hits a certain level (in terms of score) + +Example Usage: + + $obj->status_at_least("partial"); + +Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") + +Returns 1 or 0 + +=cut + +sub status_at_least { + my ($self, $target) = @_; + my $target_level = $status_level{$target} // die 'unknown target status ' . $target; + my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; + return $actual_level >= $target_level; +} + +my %accuracy_level = ( + none => 0, + administrative_area => 1, + locality => 2, + thoroughfare => 3, + premise => 4, + delivery_point => 5, +); + +=pod + +accuracy_at_least + +Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) + +Example Usage: + + $obj->accuracy_at_least("premise"); + +Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") + +Returns 0 if the status is lower than 'partial' +Returns 1 or 0 + +=cut + +sub accuracy_at_least { + my ($self, $target) = @_; + return 0 unless $self->status_at_least('partial'); + my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; + my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; + return $actual_level >= $target_level; +} + +1; + diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm new file mode 100644 index 0000000..4de5dde --- /dev/null +++ b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::International; +$WebService::Async::SmartyStreets::International::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::International->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the International Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://international-street.api.smartystreets.com/verify'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm new file mode 100644 index 0000000..c029590 --- /dev/null +++ b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm @@ -0,0 +1,85 @@ +package WebService::Async::SmartyStreets::USA; +$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; +use strict; +use warnings; + +use parent 'WebService::Async::SmartyStreets'; + +=HEAD + +WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address + +=head1 SYNOPSIS + + my $ss = WebService::Async::SmartyStreets::US->new( + auth_id => #insert auth_id, + token => #insert token, + ); + +=head1 DESCRIPTION + +This module is the child module of L + +This module specifically accesses the US Street Address API + +For further information, please check L for more subroutines that can be accessed + +=over 4 + +=cut + +=head2 verify + +Overrides verify in L + +Gets the input arguments and pass it to the parents + + my $addr = $ss->verify(, geocode => 'true')->get; + +Takes the following named parameters: + +=over 4 + +=item * C - URI address (URL address to be pointed at) + +=item * C - address parameters in a list of keys and values (See L) + +=back + +args consists of the following parameters: + +=over 4 + +=item * C - country + +=item * C - address line 1 + +=item * C - address line 2 + +=item * C - name of organization (usually building names) + +=item * C - city + +=item * C - state + +=item * C - post code + +=item * C - true or false + +=back + +Returns L object + +=cut + +=cut + +sub verify { + my $self = shift; + my $uri = 'https://us-street.api.smartystreets.com/street-address'; + my %args = @_; + + $self->SUPER::verify($uri, %args); +} + +1; \ No newline at end of file diff --git a/.build/vWF93r870W/pm_to_blib b/.build/vWF93r870W/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/.build/vWF93r870W/t/00-check-deps.t b/.build/vWF93r870W/t/00-check-deps.t new file mode 100644 index 0000000..e5e3679 --- /dev/null +++ b/.build/vWF93r870W/t/00-check-deps.t @@ -0,0 +1,17 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 + +use Test::More 0.94; +use Test::CheckDeps 0.010; + + +check_dependencies('classic'); + + +if (0) { + BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; +} + +done_testing; diff --git a/.build/vWF93r870W/t/00-compile.t b/.build/vWF93r870W/t/00-compile.t new file mode 100644 index 0000000..0df19f4 --- /dev/null +++ b/.build/vWF93r870W/t/00-compile.t @@ -0,0 +1,57 @@ +use 5.006; +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 + +use Test::More; + +plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); + +my @module_files = ( + 'WebService/Async/SmartyStreets.pm', + 'WebService/Async/SmartyStreets/Address.pm', + 'WebService/Async/SmartyStreets/International.pm', + 'WebService/Async/SmartyStreets/USA.pm' +); + + + +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; + +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) +{ + # see L + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ + and not eval { require blib; blib->VERSION('1.01') }; + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; + } +} + + + +is(scalar(@warnings), 0, 'no warnings found') + or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; + + diff --git a/.build/vWF93r870W/t/00-report-prereqs.dd b/.build/vWF93r870W/t/00-report-prereqs.dd new file mode 100644 index 0000000..fcee60e --- /dev/null +++ b/.build/vWF93r870W/t/00-report-prereqs.dd @@ -0,0 +1,53 @@ +do { my $x = { + 'build' => { + 'requires' => { + 'perl' => '5.014000' + } + }, + 'configure' => { + 'requires' => { + 'ExtUtils::MakeMaker' => '6.64' + } + }, + 'develop' => { + 'requires' => { + 'Pod::Coverage::TrustPod' => '0', + 'Test::EOL' => '0', + 'Test::Mojibake' => '0', + 'Test::More' => '0.88', + 'Test::Pod' => '1.41', + 'Test::Pod::Coverage' => '1.08', + 'Test::Pod::LinkCheck' => '0', + 'Test::Synopsis' => '0', + 'Test::Version' => '1' + } + }, + 'runtime' => { + 'requires' => { + 'Future::AsyncAwait' => '0.21', + 'IO::Async::SSL' => '0', + 'Net::Async::HTTP' => '0.44', + 'indirect' => '0', + 'mro' => '0', + 'parent' => '0' + } + }, + 'test' => { + 'recommends' => { + 'CPAN::Meta' => '2.120900' + }, + 'requires' => { + 'ExtUtils::MakeMaker' => '0', + 'File::Spec' => '0', + 'IO::Handle' => '0', + 'IPC::Open3' => '0', + 'Test::CheckDeps' => '0.010', + 'Test::FailWarnings' => '0', + 'Test::Fatal' => '0', + 'Test::More' => '0.94', + 'Test::Warn' => '0' + } + } + }; + $x; + } \ No newline at end of file diff --git a/.build/vWF93r870W/t/00-report-prereqs.t b/.build/vWF93r870W/t/00-report-prereqs.t new file mode 100644 index 0000000..e338372 --- /dev/null +++ b/.build/vWF93r870W/t/00-report-prereqs.t @@ -0,0 +1,183 @@ +#!perl + +use strict; +use warnings; + +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 + +use Test::More tests => 1; + +use ExtUtils::MakeMaker; +use File::Spec; + +# from $version::LAX +my $lax_version_re = + qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? + | + (?:\.[0-9]+) (?:_[0-9]+)? + ) | (?: + v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? + | + (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? + ) + )/x; + +# hide optional CPAN::Meta modules from prereq scanner +# and check if they are available +my $cpan_meta = "CPAN::Meta"; +my $cpan_meta_pre = "CPAN::Meta::Prereqs"; +my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic + +# Verify requirements? +my $DO_VERIFY_PREREQS = 1; + +sub _max { + my $max = shift; + $max = ( $_ > $max ) ? $_ : $max for @_; + return $max; +} + +sub _merge_prereqs { + my ($collector, $prereqs) = @_; + + # CPAN::Meta::Prereqs object + if (ref $collector eq $cpan_meta_pre) { + return $collector->with_merged_prereqs( + CPAN::Meta::Prereqs->new( $prereqs ) + ); + } + + # Raw hashrefs + for my $phase ( keys %$prereqs ) { + for my $type ( keys %{ $prereqs->{$phase} } ) { + for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { + $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; + } + } + } + + return $collector; +} + +my @include = qw( + +); + +my @exclude = qw( + +); + +# Add static prereqs to the included modules list +my $static_prereqs = do 't/00-report-prereqs.dd'; + +# Merge all prereqs (either with ::Prereqs or a hashref) +my $full_prereqs = _merge_prereqs( + ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), + $static_prereqs +); + +# Add dynamic prereqs to the included modules list (if we can) +my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; +if ( $source && $HAS_CPAN_META + && (my $meta = eval { CPAN::Meta->load_file($source) } ) +) { + $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); +} +else { + $source = 'static metadata'; +} + +my @full_reports; +my @dep_errors; +my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; + +# Add static includes into a fake section +for my $mod (@include) { + $req_hash->{other}{modules}{$mod} = 0; +} + +for my $phase ( qw(configure build test runtime develop other) ) { + next unless $req_hash->{$phase}; + next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); + + for my $type ( qw(requires recommends suggests conflicts modules) ) { + next unless $req_hash->{$phase}{$type}; + + my $title = ucfirst($phase).' '.ucfirst($type); + my @reports = [qw/Module Want Have/]; + + for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { + next if $mod eq 'perl'; + next if grep { $_ eq $mod } @exclude; + + my $file = $mod; + $file =~ s{::}{/}g; + $file .= ".pm"; + my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; + + my $want = $req_hash->{$phase}{$type}{$mod}; + $want = "undef" unless defined $want; + $want = "any" if !$want && $want == 0; + + my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; + + if ($prefix) { + my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); + $have = "undef" unless defined $have; + push @reports, [$mod, $want, $have]; + + if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { + if ( $have !~ /\A$lax_version_re\z/ ) { + push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; + } + elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { + push @dep_errors, "$mod version '$have' is not in required range '$want'"; + } + } + } + else { + push @reports, [$mod, $want, "missing"]; + + if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { + push @dep_errors, "$mod is not installed ($req_string)"; + } + } + } + + if ( @reports ) { + push @full_reports, "=== $title ===\n\n"; + + my $ml = _max( map { length $_->[0] } @reports ); + my $wl = _max( map { length $_->[1] } @reports ); + my $hl = _max( map { length $_->[2] } @reports ); + + if ($type eq 'modules') { + splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; + } + else { + splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; + push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; + } + + push @full_reports, "\n"; + } + } +} + +if ( @full_reports ) { + diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; +} + +if ( @dep_errors ) { + diag join("\n", + "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", + "The following REQUIRED prerequisites were not satisfied:\n", + @dep_errors, + "\n" + ); +} + +pass; + +# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/vWF93r870W/t/01_unit_test.t b/.build/vWF93r870W/t/01_unit_test.t new file mode 100644 index 0000000..7657d0c --- /dev/null +++ b/.build/vWF93r870W/t/01_unit_test.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use Test::More; +use WebService::Async::SmartyStreets::Address; + +subtest 'Parsing test' => sub { + my %dummy_data = ( + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }); + + my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); + + # Checks if the data is correctly parsed + is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); + is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); + is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); + is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); + is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); + is ($parsed_data->status, "partial", "status is correctly parsed"); + # Checks if data can be retrieved if it is not passed in + is ($parsed_data->address_format, undef, "address_format is undef"); + + # Check if status check is correct + is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); + is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + +}; + +done_testing; \ No newline at end of file diff --git a/.build/vWF93r870W/t/02_smarty_test.t b/.build/vWF93r870W/t/02_smarty_test.t new file mode 100644 index 0000000..d487ea7 --- /dev/null +++ b/.build/vWF93r870W/t/02_smarty_test.t @@ -0,0 +1,73 @@ +use strict; +use warnings; +use Future; +use Test::More; +use Test::MockModule; +use WebService::Async::SmartyStreets::International; +use JSON::MaybeXS qw( encode_json ); +use Future::AsyncAwait; + +my $user_agent = Test::MockModule->new('Net::Async::HTTP'); +$user_agent->mock( + GET => sub { + return Future->done(); + }); + +my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); +$mock_ss->mock( + auth_id => sub { + return 1; + }, + + token => sub { + return 1; + }, + + get_decoded_data => sub{ + my $data = [{ + input_id => 12345, + organization => 'Beenary', + metadata => { + latitude => 101.2131, + longitude => 180.1223, + geocode_precision => "Premise", + }, + analysis => { + verification_status => "Partial", + address_precision => "Premise", + }, + } + ]; + return Future->done($data); + }); + + +subtest "Call SmartyStreets" => sub { + my $ss = WebService::Async::SmartyStreets::International->new( + # this function is mocked, so the values doesnt matter + auth_id => '...', + token => '...' + ); + + my $addr = $ss->verify( + address1 => 'Jalan 1223 Jamse Bndo 012', + address2 => '03/03', + locality => 'Sukabumi', + administrative_area => 'JB', + postal_code => '43145', + country => 'Indonesia', + geocode => 'true', + )->get(); + + # Check if status check is correct + is ($addr->status_at_least('none'), 1, "Verification score is correct"); + is ($addr->status_at_least('verified'), '', "Verification score is correct"); + + # Check if address accuracy level check is correct + is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); + is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + + +}; + +done_testing(); \ No newline at end of file diff --git a/.build/vWF93r870W/t/rc/.perlcriticrc b/.build/vWF93r870W/t/rc/.perlcriticrc new file mode 100644 index 0000000..dba5c2e --- /dev/null +++ b/.build/vWF93r870W/t/rc/.perlcriticrc @@ -0,0 +1,23 @@ +severity = 4 +criticism-fatal = 1 +color = 1 +include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport +exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules + +[TestingAndDebugging::RequireUseWarnings] +equivalent_modules=MooseX::Singleton Mojo::Base + +[Subroutines::RequireArgUnpacking] +short_subroutine_statements=3 + +[TestingAndDebugging::ProhibitNoStrict] +allow=refs + +[CodeLayout::RequireTidyCode] +perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc + +[ErrorHandling::RequireCheckingReturnValueOfEval] +severity=4 + +[TestingAndDebugging::RequireUseStrict] +equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/vWF93r870W/t/rc/.perltidyrc b/.build/vWF93r870W/t/rc/.perltidyrc new file mode 100644 index 0000000..3a6cfa1 --- /dev/null +++ b/.build/vWF93r870W/t/rc/.perltidyrc @@ -0,0 +1,63 @@ +#line length; keep it quite short so that lists of arguments to subs +#are wrapped +--maximum-line-length=150 + +#Cuddled else +-ce + +#Stack Closing Tokens +#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens +#"The manual shows how all of these vertical tightness controls may be +#applied independently to each type of non-block opening and opening token." +--stack-closing-tokens + +## Similarly for opening. +--stack-opening-tokens + +#4 char wide tabs instead of spaces for indentation. +-i=4 + +#Horizontal Tightness +#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness +#parentheses if ((my $len_tab = length($tabstr)) > 0) +-pt=2 + +#square brackets $width = $col[$j + $k] - $col[$j]; +-sbt=2 + +#braces $width = $col[$j + $k] - $col[$j]; +-bt=2 + +#block braces map { $_ => -M $_ } grep { /\.deb$/ } +-bbt=0 + +#no space in front of semi-colons in a for loop +--nospace-for-semicolon + +#no outdenting of long quotes +#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes +--no-outdent-long-quotes + +--add-semicolons + +#always break a new line after a semi-colon +--want-break-after=";" + +#all hash key/values on a separate line +--comma-arrow-breakpoints=0 + +#No newlines before comments +-nbbc + +--no-outdent-long-lines + +#do not outdent labels +--no-outdent-labels + +--check-syntax + +--indent-spaced-block-comments + +#4 charachter if its breaks the line +--continuation-indentation=4 + diff --git a/.build/vWF93r870W/xt/author/eol.t b/.build/vWF93r870W/xt/author/eol.t new file mode 100644 index 0000000..31f0f67 --- /dev/null +++ b/.build/vWF93r870W/xt/author/eol.t @@ -0,0 +1,25 @@ +use strict; +use warnings; + +# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 + +use Test::More 0.88; +use Test::EOL; + +my @files = ( + 'lib/WebService/Async/SmartyStreets.pm', + 'lib/WebService/Async/SmartyStreets/Address.pm', + 'lib/WebService/Async/SmartyStreets/International.pm', + 'lib/WebService/Async/SmartyStreets/USA.pm', + 't/00-check-deps.t', + 't/00-compile.t', + 't/00-report-prereqs.dd', + 't/00-report-prereqs.t', + 't/01_unit_test.t', + 't/02_smarty_test.t', + 't/rc/.perlcriticrc', + 't/rc/.perltidyrc' +); + +eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; +done_testing; diff --git a/.build/vWF93r870W/xt/author/mojibake.t b/.build/vWF93r870W/xt/author/mojibake.t new file mode 100644 index 0000000..5ef161e --- /dev/null +++ b/.build/vWF93r870W/xt/author/mojibake.t @@ -0,0 +1,9 @@ +#!perl + +use strict; +use warnings qw(all); + +use Test::More; +use Test::Mojibake; + +all_files_encoding_ok(); diff --git a/.build/vWF93r870W/xt/author/pod-coverage.t b/.build/vWF93r870W/xt/author/pod-coverage.t new file mode 100644 index 0000000..66b3b64 --- /dev/null +++ b/.build/vWF93r870W/xt/author/pod-coverage.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/vWF93r870W/xt/author/pod-syntax.t b/.build/vWF93r870W/xt/author/pod-syntax.t new file mode 100644 index 0000000..e563e5d --- /dev/null +++ b/.build/vWF93r870W/xt/author/pod-syntax.t @@ -0,0 +1,7 @@ +#!perl +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff --git a/.build/vWF93r870W/xt/author/synopsis.t b/.build/vWF93r870W/xt/author/synopsis.t new file mode 100644 index 0000000..3e03427 --- /dev/null +++ b/.build/vWF93r870W/xt/author/synopsis.t @@ -0,0 +1,5 @@ +#!perl + +use Test::Synopsis; + +all_synopsis_ok(); diff --git a/.build/vWF93r870W/xt/author/test-version.t b/.build/vWF93r870W/xt/author/test-version.t new file mode 100644 index 0000000..247ba9a --- /dev/null +++ b/.build/vWF93r870W/xt/author/test-version.t @@ -0,0 +1,23 @@ +use strict; +use warnings; +use Test::More; + +# generated by Dist::Zilla::Plugin::Test::Version 1.09 +use Test::Version; + +my @imports = qw( version_all_ok ); + +my $params = { + is_strict => 0, + has_version => 1, + multiple => 0, + +}; + +push @imports, $params + if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); + +Test::Version->import(@imports); + +version_all_ok; +done_testing; diff --git a/.build/vWF93r870W/xt/release/common_spelling.t b/.build/vWF93r870W/xt/release/common_spelling.t new file mode 100644 index 0000000..7aed722 --- /dev/null +++ b/.build/vWF93r870W/xt/release/common_spelling.t @@ -0,0 +1,11 @@ +#!/usr/bin/perl +use strict; use warnings; + +use Test::More; + +eval "use Test::Pod::Spelling::CommonMistakes"; +if ( $@ ) { + plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; +} else { + all_pod_files_ok(); +} diff --git a/.build/vWF93r870W/xt/release/pod-linkcheck.t b/.build/vWF93r870W/xt/release/pod-linkcheck.t new file mode 100644 index 0000000..00602db --- /dev/null +++ b/.build/vWF93r870W/xt/release/pod-linkcheck.t @@ -0,0 +1,20 @@ +#!perl + +use strict; +use warnings; +use Test::More; + +foreach my $env_skip ( qw( + SKIP_POD_LINKCHECK +) ){ + plan skip_all => "\$ENV{$env_skip} is set, skipping" + if $ENV{$env_skip}; +} + +eval "use Test::Pod::LinkCheck"; +if ( $@ ) { + plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; +} +else { + Test::Pod::LinkCheck->new->all_pod_ok; +} diff --git a/.build/vWF93r870W/xt/release/unused-vars.t b/.build/vWF93r870W/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/.build/vWF93r870W/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 3cc850e..ea29850 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -12,9 +12,10 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th =head1 SYNOPSIS - my $ss = WebService::Async::SmartyStreets::International->new( + my $ss = WebService::Async::SmartyStreets->new( auth_id => #insert auth_id, token => #insert token, + api_choice => #international or us, ); IO::Async::Loop->new->add($ss); @@ -25,18 +26,6 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th This module calls the SmartyStreets API and parse the response to L -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - Note that this module uses L =over 4 @@ -77,7 +66,7 @@ Takes the following named parameters: sub configure { my ($self, %args) = @_; - for my $k (qw(auth_id token)) { + for my $k (qw(auth_id token api_choice)) { $self->{$k} = delete $args{$k} if exists $args{$k}; } $self->next::method(%args); @@ -85,6 +74,7 @@ sub configure { sub auth_id { shift->{auth_id} } sub token { shift->{token} } +sub api_choice { shift->{api_choice} } sub next_id { ++(shift->{id} //= 'AA00000000'); @@ -157,8 +147,18 @@ Returns L object =cut async sub verify { - my ($self, $uri_string, %args) = @_; - my $uri = URI->new($uri_string); + + my ($self, $api_choice, %args) = @_; + + my %valid_api_choice = ( + international => 'https://international-street.api.smartystreets.com/verify', + us => 'https://us-street.api.smartystreets.com/street-address', + ); + + $api_choice //= 'international'; + die "Invalid API choice" unless ($valid_api_choice{$api_choice}); + + my $uri = URI->new($valid_api_choice{$api_choice}); $uri->query_param($_ => $args{$_}) for keys %args; $uri->query_param( @@ -172,6 +172,7 @@ async sub verify { ); $log->tracef('GET %s', '' . $uri); my $decoded = await get_decoded_data($self, $uri); + $log->tracef('=> %s', $decoded); return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; } From e023812a09a7d5926931a3e2ab799500c23a187c Mon Sep 17 00:00:00 2001 From: Nobody User Date: Thu, 4 Apr 2019 08:38:30 +0000 Subject: [PATCH 38/55] remove build file --- .build/4BVDjxVREH/Changes | 5 - .build/4BVDjxVREH/INSTALL | 43 - .build/4BVDjxVREH/LICENSE | 379 ------- .build/4BVDjxVREH/MANIFEST | 33 - .build/4BVDjxVREH/META.json | 82 -- .build/4BVDjxVREH/META.yml | 37 - .build/4BVDjxVREH/MYMETA.json | 82 -- .build/4BVDjxVREH/MYMETA.yml | 37 - .build/4BVDjxVREH/Makefile | 939 ------------------ .build/4BVDjxVREH/Makefile.PL | 73 -- .build/4BVDjxVREH/README | 12 - .build/4BVDjxVREH/README.md | 277 ------ .build/4BVDjxVREH/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/4BVDjxVREH/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/4BVDjxVREH/blib/man1/.exists | 0 .build/4BVDjxVREH/blib/man3/.exists | 0 .build/4BVDjxVREH/blib/script/.exists | 0 .build/4BVDjxVREH/cpanfile | 17 - .build/4BVDjxVREH/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .build/4BVDjxVREH/pm_to_blib | 0 .build/4BVDjxVREH/t/00-check-deps.t | 17 - .build/4BVDjxVREH/t/00-compile.t | 57 -- .build/4BVDjxVREH/t/00-report-prereqs.dd | 53 - .build/4BVDjxVREH/t/00-report-prereqs.t | 183 ---- .build/4BVDjxVREH/t/01_unit_test.t | 42 - .build/4BVDjxVREH/t/02_smarty_test.t | 73 -- .build/4BVDjxVREH/t/rc/.perlcriticrc | 23 - .build/4BVDjxVREH/t/rc/.perltidyrc | 63 -- .build/4BVDjxVREH/xt/author/eol.t | 25 - .build/4BVDjxVREH/xt/author/mojibake.t | 9 - .build/4BVDjxVREH/xt/author/pod-coverage.t | 7 - .build/4BVDjxVREH/xt/author/pod-syntax.t | 7 - .build/4BVDjxVREH/xt/author/synopsis.t | 5 - .build/4BVDjxVREH/xt/author/test-version.t | 23 - .../4BVDjxVREH/xt/release/common_spelling.t | 11 - .build/4BVDjxVREH/xt/release/pod-linkcheck.t | 20 - .build/4BVDjxVREH/xt/release/unused-vars.t | 14 - .build/UDufqIoogz/Changes | 5 - .build/UDufqIoogz/INSTALL | 43 - .build/UDufqIoogz/LICENSE | 379 ------- .build/UDufqIoogz/MANIFEST | 33 - .build/UDufqIoogz/META.json | 82 -- .build/UDufqIoogz/META.yml | 37 - .build/UDufqIoogz/MYMETA.json | 82 -- .build/UDufqIoogz/MYMETA.yml | 37 - .build/UDufqIoogz/Makefile | 939 ------------------ .build/UDufqIoogz/Makefile.PL | 73 -- .build/UDufqIoogz/README | 12 - .build/UDufqIoogz/README.md | 277 ------ .build/UDufqIoogz/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/UDufqIoogz/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/UDufqIoogz/blib/man1/.exists | 0 .build/UDufqIoogz/blib/man3/.exists | 0 .build/UDufqIoogz/blib/script/.exists | 0 .build/UDufqIoogz/cpanfile | 17 - .build/UDufqIoogz/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .build/UDufqIoogz/pm_to_blib | 0 .build/UDufqIoogz/t/00-check-deps.t | 17 - .build/UDufqIoogz/t/00-compile.t | 57 -- .build/UDufqIoogz/t/00-report-prereqs.dd | 53 - .build/UDufqIoogz/t/00-report-prereqs.t | 183 ---- .build/UDufqIoogz/t/01_unit_test.t | 42 - .build/UDufqIoogz/t/02_smarty_test.t | 73 -- .build/UDufqIoogz/t/rc/.perlcriticrc | 23 - .build/UDufqIoogz/t/rc/.perltidyrc | 63 -- .build/UDufqIoogz/xt/author/eol.t | 25 - .build/UDufqIoogz/xt/author/mojibake.t | 9 - .build/UDufqIoogz/xt/author/pod-coverage.t | 7 - .build/UDufqIoogz/xt/author/pod-syntax.t | 7 - .build/UDufqIoogz/xt/author/synopsis.t | 5 - .build/UDufqIoogz/xt/author/test-version.t | 23 - .../UDufqIoogz/xt/release/common_spelling.t | 11 - .build/UDufqIoogz/xt/release/pod-linkcheck.t | 20 - .build/UDufqIoogz/xt/release/unused-vars.t | 14 - .build/adCP70XCJ7/Changes | 5 - .build/adCP70XCJ7/INSTALL | 43 - .build/adCP70XCJ7/LICENSE | 379 ------- .build/adCP70XCJ7/MANIFEST | 33 - .build/adCP70XCJ7/META.json | 82 -- .build/adCP70XCJ7/META.yml | 37 - .build/adCP70XCJ7/MYMETA.json | 82 -- .build/adCP70XCJ7/MYMETA.yml | 37 - .build/adCP70XCJ7/Makefile | 939 ------------------ .build/adCP70XCJ7/Makefile.PL | 73 -- .build/adCP70XCJ7/README | 12 - .build/adCP70XCJ7/README.md | 277 ------ .build/adCP70XCJ7/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/adCP70XCJ7/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 225 ----- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/adCP70XCJ7/blib/man1/.exists | 0 .build/adCP70XCJ7/blib/man3/.exists | 0 .build/adCP70XCJ7/blib/script/.exists | 0 .build/adCP70XCJ7/cpanfile | 17 - .build/adCP70XCJ7/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 225 ----- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .build/adCP70XCJ7/pm_to_blib | 0 .build/adCP70XCJ7/t/00-check-deps.t | 17 - .build/adCP70XCJ7/t/00-compile.t | 57 -- .build/adCP70XCJ7/t/00-report-prereqs.dd | 53 - .build/adCP70XCJ7/t/00-report-prereqs.t | 183 ---- .build/adCP70XCJ7/t/01_unit_test.t | 42 - .build/adCP70XCJ7/t/02_smarty_test.t | 73 -- .build/adCP70XCJ7/t/rc/.perlcriticrc | 23 - .build/adCP70XCJ7/t/rc/.perltidyrc | 63 -- .build/adCP70XCJ7/xt/author/eol.t | 25 - .build/adCP70XCJ7/xt/author/mojibake.t | 9 - .build/adCP70XCJ7/xt/author/pod-coverage.t | 7 - .build/adCP70XCJ7/xt/author/pod-syntax.t | 7 - .build/adCP70XCJ7/xt/author/synopsis.t | 5 - .build/adCP70XCJ7/xt/author/test-version.t | 23 - .../adCP70XCJ7/xt/release/common_spelling.t | 11 - .build/adCP70XCJ7/xt/release/pod-linkcheck.t | 20 - .build/adCP70XCJ7/xt/release/unused-vars.t | 14 - .build/g9VvV3ah9V/Changes | 5 - .build/g9VvV3ah9V/INSTALL | 43 - .build/g9VvV3ah9V/LICENSE | 379 ------- .build/g9VvV3ah9V/MANIFEST | 33 - .build/g9VvV3ah9V/META.json | 82 -- .build/g9VvV3ah9V/META.yml | 37 - .build/g9VvV3ah9V/MYMETA.json | 82 -- .build/g9VvV3ah9V/MYMETA.yml | 37 - .build/g9VvV3ah9V/Makefile | 939 ------------------ .build/g9VvV3ah9V/Makefile.PL | 73 -- .build/g9VvV3ah9V/README | 12 - .build/g9VvV3ah9V/README.md | 277 ------ .build/g9VvV3ah9V/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/g9VvV3ah9V/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/g9VvV3ah9V/blib/man1/.exists | 0 .build/g9VvV3ah9V/blib/man3/.exists | 0 .build/g9VvV3ah9V/blib/script/.exists | 0 .build/g9VvV3ah9V/cpanfile | 17 - .build/g9VvV3ah9V/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .build/g9VvV3ah9V/pm_to_blib | 0 .build/g9VvV3ah9V/t/00-check-deps.t | 17 - .build/g9VvV3ah9V/t/00-compile.t | 57 -- .build/g9VvV3ah9V/t/00-report-prereqs.dd | 53 - .build/g9VvV3ah9V/t/00-report-prereqs.t | 183 ---- .build/g9VvV3ah9V/t/01_unit_test.t | 42 - .build/g9VvV3ah9V/t/02_smarty_test.t | 73 -- .build/g9VvV3ah9V/t/rc/.perlcriticrc | 23 - .build/g9VvV3ah9V/t/rc/.perltidyrc | 63 -- .build/g9VvV3ah9V/xt/author/eol.t | 25 - .build/g9VvV3ah9V/xt/author/mojibake.t | 9 - .build/g9VvV3ah9V/xt/author/pod-coverage.t | 7 - .build/g9VvV3ah9V/xt/author/pod-syntax.t | 7 - .build/g9VvV3ah9V/xt/author/synopsis.t | 5 - .build/g9VvV3ah9V/xt/author/test-version.t | 23 - .../g9VvV3ah9V/xt/release/common_spelling.t | 11 - .build/g9VvV3ah9V/xt/release/pod-linkcheck.t | 20 - .build/g9VvV3ah9V/xt/release/unused-vars.t | 14 - .build/lZoVwHl4Bh/Changes | 5 - .build/lZoVwHl4Bh/INSTALL | 43 - .build/lZoVwHl4Bh/LICENSE | 379 ------- .build/lZoVwHl4Bh/MANIFEST | 33 - .build/lZoVwHl4Bh/META.json | 82 -- .build/lZoVwHl4Bh/META.yml | 37 - .build/lZoVwHl4Bh/MYMETA.json | 82 -- .build/lZoVwHl4Bh/MYMETA.yml | 37 - .build/lZoVwHl4Bh/Makefile | 939 ------------------ .build/lZoVwHl4Bh/Makefile.PL | 73 -- .build/lZoVwHl4Bh/README | 12 - .build/lZoVwHl4Bh/README.md | 277 ------ .build/lZoVwHl4Bh/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/lZoVwHl4Bh/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/lZoVwHl4Bh/blib/man1/.exists | 0 .build/lZoVwHl4Bh/blib/man3/.exists | 0 .build/lZoVwHl4Bh/blib/script/.exists | 0 .build/lZoVwHl4Bh/cpanfile | 17 - .build/lZoVwHl4Bh/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .build/lZoVwHl4Bh/pm_to_blib | 0 .build/lZoVwHl4Bh/t/00-check-deps.t | 17 - .build/lZoVwHl4Bh/t/00-compile.t | 57 -- .build/lZoVwHl4Bh/t/00-report-prereqs.dd | 53 - .build/lZoVwHl4Bh/t/00-report-prereqs.t | 183 ---- .build/lZoVwHl4Bh/t/01_unit_test.t | 42 - .build/lZoVwHl4Bh/t/02_smarty_test.t | 73 -- .build/lZoVwHl4Bh/t/rc/.perlcriticrc | 23 - .build/lZoVwHl4Bh/t/rc/.perltidyrc | 63 -- .build/lZoVwHl4Bh/xt/author/eol.t | 25 - .build/lZoVwHl4Bh/xt/author/mojibake.t | 9 - .build/lZoVwHl4Bh/xt/author/pod-coverage.t | 7 - .build/lZoVwHl4Bh/xt/author/pod-syntax.t | 7 - .build/lZoVwHl4Bh/xt/author/synopsis.t | 5 - .build/lZoVwHl4Bh/xt/author/test-version.t | 23 - .../lZoVwHl4Bh/xt/release/common_spelling.t | 11 - .build/lZoVwHl4Bh/xt/release/pod-linkcheck.t | 20 - .build/lZoVwHl4Bh/xt/release/unused-vars.t | 14 - .build/previous | 1 - .build/umAPEOCzJH/Changes | 5 - .build/umAPEOCzJH/INSTALL | 43 - .build/umAPEOCzJH/LICENSE | 379 ------- .build/umAPEOCzJH/MANIFEST | 33 - .build/umAPEOCzJH/META.json | 82 -- .build/umAPEOCzJH/META.yml | 37 - .build/umAPEOCzJH/MYMETA.json | 82 -- .build/umAPEOCzJH/MYMETA.yml | 37 - .build/umAPEOCzJH/Makefile | 939 ------------------ .build/umAPEOCzJH/Makefile.PL | 73 -- .build/umAPEOCzJH/README | 12 - .build/umAPEOCzJH/README.md | 277 ------ .build/umAPEOCzJH/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/umAPEOCzJH/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/umAPEOCzJH/blib/man1/.exists | 0 .build/umAPEOCzJH/blib/man3/.exists | 0 .build/umAPEOCzJH/blib/script/.exists | 0 .build/umAPEOCzJH/cpanfile | 17 - .build/umAPEOCzJH/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .build/umAPEOCzJH/pm_to_blib | 0 .build/umAPEOCzJH/t/00-check-deps.t | 17 - .build/umAPEOCzJH/t/00-compile.t | 57 -- .build/umAPEOCzJH/t/00-report-prereqs.dd | 53 - .build/umAPEOCzJH/t/00-report-prereqs.t | 183 ---- .build/umAPEOCzJH/t/01_unit_test.t | 42 - .build/umAPEOCzJH/t/02_smarty_test.t | 73 -- .build/umAPEOCzJH/t/rc/.perlcriticrc | 23 - .build/umAPEOCzJH/t/rc/.perltidyrc | 63 -- .build/umAPEOCzJH/xt/author/eol.t | 25 - .build/umAPEOCzJH/xt/author/mojibake.t | 9 - .build/umAPEOCzJH/xt/author/pod-coverage.t | 7 - .build/umAPEOCzJH/xt/author/pod-syntax.t | 7 - .build/umAPEOCzJH/xt/author/synopsis.t | 5 - .build/umAPEOCzJH/xt/author/test-version.t | 23 - .../umAPEOCzJH/xt/release/common_spelling.t | 11 - .build/umAPEOCzJH/xt/release/pod-linkcheck.t | 20 - .build/umAPEOCzJH/xt/release/unused-vars.t | 14 - .build/vWF93r870W/Changes | 5 - .build/vWF93r870W/INSTALL | 43 - .build/vWF93r870W/LICENSE | 379 ------- .build/vWF93r870W/MANIFEST | 33 - .build/vWF93r870W/META.json | 82 -- .build/vWF93r870W/META.yml | 37 - .build/vWF93r870W/MYMETA.json | 82 -- .build/vWF93r870W/MYMETA.yml | 37 - .build/vWF93r870W/Makefile | 939 ------------------ .build/vWF93r870W/Makefile.PL | 73 -- .build/vWF93r870W/README | 12 - .build/vWF93r870W/README.md | 277 ------ .build/vWF93r870W/blib/arch/.exists | 0 .../WebService/Async/SmartyStreets/.exists | 0 .build/vWF93r870W/blib/bin/.exists | 0 .../blib/lib/WebService/Async/.exists | 0 .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .../WebService/Async/SmartyStreets/.exists | 0 .build/vWF93r870W/blib/man1/.exists | 0 .build/vWF93r870W/blib/man3/.exists | 0 .build/vWF93r870W/blib/script/.exists | 0 .build/vWF93r870W/cpanfile | 17 - .build/vWF93r870W/dist.ini | 67 -- .../lib/WebService/Async/SmartyStreets.pm | 215 ---- .../WebService/Async/SmartyStreets/Address.pm | 207 ---- .../Async/SmartyStreets/International.pm | 85 -- .../lib/WebService/Async/SmartyStreets/USA.pm | 85 -- .build/vWF93r870W/pm_to_blib | 0 .build/vWF93r870W/t/00-check-deps.t | 17 - .build/vWF93r870W/t/00-compile.t | 57 -- .build/vWF93r870W/t/00-report-prereqs.dd | 53 - .build/vWF93r870W/t/00-report-prereqs.t | 183 ---- .build/vWF93r870W/t/01_unit_test.t | 42 - .build/vWF93r870W/t/02_smarty_test.t | 73 -- .build/vWF93r870W/t/rc/.perlcriticrc | 23 - .build/vWF93r870W/t/rc/.perltidyrc | 63 -- .build/vWF93r870W/xt/author/eol.t | 25 - .build/vWF93r870W/xt/author/mojibake.t | 9 - .build/vWF93r870W/xt/author/pod-coverage.t | 7 - .build/vWF93r870W/xt/author/pod-syntax.t | 7 - .build/vWF93r870W/xt/author/synopsis.t | 5 - .build/vWF93r870W/xt/author/test-version.t | 23 - .../vWF93r870W/xt/release/common_spelling.t | 11 - .build/vWF93r870W/xt/release/pod-linkcheck.t | 20 - .build/vWF93r870W/xt/release/unused-vars.t | 14 - 337 files changed, 27314 deletions(-) delete mode 100644 .build/4BVDjxVREH/Changes delete mode 100644 .build/4BVDjxVREH/INSTALL delete mode 100644 .build/4BVDjxVREH/LICENSE delete mode 100644 .build/4BVDjxVREH/MANIFEST delete mode 100644 .build/4BVDjxVREH/META.json delete mode 100644 .build/4BVDjxVREH/META.yml delete mode 100644 .build/4BVDjxVREH/MYMETA.json delete mode 100644 .build/4BVDjxVREH/MYMETA.yml delete mode 100644 .build/4BVDjxVREH/Makefile delete mode 100644 .build/4BVDjxVREH/Makefile.PL delete mode 100644 .build/4BVDjxVREH/README delete mode 100644 .build/4BVDjxVREH/README.md delete mode 100644 .build/4BVDjxVREH/blib/arch/.exists delete mode 100644 .build/4BVDjxVREH/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/4BVDjxVREH/blib/bin/.exists delete mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/.exists delete mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/4BVDjxVREH/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/4BVDjxVREH/blib/man1/.exists delete mode 100644 .build/4BVDjxVREH/blib/man3/.exists delete mode 100644 .build/4BVDjxVREH/blib/script/.exists delete mode 100644 .build/4BVDjxVREH/cpanfile delete mode 100644 .build/4BVDjxVREH/dist.ini delete mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/4BVDjxVREH/pm_to_blib delete mode 100644 .build/4BVDjxVREH/t/00-check-deps.t delete mode 100644 .build/4BVDjxVREH/t/00-compile.t delete mode 100644 .build/4BVDjxVREH/t/00-report-prereqs.dd delete mode 100644 .build/4BVDjxVREH/t/00-report-prereqs.t delete mode 100644 .build/4BVDjxVREH/t/01_unit_test.t delete mode 100644 .build/4BVDjxVREH/t/02_smarty_test.t delete mode 100644 .build/4BVDjxVREH/t/rc/.perlcriticrc delete mode 100644 .build/4BVDjxVREH/t/rc/.perltidyrc delete mode 100644 .build/4BVDjxVREH/xt/author/eol.t delete mode 100644 .build/4BVDjxVREH/xt/author/mojibake.t delete mode 100644 .build/4BVDjxVREH/xt/author/pod-coverage.t delete mode 100644 .build/4BVDjxVREH/xt/author/pod-syntax.t delete mode 100644 .build/4BVDjxVREH/xt/author/synopsis.t delete mode 100644 .build/4BVDjxVREH/xt/author/test-version.t delete mode 100644 .build/4BVDjxVREH/xt/release/common_spelling.t delete mode 100644 .build/4BVDjxVREH/xt/release/pod-linkcheck.t delete mode 100644 .build/4BVDjxVREH/xt/release/unused-vars.t delete mode 100644 .build/UDufqIoogz/Changes delete mode 100644 .build/UDufqIoogz/INSTALL delete mode 100644 .build/UDufqIoogz/LICENSE delete mode 100644 .build/UDufqIoogz/MANIFEST delete mode 100644 .build/UDufqIoogz/META.json delete mode 100644 .build/UDufqIoogz/META.yml delete mode 100644 .build/UDufqIoogz/MYMETA.json delete mode 100644 .build/UDufqIoogz/MYMETA.yml delete mode 100644 .build/UDufqIoogz/Makefile delete mode 100644 .build/UDufqIoogz/Makefile.PL delete mode 100644 .build/UDufqIoogz/README delete mode 100644 .build/UDufqIoogz/README.md delete mode 100644 .build/UDufqIoogz/blib/arch/.exists delete mode 100644 .build/UDufqIoogz/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/UDufqIoogz/blib/bin/.exists delete mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/.exists delete mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/UDufqIoogz/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/UDufqIoogz/blib/man1/.exists delete mode 100644 .build/UDufqIoogz/blib/man3/.exists delete mode 100644 .build/UDufqIoogz/blib/script/.exists delete mode 100644 .build/UDufqIoogz/cpanfile delete mode 100644 .build/UDufqIoogz/dist.ini delete mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/UDufqIoogz/pm_to_blib delete mode 100644 .build/UDufqIoogz/t/00-check-deps.t delete mode 100644 .build/UDufqIoogz/t/00-compile.t delete mode 100644 .build/UDufqIoogz/t/00-report-prereqs.dd delete mode 100644 .build/UDufqIoogz/t/00-report-prereqs.t delete mode 100644 .build/UDufqIoogz/t/01_unit_test.t delete mode 100644 .build/UDufqIoogz/t/02_smarty_test.t delete mode 100644 .build/UDufqIoogz/t/rc/.perlcriticrc delete mode 100644 .build/UDufqIoogz/t/rc/.perltidyrc delete mode 100644 .build/UDufqIoogz/xt/author/eol.t delete mode 100644 .build/UDufqIoogz/xt/author/mojibake.t delete mode 100644 .build/UDufqIoogz/xt/author/pod-coverage.t delete mode 100644 .build/UDufqIoogz/xt/author/pod-syntax.t delete mode 100644 .build/UDufqIoogz/xt/author/synopsis.t delete mode 100644 .build/UDufqIoogz/xt/author/test-version.t delete mode 100644 .build/UDufqIoogz/xt/release/common_spelling.t delete mode 100644 .build/UDufqIoogz/xt/release/pod-linkcheck.t delete mode 100644 .build/UDufqIoogz/xt/release/unused-vars.t delete mode 100644 .build/adCP70XCJ7/Changes delete mode 100644 .build/adCP70XCJ7/INSTALL delete mode 100644 .build/adCP70XCJ7/LICENSE delete mode 100644 .build/adCP70XCJ7/MANIFEST delete mode 100644 .build/adCP70XCJ7/META.json delete mode 100644 .build/adCP70XCJ7/META.yml delete mode 100644 .build/adCP70XCJ7/MYMETA.json delete mode 100644 .build/adCP70XCJ7/MYMETA.yml delete mode 100644 .build/adCP70XCJ7/Makefile delete mode 100644 .build/adCP70XCJ7/Makefile.PL delete mode 100644 .build/adCP70XCJ7/README delete mode 100644 .build/adCP70XCJ7/README.md delete mode 100644 .build/adCP70XCJ7/blib/arch/.exists delete mode 100644 .build/adCP70XCJ7/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/adCP70XCJ7/blib/bin/.exists delete mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/.exists delete mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/adCP70XCJ7/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/adCP70XCJ7/blib/man1/.exists delete mode 100644 .build/adCP70XCJ7/blib/man3/.exists delete mode 100644 .build/adCP70XCJ7/blib/script/.exists delete mode 100644 .build/adCP70XCJ7/cpanfile delete mode 100644 .build/adCP70XCJ7/dist.ini delete mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/adCP70XCJ7/pm_to_blib delete mode 100644 .build/adCP70XCJ7/t/00-check-deps.t delete mode 100644 .build/adCP70XCJ7/t/00-compile.t delete mode 100644 .build/adCP70XCJ7/t/00-report-prereqs.dd delete mode 100644 .build/adCP70XCJ7/t/00-report-prereqs.t delete mode 100644 .build/adCP70XCJ7/t/01_unit_test.t delete mode 100644 .build/adCP70XCJ7/t/02_smarty_test.t delete mode 100644 .build/adCP70XCJ7/t/rc/.perlcriticrc delete mode 100644 .build/adCP70XCJ7/t/rc/.perltidyrc delete mode 100644 .build/adCP70XCJ7/xt/author/eol.t delete mode 100644 .build/adCP70XCJ7/xt/author/mojibake.t delete mode 100644 .build/adCP70XCJ7/xt/author/pod-coverage.t delete mode 100644 .build/adCP70XCJ7/xt/author/pod-syntax.t delete mode 100644 .build/adCP70XCJ7/xt/author/synopsis.t delete mode 100644 .build/adCP70XCJ7/xt/author/test-version.t delete mode 100644 .build/adCP70XCJ7/xt/release/common_spelling.t delete mode 100644 .build/adCP70XCJ7/xt/release/pod-linkcheck.t delete mode 100644 .build/adCP70XCJ7/xt/release/unused-vars.t delete mode 100644 .build/g9VvV3ah9V/Changes delete mode 100644 .build/g9VvV3ah9V/INSTALL delete mode 100644 .build/g9VvV3ah9V/LICENSE delete mode 100644 .build/g9VvV3ah9V/MANIFEST delete mode 100644 .build/g9VvV3ah9V/META.json delete mode 100644 .build/g9VvV3ah9V/META.yml delete mode 100644 .build/g9VvV3ah9V/MYMETA.json delete mode 100644 .build/g9VvV3ah9V/MYMETA.yml delete mode 100644 .build/g9VvV3ah9V/Makefile delete mode 100644 .build/g9VvV3ah9V/Makefile.PL delete mode 100644 .build/g9VvV3ah9V/README delete mode 100644 .build/g9VvV3ah9V/README.md delete mode 100644 .build/g9VvV3ah9V/blib/arch/.exists delete mode 100644 .build/g9VvV3ah9V/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/g9VvV3ah9V/blib/bin/.exists delete mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/.exists delete mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/g9VvV3ah9V/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/g9VvV3ah9V/blib/man1/.exists delete mode 100644 .build/g9VvV3ah9V/blib/man3/.exists delete mode 100644 .build/g9VvV3ah9V/blib/script/.exists delete mode 100644 .build/g9VvV3ah9V/cpanfile delete mode 100644 .build/g9VvV3ah9V/dist.ini delete mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/g9VvV3ah9V/pm_to_blib delete mode 100644 .build/g9VvV3ah9V/t/00-check-deps.t delete mode 100644 .build/g9VvV3ah9V/t/00-compile.t delete mode 100644 .build/g9VvV3ah9V/t/00-report-prereqs.dd delete mode 100644 .build/g9VvV3ah9V/t/00-report-prereqs.t delete mode 100644 .build/g9VvV3ah9V/t/01_unit_test.t delete mode 100644 .build/g9VvV3ah9V/t/02_smarty_test.t delete mode 100644 .build/g9VvV3ah9V/t/rc/.perlcriticrc delete mode 100644 .build/g9VvV3ah9V/t/rc/.perltidyrc delete mode 100644 .build/g9VvV3ah9V/xt/author/eol.t delete mode 100644 .build/g9VvV3ah9V/xt/author/mojibake.t delete mode 100644 .build/g9VvV3ah9V/xt/author/pod-coverage.t delete mode 100644 .build/g9VvV3ah9V/xt/author/pod-syntax.t delete mode 100644 .build/g9VvV3ah9V/xt/author/synopsis.t delete mode 100644 .build/g9VvV3ah9V/xt/author/test-version.t delete mode 100644 .build/g9VvV3ah9V/xt/release/common_spelling.t delete mode 100644 .build/g9VvV3ah9V/xt/release/pod-linkcheck.t delete mode 100644 .build/g9VvV3ah9V/xt/release/unused-vars.t delete mode 100644 .build/lZoVwHl4Bh/Changes delete mode 100644 .build/lZoVwHl4Bh/INSTALL delete mode 100644 .build/lZoVwHl4Bh/LICENSE delete mode 100644 .build/lZoVwHl4Bh/MANIFEST delete mode 100644 .build/lZoVwHl4Bh/META.json delete mode 100644 .build/lZoVwHl4Bh/META.yml delete mode 100644 .build/lZoVwHl4Bh/MYMETA.json delete mode 100644 .build/lZoVwHl4Bh/MYMETA.yml delete mode 100644 .build/lZoVwHl4Bh/Makefile delete mode 100644 .build/lZoVwHl4Bh/Makefile.PL delete mode 100644 .build/lZoVwHl4Bh/README delete mode 100644 .build/lZoVwHl4Bh/README.md delete mode 100644 .build/lZoVwHl4Bh/blib/arch/.exists delete mode 100644 .build/lZoVwHl4Bh/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/lZoVwHl4Bh/blib/bin/.exists delete mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/.exists delete mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/lZoVwHl4Bh/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/lZoVwHl4Bh/blib/man1/.exists delete mode 100644 .build/lZoVwHl4Bh/blib/man3/.exists delete mode 100644 .build/lZoVwHl4Bh/blib/script/.exists delete mode 100644 .build/lZoVwHl4Bh/cpanfile delete mode 100644 .build/lZoVwHl4Bh/dist.ini delete mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/lZoVwHl4Bh/pm_to_blib delete mode 100644 .build/lZoVwHl4Bh/t/00-check-deps.t delete mode 100644 .build/lZoVwHl4Bh/t/00-compile.t delete mode 100644 .build/lZoVwHl4Bh/t/00-report-prereqs.dd delete mode 100644 .build/lZoVwHl4Bh/t/00-report-prereqs.t delete mode 100644 .build/lZoVwHl4Bh/t/01_unit_test.t delete mode 100644 .build/lZoVwHl4Bh/t/02_smarty_test.t delete mode 100644 .build/lZoVwHl4Bh/t/rc/.perlcriticrc delete mode 100644 .build/lZoVwHl4Bh/t/rc/.perltidyrc delete mode 100644 .build/lZoVwHl4Bh/xt/author/eol.t delete mode 100644 .build/lZoVwHl4Bh/xt/author/mojibake.t delete mode 100644 .build/lZoVwHl4Bh/xt/author/pod-coverage.t delete mode 100644 .build/lZoVwHl4Bh/xt/author/pod-syntax.t delete mode 100644 .build/lZoVwHl4Bh/xt/author/synopsis.t delete mode 100644 .build/lZoVwHl4Bh/xt/author/test-version.t delete mode 100644 .build/lZoVwHl4Bh/xt/release/common_spelling.t delete mode 100644 .build/lZoVwHl4Bh/xt/release/pod-linkcheck.t delete mode 100644 .build/lZoVwHl4Bh/xt/release/unused-vars.t delete mode 120000 .build/previous delete mode 100644 .build/umAPEOCzJH/Changes delete mode 100644 .build/umAPEOCzJH/INSTALL delete mode 100644 .build/umAPEOCzJH/LICENSE delete mode 100644 .build/umAPEOCzJH/MANIFEST delete mode 100644 .build/umAPEOCzJH/META.json delete mode 100644 .build/umAPEOCzJH/META.yml delete mode 100644 .build/umAPEOCzJH/MYMETA.json delete mode 100644 .build/umAPEOCzJH/MYMETA.yml delete mode 100644 .build/umAPEOCzJH/Makefile delete mode 100644 .build/umAPEOCzJH/Makefile.PL delete mode 100644 .build/umAPEOCzJH/README delete mode 100644 .build/umAPEOCzJH/README.md delete mode 100644 .build/umAPEOCzJH/blib/arch/.exists delete mode 100644 .build/umAPEOCzJH/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/umAPEOCzJH/blib/bin/.exists delete mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/.exists delete mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/umAPEOCzJH/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/umAPEOCzJH/blib/man1/.exists delete mode 100644 .build/umAPEOCzJH/blib/man3/.exists delete mode 100644 .build/umAPEOCzJH/blib/script/.exists delete mode 100644 .build/umAPEOCzJH/cpanfile delete mode 100644 .build/umAPEOCzJH/dist.ini delete mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/umAPEOCzJH/pm_to_blib delete mode 100644 .build/umAPEOCzJH/t/00-check-deps.t delete mode 100644 .build/umAPEOCzJH/t/00-compile.t delete mode 100644 .build/umAPEOCzJH/t/00-report-prereqs.dd delete mode 100644 .build/umAPEOCzJH/t/00-report-prereqs.t delete mode 100644 .build/umAPEOCzJH/t/01_unit_test.t delete mode 100644 .build/umAPEOCzJH/t/02_smarty_test.t delete mode 100644 .build/umAPEOCzJH/t/rc/.perlcriticrc delete mode 100644 .build/umAPEOCzJH/t/rc/.perltidyrc delete mode 100644 .build/umAPEOCzJH/xt/author/eol.t delete mode 100644 .build/umAPEOCzJH/xt/author/mojibake.t delete mode 100644 .build/umAPEOCzJH/xt/author/pod-coverage.t delete mode 100644 .build/umAPEOCzJH/xt/author/pod-syntax.t delete mode 100644 .build/umAPEOCzJH/xt/author/synopsis.t delete mode 100644 .build/umAPEOCzJH/xt/author/test-version.t delete mode 100644 .build/umAPEOCzJH/xt/release/common_spelling.t delete mode 100644 .build/umAPEOCzJH/xt/release/pod-linkcheck.t delete mode 100644 .build/umAPEOCzJH/xt/release/unused-vars.t delete mode 100644 .build/vWF93r870W/Changes delete mode 100644 .build/vWF93r870W/INSTALL delete mode 100644 .build/vWF93r870W/LICENSE delete mode 100644 .build/vWF93r870W/MANIFEST delete mode 100644 .build/vWF93r870W/META.json delete mode 100644 .build/vWF93r870W/META.yml delete mode 100644 .build/vWF93r870W/MYMETA.json delete mode 100644 .build/vWF93r870W/MYMETA.yml delete mode 100644 .build/vWF93r870W/Makefile delete mode 100644 .build/vWF93r870W/Makefile.PL delete mode 100644 .build/vWF93r870W/README delete mode 100644 .build/vWF93r870W/README.md delete mode 100644 .build/vWF93r870W/blib/arch/.exists delete mode 100644 .build/vWF93r870W/blib/arch/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/vWF93r870W/blib/bin/.exists delete mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/.exists delete mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/vWF93r870W/blib/lib/auto/WebService/Async/SmartyStreets/.exists delete mode 100644 .build/vWF93r870W/blib/man1/.exists delete mode 100644 .build/vWF93r870W/blib/man3/.exists delete mode 100644 .build/vWF93r870W/blib/script/.exists delete mode 100644 .build/vWF93r870W/cpanfile delete mode 100644 .build/vWF93r870W/dist.ini delete mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm delete mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm delete mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm delete mode 100644 .build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm delete mode 100644 .build/vWF93r870W/pm_to_blib delete mode 100644 .build/vWF93r870W/t/00-check-deps.t delete mode 100644 .build/vWF93r870W/t/00-compile.t delete mode 100644 .build/vWF93r870W/t/00-report-prereqs.dd delete mode 100644 .build/vWF93r870W/t/00-report-prereqs.t delete mode 100644 .build/vWF93r870W/t/01_unit_test.t delete mode 100644 .build/vWF93r870W/t/02_smarty_test.t delete mode 100644 .build/vWF93r870W/t/rc/.perlcriticrc delete mode 100644 .build/vWF93r870W/t/rc/.perltidyrc delete mode 100644 .build/vWF93r870W/xt/author/eol.t delete mode 100644 .build/vWF93r870W/xt/author/mojibake.t delete mode 100644 .build/vWF93r870W/xt/author/pod-coverage.t delete mode 100644 .build/vWF93r870W/xt/author/pod-syntax.t delete mode 100644 .build/vWF93r870W/xt/author/synopsis.t delete mode 100644 .build/vWF93r870W/xt/author/test-version.t delete mode 100644 .build/vWF93r870W/xt/release/common_spelling.t delete mode 100644 .build/vWF93r870W/xt/release/pod-linkcheck.t delete mode 100644 .build/vWF93r870W/xt/release/unused-vars.t diff --git a/.build/4BVDjxVREH/Changes b/.build/4BVDjxVREH/Changes deleted file mode 100644 index da2e2a6..0000000 --- a/.build/4BVDjxVREH/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-04-04 07:39:58+00:00 UTC - - Pre-release version. Released as a proof of concept. diff --git a/.build/4BVDjxVREH/INSTALL b/.build/4BVDjxVREH/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/4BVDjxVREH/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/4BVDjxVREH/LICENSE b/.build/4BVDjxVREH/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/4BVDjxVREH/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/4BVDjxVREH/MANIFEST b/.build/4BVDjxVREH/MANIFEST deleted file mode 100644 index 516cd11..0000000 --- a/.build/4BVDjxVREH/MANIFEST +++ /dev/null @@ -1,33 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -lib/WebService/Async/SmartyStreets/USA.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/4BVDjxVREH/META.json b/.build/4BVDjxVREH/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/4BVDjxVREH/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/4BVDjxVREH/META.yml b/.build/4BVDjxVREH/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/4BVDjxVREH/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/4BVDjxVREH/MYMETA.json b/.build/4BVDjxVREH/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/4BVDjxVREH/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/4BVDjxVREH/MYMETA.yml b/.build/4BVDjxVREH/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/4BVDjxVREH/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/4BVDjxVREH/Makefile b/.build/4BVDjxVREH/Makefile deleted file mode 100644 index 84285f2..0000000 --- a/.build/4BVDjxVREH/Makefile +++ /dev/null @@ -1,939 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm \ - lib/WebService/Async/SmartyStreets/USA.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ - 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/4BVDjxVREH/Makefile.PL b/.build/4BVDjxVREH/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/4BVDjxVREH/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/4BVDjxVREH/README b/.build/4BVDjxVREH/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/4BVDjxVREH/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/4BVDjxVREH/README.md b/.build/4BVDjxVREH/README.md deleted file mode 100644 index b2a7ab9..0000000 --- a/.build/4BVDjxVREH/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - -## verify - -Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. - -Takes the following named parameters: -- uri - URI address (in string) -- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) - -args consists of the following parameters: - -- country - country -- address1 - address line 1 -- address2 - address line 2 -- organization - name of organization (usually building names) -- locality - city -- administrative_area - state -- postal_code - post code -- geocode - true or false - -## get_decoded_data - -Parses the response give by SmartyStreets - -More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) - -Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` - -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# NAME - -WebService::Async::SmartyStreets::USA - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# AUTHOR - -Binary.com - diff --git a/.build/4BVDjxVREH/blib/arch/.exists b/.build/4BVDjxVREH/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/4BVDjxVREH/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/blib/bin/.exists b/.build/4BVDjxVREH/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/.exists b/.build/4BVDjxVREH/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 906e5a6..0000000 --- a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - # use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/4BVDjxVREH/blib/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/4BVDjxVREH/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/4BVDjxVREH/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/blib/man1/.exists b/.build/4BVDjxVREH/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/blib/man3/.exists b/.build/4BVDjxVREH/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/blib/script/.exists b/.build/4BVDjxVREH/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/cpanfile b/.build/4BVDjxVREH/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/4BVDjxVREH/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/4BVDjxVREH/dist.ini b/.build/4BVDjxVREH/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/4BVDjxVREH/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 906e5a6..0000000 --- a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - # use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm b/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/4BVDjxVREH/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/4BVDjxVREH/pm_to_blib b/.build/4BVDjxVREH/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/4BVDjxVREH/t/00-check-deps.t b/.build/4BVDjxVREH/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/4BVDjxVREH/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/4BVDjxVREH/t/00-compile.t b/.build/4BVDjxVREH/t/00-compile.t deleted file mode 100644 index 0df19f4..0000000 --- a/.build/4BVDjxVREH/t/00-compile.t +++ /dev/null @@ -1,57 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm', - 'WebService/Async/SmartyStreets/USA.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/4BVDjxVREH/t/00-report-prereqs.dd b/.build/4BVDjxVREH/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/4BVDjxVREH/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/4BVDjxVREH/t/00-report-prereqs.t b/.build/4BVDjxVREH/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/4BVDjxVREH/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/4BVDjxVREH/t/01_unit_test.t b/.build/4BVDjxVREH/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/4BVDjxVREH/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/4BVDjxVREH/t/02_smarty_test.t b/.build/4BVDjxVREH/t/02_smarty_test.t deleted file mode 100644 index d487ea7..0000000 --- a/.build/4BVDjxVREH/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets::International; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/4BVDjxVREH/t/rc/.perlcriticrc b/.build/4BVDjxVREH/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/4BVDjxVREH/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/4BVDjxVREH/t/rc/.perltidyrc b/.build/4BVDjxVREH/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/4BVDjxVREH/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/4BVDjxVREH/xt/author/eol.t b/.build/4BVDjxVREH/xt/author/eol.t deleted file mode 100644 index 31f0f67..0000000 --- a/.build/4BVDjxVREH/xt/author/eol.t +++ /dev/null @@ -1,25 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 'lib/WebService/Async/SmartyStreets/USA.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/4BVDjxVREH/xt/author/mojibake.t b/.build/4BVDjxVREH/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/4BVDjxVREH/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/4BVDjxVREH/xt/author/pod-coverage.t b/.build/4BVDjxVREH/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/4BVDjxVREH/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/4BVDjxVREH/xt/author/pod-syntax.t b/.build/4BVDjxVREH/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/4BVDjxVREH/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/4BVDjxVREH/xt/author/synopsis.t b/.build/4BVDjxVREH/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/4BVDjxVREH/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/4BVDjxVREH/xt/author/test-version.t b/.build/4BVDjxVREH/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/4BVDjxVREH/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/4BVDjxVREH/xt/release/common_spelling.t b/.build/4BVDjxVREH/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/4BVDjxVREH/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/4BVDjxVREH/xt/release/pod-linkcheck.t b/.build/4BVDjxVREH/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/4BVDjxVREH/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/4BVDjxVREH/xt/release/unused-vars.t b/.build/4BVDjxVREH/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/4BVDjxVREH/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/.build/UDufqIoogz/Changes b/.build/UDufqIoogz/Changes deleted file mode 100644 index bcabee8..0000000 --- a/.build/UDufqIoogz/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-04-04 07:36:49+00:00 UTC - - Pre-release version. Released as a proof of concept. diff --git a/.build/UDufqIoogz/INSTALL b/.build/UDufqIoogz/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/UDufqIoogz/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/UDufqIoogz/LICENSE b/.build/UDufqIoogz/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/UDufqIoogz/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/UDufqIoogz/MANIFEST b/.build/UDufqIoogz/MANIFEST deleted file mode 100644 index 516cd11..0000000 --- a/.build/UDufqIoogz/MANIFEST +++ /dev/null @@ -1,33 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -lib/WebService/Async/SmartyStreets/USA.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/UDufqIoogz/META.json b/.build/UDufqIoogz/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/UDufqIoogz/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/UDufqIoogz/META.yml b/.build/UDufqIoogz/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/UDufqIoogz/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/UDufqIoogz/MYMETA.json b/.build/UDufqIoogz/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/UDufqIoogz/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/UDufqIoogz/MYMETA.yml b/.build/UDufqIoogz/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/UDufqIoogz/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/UDufqIoogz/Makefile b/.build/UDufqIoogz/Makefile deleted file mode 100644 index 84285f2..0000000 --- a/.build/UDufqIoogz/Makefile +++ /dev/null @@ -1,939 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm \ - lib/WebService/Async/SmartyStreets/USA.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ - 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/UDufqIoogz/Makefile.PL b/.build/UDufqIoogz/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/UDufqIoogz/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/UDufqIoogz/README b/.build/UDufqIoogz/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/UDufqIoogz/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/UDufqIoogz/README.md b/.build/UDufqIoogz/README.md deleted file mode 100644 index b2a7ab9..0000000 --- a/.build/UDufqIoogz/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - -## verify - -Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. - -Takes the following named parameters: -- uri - URI address (in string) -- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) - -args consists of the following parameters: - -- country - country -- address1 - address line 1 -- address2 - address line 2 -- organization - name of organization (usually building names) -- locality - city -- administrative_area - state -- postal_code - post code -- geocode - true or false - -## get_decoded_data - -Parses the response give by SmartyStreets - -More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) - -Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` - -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# NAME - -WebService::Async::SmartyStreets::USA - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# AUTHOR - -Binary.com - diff --git a/.build/UDufqIoogz/blib/arch/.exists b/.build/UDufqIoogz/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/UDufqIoogz/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/blib/bin/.exists b/.build/UDufqIoogz/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/.exists b/.build/UDufqIoogz/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index e5060c7..0000000 --- a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/UDufqIoogz/blib/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/UDufqIoogz/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/UDufqIoogz/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/blib/man1/.exists b/.build/UDufqIoogz/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/blib/man3/.exists b/.build/UDufqIoogz/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/blib/script/.exists b/.build/UDufqIoogz/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/cpanfile b/.build/UDufqIoogz/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/UDufqIoogz/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/UDufqIoogz/dist.ini b/.build/UDufqIoogz/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/UDufqIoogz/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index e5060c7..0000000 --- a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm b/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/UDufqIoogz/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/UDufqIoogz/pm_to_blib b/.build/UDufqIoogz/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/UDufqIoogz/t/00-check-deps.t b/.build/UDufqIoogz/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/UDufqIoogz/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/UDufqIoogz/t/00-compile.t b/.build/UDufqIoogz/t/00-compile.t deleted file mode 100644 index 0df19f4..0000000 --- a/.build/UDufqIoogz/t/00-compile.t +++ /dev/null @@ -1,57 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm', - 'WebService/Async/SmartyStreets/USA.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/UDufqIoogz/t/00-report-prereqs.dd b/.build/UDufqIoogz/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/UDufqIoogz/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/UDufqIoogz/t/00-report-prereqs.t b/.build/UDufqIoogz/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/UDufqIoogz/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/UDufqIoogz/t/01_unit_test.t b/.build/UDufqIoogz/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/UDufqIoogz/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/UDufqIoogz/t/02_smarty_test.t b/.build/UDufqIoogz/t/02_smarty_test.t deleted file mode 100644 index d487ea7..0000000 --- a/.build/UDufqIoogz/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets::International; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/UDufqIoogz/t/rc/.perlcriticrc b/.build/UDufqIoogz/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/UDufqIoogz/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/UDufqIoogz/t/rc/.perltidyrc b/.build/UDufqIoogz/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/UDufqIoogz/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/UDufqIoogz/xt/author/eol.t b/.build/UDufqIoogz/xt/author/eol.t deleted file mode 100644 index 31f0f67..0000000 --- a/.build/UDufqIoogz/xt/author/eol.t +++ /dev/null @@ -1,25 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 'lib/WebService/Async/SmartyStreets/USA.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/UDufqIoogz/xt/author/mojibake.t b/.build/UDufqIoogz/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/UDufqIoogz/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/UDufqIoogz/xt/author/pod-coverage.t b/.build/UDufqIoogz/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/UDufqIoogz/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/UDufqIoogz/xt/author/pod-syntax.t b/.build/UDufqIoogz/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/UDufqIoogz/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/UDufqIoogz/xt/author/synopsis.t b/.build/UDufqIoogz/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/UDufqIoogz/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/UDufqIoogz/xt/author/test-version.t b/.build/UDufqIoogz/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/UDufqIoogz/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/UDufqIoogz/xt/release/common_spelling.t b/.build/UDufqIoogz/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/UDufqIoogz/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/UDufqIoogz/xt/release/pod-linkcheck.t b/.build/UDufqIoogz/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/UDufqIoogz/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/UDufqIoogz/xt/release/unused-vars.t b/.build/UDufqIoogz/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/UDufqIoogz/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/.build/adCP70XCJ7/Changes b/.build/adCP70XCJ7/Changes deleted file mode 100644 index 6e973a0..0000000 --- a/.build/adCP70XCJ7/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-04-04 08:27:20+00:00 UTC - - Pre-release version. Released as a proof of concept. diff --git a/.build/adCP70XCJ7/INSTALL b/.build/adCP70XCJ7/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/adCP70XCJ7/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/adCP70XCJ7/LICENSE b/.build/adCP70XCJ7/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/adCP70XCJ7/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/adCP70XCJ7/MANIFEST b/.build/adCP70XCJ7/MANIFEST deleted file mode 100644 index 516cd11..0000000 --- a/.build/adCP70XCJ7/MANIFEST +++ /dev/null @@ -1,33 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -lib/WebService/Async/SmartyStreets/USA.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/adCP70XCJ7/META.json b/.build/adCP70XCJ7/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/adCP70XCJ7/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/adCP70XCJ7/META.yml b/.build/adCP70XCJ7/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/adCP70XCJ7/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/adCP70XCJ7/MYMETA.json b/.build/adCP70XCJ7/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/adCP70XCJ7/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/adCP70XCJ7/MYMETA.yml b/.build/adCP70XCJ7/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/adCP70XCJ7/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/adCP70XCJ7/Makefile b/.build/adCP70XCJ7/Makefile deleted file mode 100644 index 84285f2..0000000 --- a/.build/adCP70XCJ7/Makefile +++ /dev/null @@ -1,939 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm \ - lib/WebService/Async/SmartyStreets/USA.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ - 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/adCP70XCJ7/Makefile.PL b/.build/adCP70XCJ7/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/adCP70XCJ7/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/adCP70XCJ7/README b/.build/adCP70XCJ7/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/adCP70XCJ7/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/adCP70XCJ7/README.md b/.build/adCP70XCJ7/README.md deleted file mode 100644 index b2a7ab9..0000000 --- a/.build/adCP70XCJ7/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - -## verify - -Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. - -Takes the following named parameters: -- uri - URI address (in string) -- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) - -args consists of the following parameters: - -- country - country -- address1 - address line 1 -- address2 - address line 2 -- organization - name of organization (usually building names) -- locality - city -- administrative_area - state -- postal_code - post code -- geocode - true or false - -## get_decoded_data - -Parses the response give by SmartyStreets - -More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) - -Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` - -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# NAME - -WebService::Async::SmartyStreets::USA - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# AUTHOR - -Binary.com - diff --git a/.build/adCP70XCJ7/blib/arch/.exists b/.build/adCP70XCJ7/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/adCP70XCJ7/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/blib/bin/.exists b/.build/adCP70XCJ7/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/.exists b/.build/adCP70XCJ7/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 766a62d..0000000 --- a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,225 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token api_choice)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } -sub api_choice { shift->{api_choice} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - - my ($self, $api_choice, %args) = @_; - - my %valid_api_choice = ( - international => 'https://international-street.api.smartystreets.com/verify', - us => 'https://us-street.api.smartystreets.com/street-address', - ); - - die "Invalid API choice" unless ($valid_api_choice{$api_choice}); - - my $uri = URI->new($valid_api_choice{$api_choice}); - - $uri->query_param($_ => $args{$_}) for keys %args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - use Data::Dumper; -warn "HIIII: ".Dumper($decoded); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/adCP70XCJ7/blib/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/adCP70XCJ7/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/blib/man1/.exists b/.build/adCP70XCJ7/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/blib/man3/.exists b/.build/adCP70XCJ7/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/blib/script/.exists b/.build/adCP70XCJ7/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/cpanfile b/.build/adCP70XCJ7/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/adCP70XCJ7/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/adCP70XCJ7/dist.ini b/.build/adCP70XCJ7/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/adCP70XCJ7/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 766a62d..0000000 --- a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,225 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token api_choice)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } -sub api_choice { shift->{api_choice} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - - my ($self, $api_choice, %args) = @_; - - my %valid_api_choice = ( - international => 'https://international-street.api.smartystreets.com/verify', - us => 'https://us-street.api.smartystreets.com/street-address', - ); - - die "Invalid API choice" unless ($valid_api_choice{$api_choice}); - - my $uri = URI->new($valid_api_choice{$api_choice}); - - $uri->query_param($_ => $args{$_}) for keys %args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - use Data::Dumper; -warn "HIIII: ".Dumper($decoded); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm b/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/adCP70XCJ7/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/adCP70XCJ7/pm_to_blib b/.build/adCP70XCJ7/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/adCP70XCJ7/t/00-check-deps.t b/.build/adCP70XCJ7/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/adCP70XCJ7/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/adCP70XCJ7/t/00-compile.t b/.build/adCP70XCJ7/t/00-compile.t deleted file mode 100644 index 0df19f4..0000000 --- a/.build/adCP70XCJ7/t/00-compile.t +++ /dev/null @@ -1,57 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm', - 'WebService/Async/SmartyStreets/USA.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/adCP70XCJ7/t/00-report-prereqs.dd b/.build/adCP70XCJ7/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/adCP70XCJ7/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/adCP70XCJ7/t/00-report-prereqs.t b/.build/adCP70XCJ7/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/adCP70XCJ7/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/adCP70XCJ7/t/01_unit_test.t b/.build/adCP70XCJ7/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/adCP70XCJ7/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/adCP70XCJ7/t/02_smarty_test.t b/.build/adCP70XCJ7/t/02_smarty_test.t deleted file mode 100644 index d487ea7..0000000 --- a/.build/adCP70XCJ7/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets::International; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/adCP70XCJ7/t/rc/.perlcriticrc b/.build/adCP70XCJ7/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/adCP70XCJ7/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/adCP70XCJ7/t/rc/.perltidyrc b/.build/adCP70XCJ7/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/adCP70XCJ7/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/adCP70XCJ7/xt/author/eol.t b/.build/adCP70XCJ7/xt/author/eol.t deleted file mode 100644 index 31f0f67..0000000 --- a/.build/adCP70XCJ7/xt/author/eol.t +++ /dev/null @@ -1,25 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 'lib/WebService/Async/SmartyStreets/USA.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/adCP70XCJ7/xt/author/mojibake.t b/.build/adCP70XCJ7/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/adCP70XCJ7/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/adCP70XCJ7/xt/author/pod-coverage.t b/.build/adCP70XCJ7/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/adCP70XCJ7/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/adCP70XCJ7/xt/author/pod-syntax.t b/.build/adCP70XCJ7/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/adCP70XCJ7/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/adCP70XCJ7/xt/author/synopsis.t b/.build/adCP70XCJ7/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/adCP70XCJ7/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/adCP70XCJ7/xt/author/test-version.t b/.build/adCP70XCJ7/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/adCP70XCJ7/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/adCP70XCJ7/xt/release/common_spelling.t b/.build/adCP70XCJ7/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/adCP70XCJ7/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/adCP70XCJ7/xt/release/pod-linkcheck.t b/.build/adCP70XCJ7/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/adCP70XCJ7/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/adCP70XCJ7/xt/release/unused-vars.t b/.build/adCP70XCJ7/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/adCP70XCJ7/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/.build/g9VvV3ah9V/Changes b/.build/g9VvV3ah9V/Changes deleted file mode 100644 index 5b7abf3..0000000 --- a/.build/g9VvV3ah9V/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-04-04 07:38:31+00:00 UTC - - Pre-release version. Released as a proof of concept. diff --git a/.build/g9VvV3ah9V/INSTALL b/.build/g9VvV3ah9V/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/g9VvV3ah9V/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/g9VvV3ah9V/LICENSE b/.build/g9VvV3ah9V/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/g9VvV3ah9V/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/g9VvV3ah9V/MANIFEST b/.build/g9VvV3ah9V/MANIFEST deleted file mode 100644 index 516cd11..0000000 --- a/.build/g9VvV3ah9V/MANIFEST +++ /dev/null @@ -1,33 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -lib/WebService/Async/SmartyStreets/USA.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/g9VvV3ah9V/META.json b/.build/g9VvV3ah9V/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/g9VvV3ah9V/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/g9VvV3ah9V/META.yml b/.build/g9VvV3ah9V/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/g9VvV3ah9V/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/g9VvV3ah9V/MYMETA.json b/.build/g9VvV3ah9V/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/g9VvV3ah9V/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/g9VvV3ah9V/MYMETA.yml b/.build/g9VvV3ah9V/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/g9VvV3ah9V/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/g9VvV3ah9V/Makefile b/.build/g9VvV3ah9V/Makefile deleted file mode 100644 index 84285f2..0000000 --- a/.build/g9VvV3ah9V/Makefile +++ /dev/null @@ -1,939 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm \ - lib/WebService/Async/SmartyStreets/USA.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ - 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/g9VvV3ah9V/Makefile.PL b/.build/g9VvV3ah9V/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/g9VvV3ah9V/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/g9VvV3ah9V/README b/.build/g9VvV3ah9V/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/g9VvV3ah9V/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/g9VvV3ah9V/README.md b/.build/g9VvV3ah9V/README.md deleted file mode 100644 index b2a7ab9..0000000 --- a/.build/g9VvV3ah9V/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - -## verify - -Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. - -Takes the following named parameters: -- uri - URI address (in string) -- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) - -args consists of the following parameters: - -- country - country -- address1 - address line 1 -- address2 - address line 2 -- organization - name of organization (usually building names) -- locality - city -- administrative_area - state -- postal_code - post code -- geocode - true or false - -## get_decoded_data - -Parses the response give by SmartyStreets - -More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) - -Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` - -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# NAME - -WebService::Async::SmartyStreets::USA - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# AUTHOR - -Binary.com - diff --git a/.build/g9VvV3ah9V/blib/arch/.exists b/.build/g9VvV3ah9V/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/g9VvV3ah9V/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/blib/bin/.exists b/.build/g9VvV3ah9V/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/.exists b/.build/g9VvV3ah9V/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 906e5a6..0000000 --- a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - # use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/g9VvV3ah9V/blib/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/g9VvV3ah9V/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/blib/man1/.exists b/.build/g9VvV3ah9V/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/blib/man3/.exists b/.build/g9VvV3ah9V/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/blib/script/.exists b/.build/g9VvV3ah9V/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/cpanfile b/.build/g9VvV3ah9V/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/g9VvV3ah9V/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/dist.ini b/.build/g9VvV3ah9V/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/g9VvV3ah9V/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 906e5a6..0000000 --- a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - # use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm b/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/g9VvV3ah9V/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/pm_to_blib b/.build/g9VvV3ah9V/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/g9VvV3ah9V/t/00-check-deps.t b/.build/g9VvV3ah9V/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/g9VvV3ah9V/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/g9VvV3ah9V/t/00-compile.t b/.build/g9VvV3ah9V/t/00-compile.t deleted file mode 100644 index 0df19f4..0000000 --- a/.build/g9VvV3ah9V/t/00-compile.t +++ /dev/null @@ -1,57 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm', - 'WebService/Async/SmartyStreets/USA.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/g9VvV3ah9V/t/00-report-prereqs.dd b/.build/g9VvV3ah9V/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/g9VvV3ah9V/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/g9VvV3ah9V/t/00-report-prereqs.t b/.build/g9VvV3ah9V/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/g9VvV3ah9V/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/g9VvV3ah9V/t/01_unit_test.t b/.build/g9VvV3ah9V/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/g9VvV3ah9V/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/g9VvV3ah9V/t/02_smarty_test.t b/.build/g9VvV3ah9V/t/02_smarty_test.t deleted file mode 100644 index d487ea7..0000000 --- a/.build/g9VvV3ah9V/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets::International; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/g9VvV3ah9V/t/rc/.perlcriticrc b/.build/g9VvV3ah9V/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/g9VvV3ah9V/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/g9VvV3ah9V/t/rc/.perltidyrc b/.build/g9VvV3ah9V/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/g9VvV3ah9V/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/g9VvV3ah9V/xt/author/eol.t b/.build/g9VvV3ah9V/xt/author/eol.t deleted file mode 100644 index 31f0f67..0000000 --- a/.build/g9VvV3ah9V/xt/author/eol.t +++ /dev/null @@ -1,25 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 'lib/WebService/Async/SmartyStreets/USA.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/g9VvV3ah9V/xt/author/mojibake.t b/.build/g9VvV3ah9V/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/g9VvV3ah9V/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/g9VvV3ah9V/xt/author/pod-coverage.t b/.build/g9VvV3ah9V/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/g9VvV3ah9V/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/g9VvV3ah9V/xt/author/pod-syntax.t b/.build/g9VvV3ah9V/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/g9VvV3ah9V/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/g9VvV3ah9V/xt/author/synopsis.t b/.build/g9VvV3ah9V/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/g9VvV3ah9V/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/g9VvV3ah9V/xt/author/test-version.t b/.build/g9VvV3ah9V/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/g9VvV3ah9V/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/g9VvV3ah9V/xt/release/common_spelling.t b/.build/g9VvV3ah9V/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/g9VvV3ah9V/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/g9VvV3ah9V/xt/release/pod-linkcheck.t b/.build/g9VvV3ah9V/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/g9VvV3ah9V/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/g9VvV3ah9V/xt/release/unused-vars.t b/.build/g9VvV3ah9V/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/g9VvV3ah9V/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/.build/lZoVwHl4Bh/Changes b/.build/lZoVwHl4Bh/Changes deleted file mode 100644 index ba36f51..0000000 --- a/.build/lZoVwHl4Bh/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-04-04 07:42:19+00:00 UTC - - Pre-release version. Released as a proof of concept. diff --git a/.build/lZoVwHl4Bh/INSTALL b/.build/lZoVwHl4Bh/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/lZoVwHl4Bh/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/lZoVwHl4Bh/LICENSE b/.build/lZoVwHl4Bh/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/lZoVwHl4Bh/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/lZoVwHl4Bh/MANIFEST b/.build/lZoVwHl4Bh/MANIFEST deleted file mode 100644 index 516cd11..0000000 --- a/.build/lZoVwHl4Bh/MANIFEST +++ /dev/null @@ -1,33 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -lib/WebService/Async/SmartyStreets/USA.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/lZoVwHl4Bh/META.json b/.build/lZoVwHl4Bh/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/lZoVwHl4Bh/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/lZoVwHl4Bh/META.yml b/.build/lZoVwHl4Bh/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/lZoVwHl4Bh/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/lZoVwHl4Bh/MYMETA.json b/.build/lZoVwHl4Bh/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/lZoVwHl4Bh/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/lZoVwHl4Bh/MYMETA.yml b/.build/lZoVwHl4Bh/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/lZoVwHl4Bh/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/lZoVwHl4Bh/Makefile b/.build/lZoVwHl4Bh/Makefile deleted file mode 100644 index 84285f2..0000000 --- a/.build/lZoVwHl4Bh/Makefile +++ /dev/null @@ -1,939 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm \ - lib/WebService/Async/SmartyStreets/USA.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ - 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/lZoVwHl4Bh/Makefile.PL b/.build/lZoVwHl4Bh/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/lZoVwHl4Bh/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/lZoVwHl4Bh/README b/.build/lZoVwHl4Bh/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/lZoVwHl4Bh/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/lZoVwHl4Bh/README.md b/.build/lZoVwHl4Bh/README.md deleted file mode 100644 index b2a7ab9..0000000 --- a/.build/lZoVwHl4Bh/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - -## verify - -Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. - -Takes the following named parameters: -- uri - URI address (in string) -- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) - -args consists of the following parameters: - -- country - country -- address1 - address line 1 -- address2 - address line 2 -- organization - name of organization (usually building names) -- locality - city -- administrative_area - state -- postal_code - post code -- geocode - true or false - -## get_decoded_data - -Parses the response give by SmartyStreets - -More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) - -Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` - -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# NAME - -WebService::Async::SmartyStreets::USA - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# AUTHOR - -Binary.com - diff --git a/.build/lZoVwHl4Bh/blib/arch/.exists b/.build/lZoVwHl4Bh/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/lZoVwHl4Bh/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/blib/bin/.exists b/.build/lZoVwHl4Bh/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/.exists b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index aee25a0..0000000 --- a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - use Data::Dumper; -warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/lZoVwHl4Bh/blib/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/lZoVwHl4Bh/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/blib/man1/.exists b/.build/lZoVwHl4Bh/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/blib/man3/.exists b/.build/lZoVwHl4Bh/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/blib/script/.exists b/.build/lZoVwHl4Bh/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/cpanfile b/.build/lZoVwHl4Bh/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/lZoVwHl4Bh/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/dist.ini b/.build/lZoVwHl4Bh/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/lZoVwHl4Bh/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index aee25a0..0000000 --- a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - use Data::Dumper; -warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm b/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/lZoVwHl4Bh/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/pm_to_blib b/.build/lZoVwHl4Bh/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/lZoVwHl4Bh/t/00-check-deps.t b/.build/lZoVwHl4Bh/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/lZoVwHl4Bh/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/lZoVwHl4Bh/t/00-compile.t b/.build/lZoVwHl4Bh/t/00-compile.t deleted file mode 100644 index 0df19f4..0000000 --- a/.build/lZoVwHl4Bh/t/00-compile.t +++ /dev/null @@ -1,57 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm', - 'WebService/Async/SmartyStreets/USA.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/lZoVwHl4Bh/t/00-report-prereqs.dd b/.build/lZoVwHl4Bh/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/lZoVwHl4Bh/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/t/00-report-prereqs.t b/.build/lZoVwHl4Bh/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/lZoVwHl4Bh/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/lZoVwHl4Bh/t/01_unit_test.t b/.build/lZoVwHl4Bh/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/lZoVwHl4Bh/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/t/02_smarty_test.t b/.build/lZoVwHl4Bh/t/02_smarty_test.t deleted file mode 100644 index d487ea7..0000000 --- a/.build/lZoVwHl4Bh/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets::International; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/lZoVwHl4Bh/t/rc/.perlcriticrc b/.build/lZoVwHl4Bh/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/lZoVwHl4Bh/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/lZoVwHl4Bh/t/rc/.perltidyrc b/.build/lZoVwHl4Bh/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/lZoVwHl4Bh/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/lZoVwHl4Bh/xt/author/eol.t b/.build/lZoVwHl4Bh/xt/author/eol.t deleted file mode 100644 index 31f0f67..0000000 --- a/.build/lZoVwHl4Bh/xt/author/eol.t +++ /dev/null @@ -1,25 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 'lib/WebService/Async/SmartyStreets/USA.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/lZoVwHl4Bh/xt/author/mojibake.t b/.build/lZoVwHl4Bh/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/lZoVwHl4Bh/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/lZoVwHl4Bh/xt/author/pod-coverage.t b/.build/lZoVwHl4Bh/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/lZoVwHl4Bh/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/lZoVwHl4Bh/xt/author/pod-syntax.t b/.build/lZoVwHl4Bh/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/lZoVwHl4Bh/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/lZoVwHl4Bh/xt/author/synopsis.t b/.build/lZoVwHl4Bh/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/lZoVwHl4Bh/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/lZoVwHl4Bh/xt/author/test-version.t b/.build/lZoVwHl4Bh/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/lZoVwHl4Bh/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/lZoVwHl4Bh/xt/release/common_spelling.t b/.build/lZoVwHl4Bh/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/lZoVwHl4Bh/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/lZoVwHl4Bh/xt/release/pod-linkcheck.t b/.build/lZoVwHl4Bh/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/lZoVwHl4Bh/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/lZoVwHl4Bh/xt/release/unused-vars.t b/.build/lZoVwHl4Bh/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/lZoVwHl4Bh/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/.build/previous b/.build/previous deleted file mode 120000 index a487817..0000000 --- a/.build/previous +++ /dev/null @@ -1 +0,0 @@ -adCP70XCJ7 \ No newline at end of file diff --git a/.build/umAPEOCzJH/Changes b/.build/umAPEOCzJH/Changes deleted file mode 100644 index 5763cd3..0000000 --- a/.build/umAPEOCzJH/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-04-04 07:41:26+00:00 UTC - - Pre-release version. Released as a proof of concept. diff --git a/.build/umAPEOCzJH/INSTALL b/.build/umAPEOCzJH/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/umAPEOCzJH/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/umAPEOCzJH/LICENSE b/.build/umAPEOCzJH/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/umAPEOCzJH/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/umAPEOCzJH/MANIFEST b/.build/umAPEOCzJH/MANIFEST deleted file mode 100644 index 516cd11..0000000 --- a/.build/umAPEOCzJH/MANIFEST +++ /dev/null @@ -1,33 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -lib/WebService/Async/SmartyStreets/USA.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/umAPEOCzJH/META.json b/.build/umAPEOCzJH/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/umAPEOCzJH/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/umAPEOCzJH/META.yml b/.build/umAPEOCzJH/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/umAPEOCzJH/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/umAPEOCzJH/MYMETA.json b/.build/umAPEOCzJH/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/umAPEOCzJH/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/umAPEOCzJH/MYMETA.yml b/.build/umAPEOCzJH/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/umAPEOCzJH/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/umAPEOCzJH/Makefile b/.build/umAPEOCzJH/Makefile deleted file mode 100644 index 84285f2..0000000 --- a/.build/umAPEOCzJH/Makefile +++ /dev/null @@ -1,939 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm \ - lib/WebService/Async/SmartyStreets/USA.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ - 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/umAPEOCzJH/Makefile.PL b/.build/umAPEOCzJH/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/umAPEOCzJH/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/umAPEOCzJH/README b/.build/umAPEOCzJH/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/umAPEOCzJH/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/umAPEOCzJH/README.md b/.build/umAPEOCzJH/README.md deleted file mode 100644 index b2a7ab9..0000000 --- a/.build/umAPEOCzJH/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - -## verify - -Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. - -Takes the following named parameters: -- uri - URI address (in string) -- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) - -args consists of the following parameters: - -- country - country -- address1 - address line 1 -- address2 - address line 2 -- organization - name of organization (usually building names) -- locality - city -- administrative_area - state -- postal_code - post code -- geocode - true or false - -## get_decoded_data - -Parses the response give by SmartyStreets - -More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) - -Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` - -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# NAME - -WebService::Async::SmartyStreets::USA - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# AUTHOR - -Binary.com - diff --git a/.build/umAPEOCzJH/blib/arch/.exists b/.build/umAPEOCzJH/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/umAPEOCzJH/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/blib/bin/.exists b/.build/umAPEOCzJH/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/.exists b/.build/umAPEOCzJH/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 906e5a6..0000000 --- a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - # use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/umAPEOCzJH/blib/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/umAPEOCzJH/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/blib/man1/.exists b/.build/umAPEOCzJH/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/blib/man3/.exists b/.build/umAPEOCzJH/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/blib/script/.exists b/.build/umAPEOCzJH/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/cpanfile b/.build/umAPEOCzJH/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/umAPEOCzJH/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/umAPEOCzJH/dist.ini b/.build/umAPEOCzJH/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/umAPEOCzJH/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index 906e5a6..0000000 --- a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - # use Data::Dumper; -# warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm b/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/umAPEOCzJH/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/umAPEOCzJH/pm_to_blib b/.build/umAPEOCzJH/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/umAPEOCzJH/t/00-check-deps.t b/.build/umAPEOCzJH/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/umAPEOCzJH/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/umAPEOCzJH/t/00-compile.t b/.build/umAPEOCzJH/t/00-compile.t deleted file mode 100644 index 0df19f4..0000000 --- a/.build/umAPEOCzJH/t/00-compile.t +++ /dev/null @@ -1,57 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm', - 'WebService/Async/SmartyStreets/USA.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/umAPEOCzJH/t/00-report-prereqs.dd b/.build/umAPEOCzJH/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/umAPEOCzJH/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/umAPEOCzJH/t/00-report-prereqs.t b/.build/umAPEOCzJH/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/umAPEOCzJH/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/umAPEOCzJH/t/01_unit_test.t b/.build/umAPEOCzJH/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/umAPEOCzJH/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/umAPEOCzJH/t/02_smarty_test.t b/.build/umAPEOCzJH/t/02_smarty_test.t deleted file mode 100644 index d487ea7..0000000 --- a/.build/umAPEOCzJH/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets::International; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/umAPEOCzJH/t/rc/.perlcriticrc b/.build/umAPEOCzJH/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/umAPEOCzJH/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/umAPEOCzJH/t/rc/.perltidyrc b/.build/umAPEOCzJH/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/umAPEOCzJH/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/umAPEOCzJH/xt/author/eol.t b/.build/umAPEOCzJH/xt/author/eol.t deleted file mode 100644 index 31f0f67..0000000 --- a/.build/umAPEOCzJH/xt/author/eol.t +++ /dev/null @@ -1,25 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 'lib/WebService/Async/SmartyStreets/USA.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/umAPEOCzJH/xt/author/mojibake.t b/.build/umAPEOCzJH/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/umAPEOCzJH/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/umAPEOCzJH/xt/author/pod-coverage.t b/.build/umAPEOCzJH/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/umAPEOCzJH/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/umAPEOCzJH/xt/author/pod-syntax.t b/.build/umAPEOCzJH/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/umAPEOCzJH/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/umAPEOCzJH/xt/author/synopsis.t b/.build/umAPEOCzJH/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/umAPEOCzJH/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/umAPEOCzJH/xt/author/test-version.t b/.build/umAPEOCzJH/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/umAPEOCzJH/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/umAPEOCzJH/xt/release/common_spelling.t b/.build/umAPEOCzJH/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/umAPEOCzJH/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/umAPEOCzJH/xt/release/pod-linkcheck.t b/.build/umAPEOCzJH/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/umAPEOCzJH/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/umAPEOCzJH/xt/release/unused-vars.t b/.build/umAPEOCzJH/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/umAPEOCzJH/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; diff --git a/.build/vWF93r870W/Changes b/.build/vWF93r870W/Changes deleted file mode 100644 index 939e30f..0000000 --- a/.build/vWF93r870W/Changes +++ /dev/null @@ -1,5 +0,0 @@ -Revision history for WebService-Async-SmartyStreets - -0.001 2019-04-04 07:14:05+00:00 UTC - - Pre-release version. Released as a proof of concept. diff --git a/.build/vWF93r870W/INSTALL b/.build/vWF93r870W/INSTALL deleted file mode 100644 index 8a141e8..0000000 --- a/.build/vWF93r870W/INSTALL +++ /dev/null @@ -1,43 +0,0 @@ -This is the Perl distribution WebService-Async-SmartyStreets. - -Installing WebService-Async-SmartyStreets is straightforward. - -## Installation with cpanm - -If you have cpanm, you only need one line: - - % cpanm WebService::Async::SmartyStreets - -If it does not have permission to install modules to the current perl, cpanm -will automatically set up and install to a local::lib in your home directory. -See the local::lib documentation (https://metacpan.org/pod/local::lib) for -details on enabling it in your environment. - -## Installing with the CPAN shell - -Alternatively, if your CPAN shell is set up, you should just be able to do: - - % cpan WebService::Async::SmartyStreets - -## Manual installation - -As a last resort, you can manually install it. Download the tarball, untar it, -then build it: - - % perl Makefile.PL - % make && make test - -Then install it: - - % make install - -If your perl is system-managed, you can create a local::lib in your home -directory to install modules to. For details, see the local::lib documentation: -https://metacpan.org/pod/local::lib - -## Documentation - -WebService-Async-SmartyStreets documentation is available as POD. -You can run perldoc from a shell to read the documentation: - - % perldoc WebService::Async::SmartyStreets diff --git a/.build/vWF93r870W/LICENSE b/.build/vWF93r870W/LICENSE deleted file mode 100644 index 10b08c8..0000000 --- a/.build/vWF93r870W/LICENSE +++ /dev/null @@ -1,379 +0,0 @@ -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -Terms of the Perl programming language system itself - -a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or -b) the "Artistic License" - ---- The GNU General Public License, Version 1, February 1989 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The GNU General Public License, Version 1, February 1989 - - GNU GENERAL PUBLIC LICENSE - Version 1, February 1989 - - Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The license agreements of most software companies try to keep users -at the mercy of those companies. By contrast, our General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. The -General Public License applies to the Free Software Foundation's -software and to any other program whose authors commit to using it. -You can use it for your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Specifically, the General Public License is designed to make -sure that you have the freedom to give away or sell copies of free -software, that you receive source code or can get it if you want it, -that you can change the software or use pieces of it in new free -programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of a such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work based -on the Program" means either the Program or any work containing the -Program or a portion of it, either verbatim or with modifications. Each -licensee is addressed as "you". - - 1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this -General Public License and to the absence of any warranty; and give any -other recipients of the Program a copy of this General Public License -along with the Program. You may charge a fee for the physical act of -transferring a copy. - - 2. You may modify your copy or copies of the Program or any portion of -it, and copy and distribute such modifications under the terms of Paragraph -1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating that - you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, that - in whole or in part contains the Program or any part thereof, either - with or without modifications, to be licensed at no charge to all - third parties under the terms of this General Public License (except - that you may choose to grant warranty protection to some or all - third parties, at your option). - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use - in the simplest and most usual way, to print or display an - announcement including an appropriate copyright notice and a notice - that there is no warranty (or else, saying that you provide a - warranty) and that users may redistribute the program under these - conditions, and telling the user how to view a copy of this General - Public License. - - d) You may charge a fee for the physical act of transferring a - copy, and you may at your option offer warranty protection in - exchange for a fee. - -Mere aggregation of another independent work with the Program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other work under the scope of these terms. - - 3. You may copy and distribute the Program (or a portion or derivative of -it, under Paragraph 2) in object code or executable form under the terms of -Paragraphs 1 and 2 above provided that you also do one of the following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal charge - for the cost of distribution) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -Source code for a work means the preferred form of the work for making -modifications to it. For an executable file, complete source code means -all the source code for all modules it contains; but, as a special -exception, it need not include source code for modules which are standard -libraries that accompany the operating system on which the executable -file runs, or for standard header files or definitions files that -accompany that operating system. - - 4. You may not copy, modify, sublicense, distribute or transfer the -Program except as expressly provided under this General Public License. -Any attempt otherwise to copy, modify, sublicense, distribute or transfer -the Program is void, and will automatically terminate your rights to use -the Program under this License. However, parties who have received -copies, or rights to use copies, from you under this General Public -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 5. By copying, distributing or modifying the Program (or any work based -on the Program) you indicate your acceptance of this license to do so, -and all its terms and conditions. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these -terms and conditions. You may not impose any further restrictions on the -recipients' exercise of the rights granted herein. - - 7. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of the license which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -the license, you may choose any version ever published by the Free Software -Foundation. - - 8. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to humanity, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms. - - To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 1, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19xx name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and `show -c'; they could even be mouse-clicks or menu items--whatever suits your -program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - program `Gnomovision' (a program to direct compilers to make passes - at assemblers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! - - ---- The Artistic License 1.0 --- - -This software is Copyright (c) 2019 by binary.com. - -This is free software, licensed under: - - The Artistic License 1.0 - -The Artistic License - -Preamble - -The intent of this document is to state the conditions under which a Package -may be copied, such that the Copyright Holder maintains some semblance of -artistic control over the development of the package, while giving the users of -the package the right to use and distribute the Package in a more-or-less -customary fashion, plus the right to make reasonable modifications. - -Definitions: - - - "Package" refers to the collection of files distributed by the Copyright - Holder, and derivatives of that collection of files created through - textual modification. - - "Standard Version" refers to such a Package if it has not been modified, - or has been modified in accordance with the wishes of the Copyright - Holder. - - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. - - "You" is you, if you're thinking about copying or distributing this Package. - - "Reasonable copying fee" is whatever you can justify on the basis of media - cost, duplication charges, time of people involved, and so on. (You will - not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item itself, though - there may be fees involved in handling the item. It also means that - recipients of the item may redistribute it under the same conditions they - received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications derived -from the Public Domain or from the Copyright Holder. A Package modified in such -a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided that -you insert a prominent notice in each changed file stating how and when you -changed that file, and provided that you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or an - equivalent medium, or placing the modifications on a major archive site - such as ftp.uu.net, or by allowing the Copyright Holder to include your - modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict with - standard executables, which must also be provided, and provide a separate - manual page for each non-standard executable that clearly documents how it - differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or executable -form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where to - get the Standard Version. - - b) accompany the distribution with the machine-readable source of the Package - with your modifications. - - c) accompany any non-standard executables with their corresponding Standard - Version executables, giving the non-standard executables non-standard - names, and clearly documenting the differences in manual pages (or - equivalent), together with instructions on where to get the Standard - Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. You -may not charge a fee for this Package itself. However, you may distribute this -Package in aggregate with other (possibly commercial) programs as part of a -larger (possibly commercial) software distribution provided that you do not -advertise this Package as a product of your own. - -6. The scripts and library files supplied as input to or produced as output -from the programs of this Package do not automatically fall under the copyright -of this Package, but belong to whomever generated them, and may be sold -commercially, and may be aggregated with this Package. - -7. C or perl subroutines supplied by you and linked into this Package shall not -be considered part of this Package. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End - diff --git a/.build/vWF93r870W/MANIFEST b/.build/vWF93r870W/MANIFEST deleted file mode 100644 index 516cd11..0000000 --- a/.build/vWF93r870W/MANIFEST +++ /dev/null @@ -1,33 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. -Changes -INSTALL -LICENSE -MANIFEST -META.json -META.yml -Makefile.PL -README -README.md -cpanfile -dist.ini -lib/WebService/Async/SmartyStreets.pm -lib/WebService/Async/SmartyStreets/Address.pm -lib/WebService/Async/SmartyStreets/International.pm -lib/WebService/Async/SmartyStreets/USA.pm -t/00-check-deps.t -t/00-compile.t -t/00-report-prereqs.dd -t/00-report-prereqs.t -t/01_unit_test.t -t/02_smarty_test.t -t/rc/.perlcriticrc -t/rc/.perltidyrc -xt/author/eol.t -xt/author/mojibake.t -xt/author/pod-coverage.t -xt/author/pod-syntax.t -xt/author/synopsis.t -xt/author/test-version.t -xt/release/common_spelling.t -xt/release/pod-linkcheck.t -xt/release/unused-vars.t diff --git a/.build/vWF93r870W/META.json b/.build/vWF93r870W/META.json deleted file mode 100644 index 92c14b4..0000000 --- a/.build/vWF93r870W/META.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : 2 - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "perl" : "5.014000" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} - diff --git a/.build/vWF93r870W/META.yml b/.build/vWF93r870W/META.yml deleted file mode 100644 index c09c92b..0000000 --- a/.build/vWF93r870W/META.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' - perl: '5.014000' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'YAML::Tiny version 1.66' diff --git a/.build/vWF93r870W/MYMETA.json b/.build/vWF93r870W/MYMETA.json deleted file mode 100644 index 5841be1..0000000 --- a/.build/vWF93r870W/MYMETA.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "abstract" : "Access SmartyStreet API", - "author" : [ - "binary.com " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "WebService-Async-SmartyStreets", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.64" - } - }, - "develop" : { - "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::EOL" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.88", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::LinkCheck" : "0", - "Test::Synopsis" : "0", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Future::AsyncAwait" : "0.21", - "IO::Async::SSL" : "0", - "Net::Async::HTTP" : "0.44", - "indirect" : "0", - "mro" : "0", - "parent" : "0", - "perl" : "5.014000" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Test::CheckDeps" : "0.010", - "Test::FailWarnings" : "0", - "Test::Fatal" : "0", - "Test::More" : "0.94", - "Test::Warn" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues" - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git", - "web" : "https://github.com/binary-com/perl-WebService-Async-SmartyStreets" - } - }, - "version" : "0.001", - "x_generated_by_perl" : "v5.26.2", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.06" -} diff --git a/.build/vWF93r870W/MYMETA.yml b/.build/vWF93r870W/MYMETA.yml deleted file mode 100644 index 2dd7ffb..0000000 --- a/.build/vWF93r870W/MYMETA.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -abstract: 'Access SmartyStreet API' -author: - - 'binary.com ' -build_requires: - ExtUtils::MakeMaker: '0' - File::Spec: '0' - IO::Handle: '0' - IPC::Open3: '0' - Test::CheckDeps: '0.010' - Test::FailWarnings: '0' - Test::Fatal: '0' - Test::More: '0.94' - Test::Warn: '0' -configure_requires: - ExtUtils::MakeMaker: '6.64' -dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.143240' -license: perl -meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: '1.4' -name: WebService-Async-SmartyStreets -requires: - Future::AsyncAwait: '0.21' - IO::Async::SSL: '0' - Net::Async::HTTP: '0.44' - indirect: '0' - mro: '0' - parent: '0' - perl: '5.014000' -resources: - bugtracker: https://github.com/binary-com/perl-WebService-Async-SmartyStreets/issues - repository: git://github.com/binary-com/perl-WebService-Async-SmartyStreets.git -version: '0.001' -x_generated_by_perl: v5.26.2 -x_serialization_backend: 'Cpanel::JSON::XS version 4.06' diff --git a/.build/vWF93r870W/Makefile b/.build/vWF93r870W/Makefile deleted file mode 100644 index 84285f2..0000000 --- a/.build/vWF93r870W/Makefile +++ /dev/null @@ -1,939 +0,0 @@ -# This Makefile is for the WebService::Async::SmartyStreets extension to perl. -# -# It was generated automatically by MakeMaker version -# 7.32 (Revision: 73200) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: () -# - -# MakeMaker Parameters: - -# ABSTRACT => q[Access SmartyStreet API] -# AUTHOR => [q[binary.com ]] -# BUILD_REQUIRES => { } -# CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[6.64] } -# DISTNAME => q[WebService-Async-SmartyStreets] -# LICENSE => q[perl] -# MIN_PERL_VERSION => q[5.014000] -# NAME => q[WebService::Async::SmartyStreets] -# PREREQ_PM => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], Future::AsyncAwait=>q[0.21], IO::Async::SSL=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Net::Async::HTTP=>q[0.44], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0], indirect=>q[0], mro=>q[0], parent=>q[0] } -# TEST_REQUIRES => { ExtUtils::MakeMaker=>q[0], File::Spec=>q[0], IO::Handle=>q[0], IPC::Open3=>q[0], Test::CheckDeps=>q[0.010], Test::FailWarnings=>q[0], Test::Fatal=>q[0], Test::More=>q[0.94], Test::Warn=>q[0] } -# VERSION => q[0.001] -# test => { TESTS=>q[t/*.t] } - -# --- MakeMaker post_initialize section: - - -# --- MakeMaker const_config section: - -# These definitions are from config.sh (via /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/Config.pm). -# They may have been overridden via Makefile.PL or on the command line. -AR = ar -CC = cc -CCCDLFLAGS = -fPIC -CCDLFLAGS = -Wl,-E -Wl,-rpath,/home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -DLEXT = so -DLSRC = dl_dlopen.xs -EXE_EXT = -FULL_AR = /usr/bin/ar -LD = cc -LDDLFLAGS = -shared -Wl,-z,relro -L/usr/local/lib -fstack-protector -LDFLAGS = -Wl,-z,relro -fstack-protector -L/usr/local/lib -LIBC = libc-2.13.so -LIB_EXT = .a -OBJ_EXT = .o -OSNAME = linux -OSVERS = 3.2.0-5-amd64 -RANLIB = : -SITELIBEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2 -SITEARCHEXP = /home/git/binary-com/perl/lib/site_perl/5.26.2/x86_64-linux -SO = so -VENDORARCHEXP = /home/git/regentmarkets/cpan/local/lib/perl5/x86_64-linux -VENDORLIBEXP = /home/git/regentmarkets/cpan/local/lib/perl5 - - -# --- MakeMaker constants section: -AR_STATIC_ARGS = cr -DIRFILESEP = / -DFSEP = $(DIRFILESEP) -NAME = WebService::Async::SmartyStreets -NAME_SYM = WebService_Async_SmartyStreets -VERSION = 0.001 -VERSION_MACRO = VERSION -VERSION_SYM = 0_001 -DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" -XS_VERSION = 0.001 -XS_VERSION_MACRO = XS_VERSION -XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" -INST_ARCHLIB = blib/arch -INST_SCRIPT = blib/script -INST_BIN = blib/bin -INST_LIB = blib/lib -INST_MAN1DIR = blib/man1 -INST_MAN3DIR = blib/man3 -MAN1EXT = 1 -MAN3EXT = 3perl -INSTALLDIRS = site -INSTALL_BASE = /home/git/regentmarkets/cpan/local -DESTDIR = -PREFIX = $(INSTALL_BASE) -INSTALLPRIVLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) -INSTALLSITELIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) -INSTALLVENDORLIB = $(INSTALL_BASE)/lib/perl5 -DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) -INSTALLARCHLIB = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) -INSTALLSITEARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) -INSTALLVENDORARCH = $(INSTALL_BASE)/lib/perl5/x86_64-linux -DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) -INSTALLBIN = $(INSTALL_BASE)/bin -DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) -INSTALLSITEBIN = $(INSTALL_BASE)/bin -DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) -INSTALLVENDORBIN = $(INSTALL_BASE)/bin -DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) -INSTALLSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) -INSTALLSITESCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT) -INSTALLVENDORSCRIPT = $(INSTALL_BASE)/bin -DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT) -INSTALLMAN1DIR = none -DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) -INSTALLSITEMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) -INSTALLVENDORMAN1DIR = $(INSTALL_BASE)/man/man1 -DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) -INSTALLMAN3DIR = none -DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) -INSTALLSITEMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) -INSTALLVENDORMAN3DIR = $(INSTALL_BASE)/man/man3 -DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) -PERL_LIB = /home/git/binary-com/perl/lib/5.26.2 -PERL_ARCHLIB = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -PERL_ARCHLIBDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux -LIBPERL_A = libperl.a -FIRST_MAKEFILE = Makefile -MAKEFILE_OLD = Makefile.old -MAKE_APERL_FILE = Makefile.aperl -PERLMAINCC = $(CC) -PERL_INC = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL_INCDEP = /home/git/binary-com/perl/lib/5.26.2/x86_64-linux/CORE -PERL = "/home/git/binary-com/perl/bin/perl" -FULLPERL = "/home/git/binary-com/perl/bin/perl" -ABSPERL = $(PERL) -PERLRUN = $(PERL) -FULLPERLRUN = $(FULLPERL) -ABSPERLRUN = $(ABSPERL) -PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" -PERL_CORE = 0 -PERM_DIR = 755 -PERM_RW = 644 -PERM_RWX = 755 - -MAKEMAKER = /home/git/regentmarkets/cpan/local/lib/perl5/ExtUtils/MakeMaker.pm -MM_VERSION = 7.32 -MM_REVISION = 73200 - -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -MAKE = make -FULLEXT = WebService/Async/SmartyStreets -BASEEXT = SmartyStreets -PARENT_NAME = WebService::Async -DLBASE = $(BASEEXT) -VERSION_FROM = -OBJECT = -LDFROM = $(OBJECT) -LINKTYPE = dynamic -BOOTDEP = - -# Handy lists of source code files: -XS_FILES = -C_FILES = -O_FILES = -H_FILES = -MAN1PODS = -MAN3PODS = - -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h - -# Where to build things -INST_LIBDIR = $(INST_LIB)/WebService/Async -INST_ARCHLIBDIR = $(INST_ARCHLIB)/WebService/Async - -INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) -INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) - -INST_STATIC = -INST_DYNAMIC = -INST_BOOT = - -# Extra linker info -EXPORT_LIST = -PERL_ARCHIVE = -PERL_ARCHIVEDEP = -PERL_ARCHIVE_AFTER = - - -TO_INST_PM = lib/WebService/Async/SmartyStreets.pm \ - lib/WebService/Async/SmartyStreets/Address.pm \ - lib/WebService/Async/SmartyStreets/International.pm \ - lib/WebService/Async/SmartyStreets/USA.pm - - -# --- MakeMaker platform_constants section: -MM_Unix_VERSION = 7.32 -PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc - - -# --- MakeMaker tool_autosplit section: -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' -- - - - -# --- MakeMaker tool_xsubpp section: - - -# --- MakeMaker tools_other section: -SHELL = /bin/sh -CHMOD = chmod -CP = cp -MV = mv -NOOP = $(TRUE) -NOECHO = @ -RM_F = rm -f -RM_RF = rm -rf -TEST_F = test -f -TOUCH = touch -UMASK_NULL = umask 0 -DEV_NULL = > /dev/null 2>&1 -MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' -- -EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' -- -FALSE = false -TRUE = true -ECHO = echo -ECHO_N = echo -n -UNINST = 0 -VERBINST = 0 -MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' -- -DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' -- -UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' -- -WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- -MACROSTART = -MACROEND = -USEMAKEFILE = -f -FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' -- -CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' -- - - -# --- MakeMaker makemakerdflt section: -makemakerdflt : all - $(NOECHO) $(NOOP) - - -# --- MakeMaker dist section: -TAR = tar -TARFLAGS = cvf -ZIP = zip -ZIPFLAGS = -r -COMPRESS = gzip --best -SUFFIX = .gz -SHAR = shar -PREOP = $(NOECHO) $(NOOP) -POSTOP = $(NOECHO) $(NOOP) -TO_UNIX = $(NOECHO) $(NOOP) -CI = ci -u -RCS_LABEL = rcs -Nv$(VERSION_SYM): -q -DIST_CP = best -DIST_DEFAULT = tardist -DISTNAME = WebService-Async-SmartyStreets -DISTVNAME = WebService-Async-SmartyStreets-0.001 - - -# --- MakeMaker macro section: - - -# --- MakeMaker depend section: - - -# --- MakeMaker cflags section: - - -# --- MakeMaker const_loadlibs section: - - -# --- MakeMaker const_cccmd section: - - -# --- MakeMaker post_constants section: - - -# --- MakeMaker pasthru section: - -PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ - LINKTYPE="$(LINKTYPE)"\ - PREFIX="$(PREFIX)"\ - INSTALL_BASE="$(INSTALL_BASE)"\ - PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\ - PASTHRU_INC='$(INC) $(PASTHRU_INC)' - - -# --- MakeMaker special_targets section: -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - - - -# --- MakeMaker c_o section: - - -# --- MakeMaker xs_c section: - - -# --- MakeMaker xs_o section: - - -# --- MakeMaker top_targets section: -all :: pure_all manifypods - $(NOECHO) $(NOOP) - -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) - -help : - perldoc ExtUtils::MakeMaker - - -# --- MakeMaker blibdirs section: -blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_LIBDIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR) - $(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists - -$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHLIB) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB) - $(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists - -$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_AUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR) - $(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists - -$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR) - $(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists - -$(INST_BIN)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_BIN) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN) - $(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists - -$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_SCRIPT) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT) - $(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists - -$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN1DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR) - $(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists - -$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) $(INST_MAN3DIR) - $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR) - $(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists - - - -# --- MakeMaker linkext section: - -linkext :: dynamic - $(NOECHO) $(NOOP) - - -# --- MakeMaker dlsyms section: - - -# --- MakeMaker dynamic_bs section: - -BOOTSTRAP = - - -# --- MakeMaker dynamic section: - -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker dynamic_lib section: - - -# --- MakeMaker static section: - -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) - - -# --- MakeMaker static_lib section: - - -# --- MakeMaker manifypods section: - -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) - - -manifypods : pure_all config - $(NOECHO) $(NOOP) - - - - -# --- MakeMaker processPL section: - - -# --- MakeMaker installbin section: - - -# --- MakeMaker subdirs section: - -# none - -# --- MakeMaker clean_subdirs section: -clean_subdirs : - $(NOECHO) $(NOOP) - - -# --- MakeMaker clean section: - -# Delete temporary files but do not touch installed files. We don't delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs - - $(RM_F) \ - $(BASEEXT).bso $(BASEEXT).def \ - $(BASEEXT).exp $(BASEEXT).x \ - $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \ - $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \ - *$(LIB_EXT) *$(OBJ_EXT) \ - *perl.core MYMETA.json \ - MYMETA.yml blibdirs.ts \ - core core.*perl.*.? \ - core.[0-9] core.[0-9][0-9] \ - core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \ - core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \ - mon.out perl \ - perl$(EXE_EXT) perl.exe \ - perlmain.c pm_to_blib \ - pm_to_blib.ts so_locations \ - tmon.out - - $(RM_RF) \ - blib - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) - - -# --- MakeMaker realclean_subdirs section: -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean - $(NOECHO) $(NOOP) - - -# --- MakeMaker realclean section: -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - - $(RM_F) \ - $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(RM_RF) \ - $(DISTVNAME) - - -# --- MakeMaker metafile section: -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - $(NOECHO) $(ECHO) '---' > META_new.yml - $(NOECHO) $(ECHO) 'abstract: '\''Access SmartyStreet API'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'author:' >> META_new.yml - $(NOECHO) $(ECHO) ' - '\''binary.com '\''' >> META_new.yml - $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' File::Spec: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Handle: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IPC::Open3: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::CheckDeps: '\''0.010'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::FailWarnings: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Fatal: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::More: '\''0.94'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Test::Warn: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: '\''6.64'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml - $(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'license: perl' >> META_new.yml - $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml - $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml - $(NOECHO) $(ECHO) ' version: '\''1.4'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'name: WebService-Async-SmartyStreets' >> META_new.yml - $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml - $(NOECHO) $(ECHO) ' directory:' >> META_new.yml - $(NOECHO) $(ECHO) ' - t' >> META_new.yml - $(NOECHO) $(ECHO) ' - inc' >> META_new.yml - $(NOECHO) $(ECHO) 'requires:' >> META_new.yml - $(NOECHO) $(ECHO) ' Future::AsyncAwait: '\''0.21'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' IO::Async::SSL: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' Net::Async::HTTP: '\''0.44'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' indirect: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' mro: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' parent: '\''0'\''' >> META_new.yml - $(NOECHO) $(ECHO) ' perl: '\''5.014000'\''' >> META_new.yml - $(NOECHO) $(ECHO) 'version: '\''0.001'\''' >> META_new.yml - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - $(NOECHO) $(ECHO) '{' > META_new.json - $(NOECHO) $(ECHO) ' "abstract" : "Access SmartyStreet API",' >> META_new.json - $(NOECHO) $(ECHO) ' "author" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "binary.com "' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json - $(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 7.32, CPAN::Meta::Converter version 2.143240",' >> META_new.json - $(NOECHO) $(ECHO) ' "license" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "perl_5"' >> META_new.json - $(NOECHO) $(ECHO) ' ],' >> META_new.json - $(NOECHO) $(ECHO) ' "meta-spec" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "2"' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "name" : "WebService-Async-SmartyStreets",' >> META_new.json - $(NOECHO) $(ECHO) ' "no_index" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "directory" : [' >> META_new.json - $(NOECHO) $(ECHO) ' "t",' >> META_new.json - $(NOECHO) $(ECHO) ' "inc"' >> META_new.json - $(NOECHO) $(ECHO) ' ]' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "prereqs" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "build" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "configure" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "6.64"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "runtime" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "Future::AsyncAwait" : "0.21",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Async::SSL" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Net::Async::HTTP" : "0.44",' >> META_new.json - $(NOECHO) $(ECHO) ' "indirect" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "mro" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "parent" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "perl" : "5.014000"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "test" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "requires" : {' >> META_new.json - $(NOECHO) $(ECHO) ' "ExtUtils::MakeMaker" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "File::Spec" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IO::Handle" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "IPC::Open3" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::CheckDeps" : "0.010",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::FailWarnings" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Fatal" : "0",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::More" : "0.94",' >> META_new.json - $(NOECHO) $(ECHO) ' "Test::Warn" : "0"' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' }' >> META_new.json - $(NOECHO) $(ECHO) ' },' >> META_new.json - $(NOECHO) $(ECHO) ' "release_status" : "stable",' >> META_new.json - $(NOECHO) $(ECHO) ' "version" : "0.001"' >> META_new.json - $(NOECHO) $(ECHO) '}' >> META_new.json - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json - - -# --- MakeMaker signature section: -signature : - cpansign -s - - -# --- MakeMaker dist_basics section: -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - - - -# --- MakeMaker dist_core section: - -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ - -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' -- - -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) - -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' - -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) - -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) - -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) - -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) - - -# --- MakeMaker distdir section: -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir distmeta - $(NOECHO) $(NOOP) - - - -# --- MakeMaker dist_test section: -disttest : distdir - cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL - cd $(DISTVNAME) && $(MAKE) $(PASTHRU) - cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) - - - -# --- MakeMaker dist_ci section: -ci : - $(ABSPERLRUN) -MExtUtils::Manifest=maniread -e '@all = sort keys %{ maniread() };' \ - -e 'print(qq{Executing $(CI) @all\n});' \ - -e 'system(qq{$(CI) @all}) == 0 or die $$!;' \ - -e 'print(qq{Executing $(RCS_LABEL) ...\n});' \ - -e 'system(qq{$(RCS_LABEL) @all}) == 0 or die $$!;' -- - - -# --- MakeMaker distmeta section: -distmeta : create_distdir metafile - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \ - -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \ - -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \ - -e ' or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' -- - - - -# --- MakeMaker distsignature section: -distsignature : distmeta - $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \ - -e ' or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' -- - $(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE - cd $(DISTVNAME) && cpansign -s - - - -# --- MakeMaker install section: - -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(SITEARCHEXP)/auto/$(FULLEXT)" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "$(PERL_ARCHLIB)/auto/$(FULLEXT)" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ - read "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" \ - write "$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist" \ - "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - - -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "$(DESTINSTALLARCHLIB)/perllocal.pod" - - -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "$(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "$(SITEARCHEXP)/auto/$(FULLEXT)/.packlist" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "$(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist" - - -# --- MakeMaker force section: -# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) - - -# --- MakeMaker perldepend section: - - -# --- MakeMaker makefile section: -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - - - -# --- MakeMaker staticmake section: - -# --- MakeMaker makeaperl section --- -MAP_TARGET = perl -FULLPERL = "/home/git/binary-com/perl/bin/perl" -MAP_PERLINC = "-Iblib/arch" "-Iblib/lib" "-I/home/git/binary-com/perl/lib/5.26.2/x86_64-linux" "-I/home/git/binary-com/perl/lib/5.26.2" - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= - - -# --- MakeMaker test section: -TEST_VERBOSE=0 -TEST_TYPE=test_$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = t/*.t -TESTDB_SW = -d - -testdb :: testdb_$(LINKTYPE) - $(NOECHO) $(NOOP) - -test :: $(TEST_TYPE) - $(NOECHO) $(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_dynamic - $(NOECHO) $(NOOP) - -subdirs-test_dynamic :: dynamic pure_all - -test_dynamic :: subdirs-test_dynamic - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_dynamic :: dynamic pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - -subdirs-test_static :: static pure_all - -test_static :: subdirs-test_static - PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) - -testdb_static :: static pure_all - PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) - - - -# --- MakeMaker ppd section: -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - $(NOECHO) $(ECHO) '' > WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' Access SmartyStreet API' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' binary.com <BINARY@cpan.org>' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) ' ' >> WebService-Async-SmartyStreets.ppd - $(NOECHO) $(ECHO) '' >> WebService-Async-SmartyStreets.ppd - - -# --- MakeMaker pm_to_blib section: - -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) - $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \ - 'lib/WebService/Async/SmartyStreets.pm' 'blib/lib/WebService/Async/SmartyStreets.pm' \ - 'lib/WebService/Async/SmartyStreets/Address.pm' 'blib/lib/WebService/Async/SmartyStreets/Address.pm' \ - 'lib/WebService/Async/SmartyStreets/International.pm' 'blib/lib/WebService/Async/SmartyStreets/International.pm' \ - 'lib/WebService/Async/SmartyStreets/USA.pm' 'blib/lib/WebService/Async/SmartyStreets/USA.pm' - $(NOECHO) $(TOUCH) pm_to_blib - - -# --- MakeMaker selfdocument section: - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't - -static :: - $(NOECHO) $(NOOP) - -dynamic :: - $(NOECHO) $(NOOP) - -config :: - $(NOECHO) $(NOOP) - - -# --- MakeMaker postamble section: - - -# End. diff --git a/.build/vWF93r870W/Makefile.PL b/.build/vWF93r870W/Makefile.PL deleted file mode 100644 index 37cc16f..0000000 --- a/.build/vWF93r870W/Makefile.PL +++ /dev/null @@ -1,73 +0,0 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.012. -use strict; -use warnings; - -use 5.014000; - -use ExtUtils::MakeMaker 6.48; - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Access SmartyStreet API", - "AUTHOR" => "binary.com ", - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.64" - }, - "DISTNAME" => "WebService-Async-SmartyStreets", - "LICENSE" => "perl", - "MIN_PERL_VERSION" => "5.014000", - "NAME" => "WebService::Async::SmartyStreets", - "PREREQ_PM" => { - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "Net::Async::HTTP" => "0.44", - "indirect" => 0, - "mro" => 0, - "parent" => 0 - }, - "TEST_REQUIRES" => { - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0 - }, - "VERSION" => "0.001", - "test" => { - "TESTS" => "t/*.t" - } -); - - -my %FallbackPrereqs = ( - "ExtUtils::MakeMaker" => 0, - "File::Spec" => 0, - "Future::AsyncAwait" => "0.21", - "IO::Async::SSL" => 0, - "IO::Handle" => 0, - "IPC::Open3" => 0, - "Net::Async::HTTP" => "0.44", - "Test::CheckDeps" => "0.010", - "Test::FailWarnings" => 0, - "Test::Fatal" => 0, - "Test::More" => "0.94", - "Test::Warn" => 0, - "indirect" => 0, - "mro" => 0, - "parent" => 0 -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - delete $WriteMakefileArgs{TEST_REQUIRES}; - delete $WriteMakefileArgs{BUILD_REQUIRES}; - $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); diff --git a/.build/vWF93r870W/README b/.build/vWF93r870W/README deleted file mode 100644 index 6a6732a..0000000 --- a/.build/vWF93r870W/README +++ /dev/null @@ -1,12 +0,0 @@ -This archive contains the distribution WebService-Async-SmartyStreets, -version 0.001: - - Access SmartyStreet API - -This software is copyright (c) 2019 by binary.com. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - - -This README file was generated by Dist::Zilla::Plugin::Readme v6.012. diff --git a/.build/vWF93r870W/README.md b/.build/vWF93r870W/README.md deleted file mode 100644 index b2a7ab9..0000000 --- a/.build/vWF93r870W/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# NAME - -WebService::Async::SmartyStreets::Address - parses the response from SmartyStreets API - -# VERSION - -version 0.001 - -# SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -# DESCRIPTION - -This module parses the response by SmartyStreets API into an object to access them. - -## Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -## Sample SmartyStreets API response - - [ - { - "address1": "Hainichener Str. 64", - "address2": "09599 Freiberg", - "components": { - "administrative_area": "Sachsen", - "sub_administrative_area": "Früher: Direktionsbezirk Chemnitz", - "country_iso_3": "DEU", - "locality": "Freiberg", - "postal_code": "09599", - "postal_code_short": "09599", - "premise": "64", - "premise_number": "64", - "thoroughfare": "Hainichener Str.", - "thoroughfare_name": "Hainichenerstr.", - "thoroughfare_trailing_type": "Str." - }, - "metadata": { - "latitude": 50.92221, - "longitude": 13.32259, - "geocode_precision": "Premise", - "max_geocode_precision": "DeliveryPoint", - "address_format": "thoroughfare premise|postal_code locality" - }, - "analysis": { - "verification_status": "Verified", - "address_precision": "Premise", - "max_address_precision": "DeliveryPoint" - } - } - ] - -# Attributes - -All attributes that is parsed includes: - -- input_id -- organization -- latitude -- longitude -- geocode_precision -- max_geocode_precision -- address_format -- verification_status -- address_precision -- max_address_precision - -For more information about the attributes, click [here](https://smartystreets.com/docs/cloud/international-street-api) - -# Methods - -## new - -Creates the object. takes in hashrefs - -## status_at_least - -Checks if the returned response at least hits a certain level (in terms of score). - -## accuracy_at_least - -Checks if the returned response at least hits a certain accuracy (in terms of score). -Instantly returns 0 if the status is lower than 'partial'. - -# Attributes - -## input_id - -Returns the input_id parsed. - -## organization - -Returns the organization parsed. - -## latitude - -Returns the latitude parsed. - -## longitude - -Returns the latitude parsed. - -## geocode_precision - -Returns the geocode_precision parsed. - -## max_geocode_precision - -Returns the max_geocode_precision parsed. - -## address_format - -Returns the value of address_format parsed. - -## status - -Returns the value of verification_status parsed. - -The value returned should be either: - -- none -- ambiguous -- partial -- verified - -## address_precision - -Returns the value of address_precision parsed. - -## max_address_precision - -Returns the value of max_address_precision parsed. - ---- - -# NAME - -WebService::Async::SmartyStreets; - -# SYNOPSIS - - my $loop = IO::Async::Loop->new; - $loop->add( - my $ss = WebService::Async::SmartyStreets->new( - # International token - auth_id => '...' - token => '...' - ) - ); - (async sub { - my $addr = await $ss->verify_international( - # insert address here - ); - })->get; - -# DESCRIPTION - -This class calls the SmartyStreets API and parse the response to `WebService::Async::SmartyStreets::Address` - -# METHODS - -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - -## verify - -Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. - -Takes the following named parameters: -- uri - URI address (in string) -- args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) - -args consists of the following parameters: - -- country - country -- address1 - address line 1 -- address2 - address line 2 -- organization - name of organization (usually building names) -- locality - city -- administrative_area - state -- postal_code - post code -- geocode - true or false - -## get_decoded_data - -Parses the response give by SmartyStreets - -More information of the resposne can be seen in [SmartyStreets Documentation](https://smartystreets.com/docs/cloud/international-street-api) - -Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` - -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# NAME - -WebService::Async::SmartyStreets::USA - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify - -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents - -# AUTHOR - -Binary.com - diff --git a/.build/vWF93r870W/blib/arch/.exists b/.build/vWF93r870W/blib/arch/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/blib/arch/auto/WebService/Async/SmartyStreets/.exists b/.build/vWF93r870W/blib/arch/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/blib/bin/.exists b/.build/vWF93r870W/blib/bin/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/.exists b/.build/vWF93r870W/blib/lib/WebService/Async/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index aee25a0..0000000 --- a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - use Data::Dumper; -warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm b/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/vWF93r870W/blib/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/vWF93r870W/blib/lib/auto/WebService/Async/SmartyStreets/.exists b/.build/vWF93r870W/blib/lib/auto/WebService/Async/SmartyStreets/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/blib/man1/.exists b/.build/vWF93r870W/blib/man1/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/blib/man3/.exists b/.build/vWF93r870W/blib/man3/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/blib/script/.exists b/.build/vWF93r870W/blib/script/.exists deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/cpanfile b/.build/vWF93r870W/cpanfile deleted file mode 100644 index d9703de..0000000 --- a/.build/vWF93r870W/cpanfile +++ /dev/null @@ -1,17 +0,0 @@ -requires 'mro', 0; -requires 'indirect', 0; -requires 'parent', 0; -requires 'Net::Async::HTTP', '>= 0.44'; -requires 'IO::Async::SSL', 0; -requires 'Future::AsyncAwait', '>= 0.21'; - -on configure => sub { - requires 'ExtUtils::MakeMaker', '6.64'; -}; - -on test => sub { - requires 'Test::More'; - requires 'Test::Warn'; - requires 'Test::FailWarnings'; - requires 'Test::Fatal'; -}; \ No newline at end of file diff --git a/.build/vWF93r870W/dist.ini b/.build/vWF93r870W/dist.ini deleted file mode 100644 index 1df65a7..0000000 --- a/.build/vWF93r870W/dist.ini +++ /dev/null @@ -1,67 +0,0 @@ -name = WebService-Async-SmartyStreets -author = binary.com -license = Perl_5 -copyright_holder = binary.com -copyright_year = 2019 -main_module = lib/WebService/Async/SmartyStreets.pm - -[Git::GatherDir] -exclude_filename = Makefile.PL -include_dotfiles = 1 -[PruneCruft] -except = t/rc/\.perl*rc$ -[ManifestSkip] -[MetaYAML] -[License] -[Readme] -[MakeMaker] -eumm_version = 6.48 -prereq_fatal = 1 -[ExecDir] -[ShareDir] -dir = share -[Manifest] -[TestRelease] -[ConfirmRelease] -[UploadToCPAN] -[Prereqs::FromCPANfile] -[Prereqs / BuildRequires] -perl = 5.014000 -[CheckPrereqsIndexed] -[CheckExtraTests] -[VersionFromModule] -[PodVersion] -[PkgVersion] -[GitHub::Meta] -repo = binary-com/perl-WebService-Async-SmartyStreets -[InstallGuide] -[MetaJSON] -[InsertExample] -[PodSyntaxTests] -[MojibakeTests] -[Test::CheckDeps] -[Test::Compile] -[Test::Synopsis] -[Test::EOL] -[Test::Version] -[Test::Pod::LinkCheck] -[PodCoverageTests] -[Test::UnusedVars] -[Test::ReportPrereqs] -[SpellingCommonMistakesTests] -[CopyFilesFromBuild] -copy = Makefile.PL -;[Git::Check] -;allow_dirty = dist.ini -;changelog = Changes -[Git::Commit] -allow_dirty = dist.ini -allow_dirty = cpanfile -allow_dirty = Changes -allow_dirty = Makefile.PL -[Git::Tag] -tag_format = v%v -tag_message = Tag v%v for CPAN release -[ReversionOnRelease] -[NextRelease] -[InstallRelease] \ No newline at end of file diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm deleted file mode 100644 index aee25a0..0000000 --- a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets.pm +++ /dev/null @@ -1,215 +0,0 @@ -package WebService::Async::SmartyStreets; -# ABSTRACT: Access SmartyStreet API - -use strict; -use warnings; - -our $VERSION = '0.001'; - -=head1 NAME - -WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for the validity of the address - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - IO::Async::Loop->new->add($ss); - - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); - -=head1 DESCRIPTION - -This module calls the SmartyStreets API and parse the response to L - -The module is split into 2 packages which are not described in this section. Unless stated otherwise, please consider using the child module. - -For further information, please check the following child modules as they accesses different API: - - L - - This module accesses the SmartyStreets International Street Address API - - L - - This module accesses the SmartyStreets US Street Address API - -Note that this module uses L - -=over 4 - -=cut - -use parent qw(IO::Async::Notifier); - -use mro; -no indirect; - -use URI; -use URI::QueryParam; - -use Future::AsyncAwait; -use Net::Async::HTTP; -use JSON::MaybeUTF8 qw(:v1); - -use WebService::Async::SmartyStreets::Address; - -use Log::Any qw($log); - -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - -=head2 verify - -Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -async sub verify { - use Data::Dumper; -warn "HI: ".Dumper(@_); - my ($self, $args) = @_; - my $uri = URI->new('https://international-street.api.smartystreets.com/verify'); - - $uri->query_param($_ => $args{$_}) for keys %$args; - $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), - ); - $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), - ); - $uri->query_param( - 'input-id' => $self->next_id, - ); - $log->tracef('GET %s', '' . $uri); - my $decoded = await get_decoded_data($self, $uri); - $log->tracef('=> %s', $decoded); - return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; -} - -=head2 get_decoded_data - -Calls the SmartyStreets API then decode and parses the response give by SmartyStreets - - my $decoded = await get_decoded_data($self, $uri) - -Takes the following named parameters: - -=over 4 - -=item * C - URI address that the process will make the call to - -=back - -More information on the response can be seen in L - -Returns an arrayref of hashrefs which the keys corresponds to L - -=cut - -async sub get_decoded_data { - my $self = shift; - my $uri = shift; - - my $res = await $self->ua->GET($uri); - my $response = decode_json_utf8($res->decoded_content); - - return $response; -} - -1; diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm deleted file mode 100644 index 49730e5..0000000 --- a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/Address.pm +++ /dev/null @@ -1,207 +0,0 @@ -package WebService::Async::SmartyStreets::Address; -$WebService::Async::SmartyStreets::Address::VERSION = '0.001'; -use strict; -use warnings; - -=HEAD - -WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API - -=head1 VERSION - -version 0.001 - -=head1 SYNOPSIS - - use WebService::Async::SmartyStreets::Address; - # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address - my $response = WebService::Async::SmartyStreets::Address->new( - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - # Accessing the attributes - print ($response->status); - -=head1 DESCRIPTION - -represents (parses) the return response from SmartyStreets API in an object - -=head2 Construction - - WebService::Async::SmartyStreets::Address->new( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - -=over 4 - -=cut - -sub new { - my ($class, %args) = @_; - bless \%args, $class -} - -=head2 input_id - -Returns the value of the input_id - -Example usage: - - $obj->input_id; - -=cut - -sub input_id { shift->{input_id} } - -=head2 organization - -Returns the value of the organization - -=cut - -sub organization { shift->{organization} } - -=head2 latitude - -Returns the value of the latitude - -=cut - -sub latitude { shift->{metadata}{latitude} } - -=head2 longitude - -Returns the value of the longitude - -=cut - -sub longitude { shift->{metadata}{longitude} } - -=head2 geocode_precision - -Returns the value of the geocode_precision - -=cut - -sub geocode_precision { shift->{metadata}{geocode_precision} } - -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } - -=head2 address_format - -Returns the value of the address_format - -=cut - -sub address_format { shift->{metadata}{address_format} } - -=head2 status - -Returns the value of the status - -=cut - -sub status { lc shift->{analysis}{verification_status} // ''} - -=head2 address_precision - -Returns the value of the address_precision - -=cut - -sub address_precision { lc shift->{analysis}{address_precision} // ''} - -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - -sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} - -# Maps each verification response into a score -my %status_level = ( - none => 0, - partial => 1, - ambiguous => 2, - verified => 3 -); - -=head2 status_at_least - -Checks if the returned response at least hits a certain level (in terms of score) - -Example Usage: - - $obj->status_at_least("partial"); - -Takes L which consists of verification status ("verified", "partial", "ambiguous", "none") - -Returns 1 or 0 - -=cut - -sub status_at_least { - my ($self, $target) = @_; - my $target_level = $status_level{$target} // die 'unknown target status ' . $target; - my $actual_level = $status_level{$self->status} // die 'unknown status ' . $self->status; - return $actual_level >= $target_level; -} - -my %accuracy_level = ( - none => 0, - administrative_area => 1, - locality => 2, - thoroughfare => 3, - premise => 4, - delivery_point => 5, -); - -=pod - -accuracy_at_least - -Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score) - -Example Usage: - - $obj->accuracy_at_least("premise"); - -Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") - -Returns 0 if the status is lower than 'partial' -Returns 1 or 0 - -=cut - -sub accuracy_at_least { - my ($self, $target) = @_; - return 0 unless $self->status_at_least('partial'); - my $target_level = $accuracy_level{$target} // die 'unknown target accuracy ' . $target; - my $actual_level = $accuracy_level{$self->address_precision} // die 'unknown accuracy ' . $self->address_precision; - return $actual_level >= $target_level; -} - -1; - diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm deleted file mode 100644 index 4de5dde..0000000 --- a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/International.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::International; -$WebService::Async::SmartyStreets::International::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::International - calls the SmartyStreets International Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::International->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the International Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://international-street.api.smartystreets.com/verify'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm b/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm deleted file mode 100644 index c029590..0000000 --- a/.build/vWF93r870W/lib/WebService/Async/SmartyStreets/USA.pm +++ /dev/null @@ -1,85 +0,0 @@ -package WebService::Async::SmartyStreets::USA; -$WebService::Async::SmartyStreets::USA::VERSION = '0.001'; -use strict; -use warnings; - -use parent 'WebService::Async::SmartyStreets'; - -=HEAD - -WebService::Async::SmartyStreets::USA - calls the SmartyStreets US Street Address API and checks for the validity of the address - -=head1 SYNOPSIS - - my $ss = WebService::Async::SmartyStreets::US->new( - auth_id => #insert auth_id, - token => #insert token, - ); - -=head1 DESCRIPTION - -This module is the child module of L - -This module specifically accesses the US Street Address API - -For further information, please check L for more subroutines that can be accessed - -=over 4 - -=cut - -=head2 verify - -Overrides verify in L - -Gets the input arguments and pass it to the parents - - my $addr = $ss->verify(, geocode => 'true')->get; - -Takes the following named parameters: - -=over 4 - -=item * C - URI address (URL address to be pointed at) - -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - -=item * C - country - -=item * C - address line 1 - -=item * C - address line 2 - -=item * C - name of organization (usually building names) - -=item * C - city - -=item * C - state - -=item * C - post code - -=item * C - true or false - -=back - -Returns L object - -=cut - -=cut - -sub verify { - my $self = shift; - my $uri = 'https://us-street.api.smartystreets.com/street-address'; - my %args = @_; - - $self->SUPER::verify($uri, %args); -} - -1; \ No newline at end of file diff --git a/.build/vWF93r870W/pm_to_blib b/.build/vWF93r870W/pm_to_blib deleted file mode 100644 index e69de29..0000000 diff --git a/.build/vWF93r870W/t/00-check-deps.t b/.build/vWF93r870W/t/00-check-deps.t deleted file mode 100644 index e5e3679..0000000 --- a/.build/vWF93r870W/t/00-check-deps.t +++ /dev/null @@ -1,17 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::CheckDeps 0.014 - -use Test::More 0.94; -use Test::CheckDeps 0.010; - - -check_dependencies('classic'); - - -if (0) { - BAIL_OUT("Missing dependencies") if !Test::More->builder->is_passing; -} - -done_testing; diff --git a/.build/vWF93r870W/t/00-compile.t b/.build/vWF93r870W/t/00-compile.t deleted file mode 100644 index 0df19f4..0000000 --- a/.build/vWF93r870W/t/00-compile.t +++ /dev/null @@ -1,57 +0,0 @@ -use 5.006; -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.054 - -use Test::More; - -plan tests => 4 + ($ENV{AUTHOR_TESTING} ? 1 : 0); - -my @module_files = ( - 'WebService/Async/SmartyStreets.pm', - 'WebService/Async/SmartyStreets/Address.pm', - 'WebService/Async/SmartyStreets/International.pm', - 'WebService/Async/SmartyStreets/USA.pm' -); - - - -# no fake home requested - -my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; - -use File::Spec; -use IPC::Open3; -use IO::Handle; - -open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; - -my @warnings; -for my $lib (@module_files) -{ - # see L - my $stderr = IO::Handle->new; - - my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); - binmode $stderr, ':crlf' if $^O eq 'MSWin32'; - my @_warnings = <$stderr>; - waitpid($pid, 0); - is($?, 0, "$lib loaded ok"); - - shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ - and not eval { require blib; blib->VERSION('1.01') }; - - if (@_warnings) - { - warn @_warnings; - push @warnings, @_warnings; - } -} - - - -is(scalar(@warnings), 0, 'no warnings found') - or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING}; - - diff --git a/.build/vWF93r870W/t/00-report-prereqs.dd b/.build/vWF93r870W/t/00-report-prereqs.dd deleted file mode 100644 index fcee60e..0000000 --- a/.build/vWF93r870W/t/00-report-prereqs.dd +++ /dev/null @@ -1,53 +0,0 @@ -do { my $x = { - 'build' => { - 'requires' => { - 'perl' => '5.014000' - } - }, - 'configure' => { - 'requires' => { - 'ExtUtils::MakeMaker' => '6.64' - } - }, - 'develop' => { - 'requires' => { - 'Pod::Coverage::TrustPod' => '0', - 'Test::EOL' => '0', - 'Test::Mojibake' => '0', - 'Test::More' => '0.88', - 'Test::Pod' => '1.41', - 'Test::Pod::Coverage' => '1.08', - 'Test::Pod::LinkCheck' => '0', - 'Test::Synopsis' => '0', - 'Test::Version' => '1' - } - }, - 'runtime' => { - 'requires' => { - 'Future::AsyncAwait' => '0.21', - 'IO::Async::SSL' => '0', - 'Net::Async::HTTP' => '0.44', - 'indirect' => '0', - 'mro' => '0', - 'parent' => '0' - } - }, - 'test' => { - 'recommends' => { - 'CPAN::Meta' => '2.120900' - }, - 'requires' => { - 'ExtUtils::MakeMaker' => '0', - 'File::Spec' => '0', - 'IO::Handle' => '0', - 'IPC::Open3' => '0', - 'Test::CheckDeps' => '0.010', - 'Test::FailWarnings' => '0', - 'Test::Fatal' => '0', - 'Test::More' => '0.94', - 'Test::Warn' => '0' - } - } - }; - $x; - } \ No newline at end of file diff --git a/.build/vWF93r870W/t/00-report-prereqs.t b/.build/vWF93r870W/t/00-report-prereqs.t deleted file mode 100644 index e338372..0000000 --- a/.build/vWF93r870W/t/00-report-prereqs.t +++ /dev/null @@ -1,183 +0,0 @@ -#!perl - -use strict; -use warnings; - -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025 - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec; - -# from $version::LAX -my $lax_version_re = - qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? - | - (?:\.[0-9]+) (?:_[0-9]+)? - ) | (?: - v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? - | - (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? - ) - )/x; - -# hide optional CPAN::Meta modules from prereq scanner -# and check if they are available -my $cpan_meta = "CPAN::Meta"; -my $cpan_meta_pre = "CPAN::Meta::Prereqs"; -my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic - -# Verify requirements? -my $DO_VERIFY_PREREQS = 1; - -sub _max { - my $max = shift; - $max = ( $_ > $max ) ? $_ : $max for @_; - return $max; -} - -sub _merge_prereqs { - my ($collector, $prereqs) = @_; - - # CPAN::Meta::Prereqs object - if (ref $collector eq $cpan_meta_pre) { - return $collector->with_merged_prereqs( - CPAN::Meta::Prereqs->new( $prereqs ) - ); - } - - # Raw hashrefs - for my $phase ( keys %$prereqs ) { - for my $type ( keys %{ $prereqs->{$phase} } ) { - for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { - $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; - } - } - } - - return $collector; -} - -my @include = qw( - -); - -my @exclude = qw( - -); - -# Add static prereqs to the included modules list -my $static_prereqs = do 't/00-report-prereqs.dd'; - -# Merge all prereqs (either with ::Prereqs or a hashref) -my $full_prereqs = _merge_prereqs( - ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), - $static_prereqs -); - -# Add dynamic prereqs to the included modules list (if we can) -my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; -if ( $source && $HAS_CPAN_META - && (my $meta = eval { CPAN::Meta->load_file($source) } ) -) { - $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); -} -else { - $source = 'static metadata'; -} - -my @full_reports; -my @dep_errors; -my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; - -# Add static includes into a fake section -for my $mod (@include) { - $req_hash->{other}{modules}{$mod} = 0; -} - -for my $phase ( qw(configure build test runtime develop other) ) { - next unless $req_hash->{$phase}; - next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); - - for my $type ( qw(requires recommends suggests conflicts modules) ) { - next unless $req_hash->{$phase}{$type}; - - my $title = ucfirst($phase).' '.ucfirst($type); - my @reports = [qw/Module Want Have/]; - - for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { - next if $mod eq 'perl'; - next if grep { $_ eq $mod } @exclude; - - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; - - my $want = $req_hash->{$phase}{$type}{$mod}; - $want = "undef" unless defined $want; - $want = "any" if !$want && $want == 0; - - my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; - - if ($prefix) { - my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); - $have = "undef" unless defined $have; - push @reports, [$mod, $want, $have]; - - if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { - if ( $have !~ /\A$lax_version_re\z/ ) { - push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; - } - elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { - push @dep_errors, "$mod version '$have' is not in required range '$want'"; - } - } - } - else { - push @reports, [$mod, $want, "missing"]; - - if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { - push @dep_errors, "$mod is not installed ($req_string)"; - } - } - } - - if ( @reports ) { - push @full_reports, "=== $title ===\n\n"; - - my $ml = _max( map { length $_->[0] } @reports ); - my $wl = _max( map { length $_->[1] } @reports ); - my $hl = _max( map { length $_->[2] } @reports ); - - if ($type eq 'modules') { - splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; - } - else { - splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; - push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; - } - - push @full_reports, "\n"; - } - } -} - -if ( @full_reports ) { - diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; -} - -if ( @dep_errors ) { - diag join("\n", - "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", - "The following REQUIRED prerequisites were not satisfied:\n", - @dep_errors, - "\n" - ); -} - -pass; - -# vim: ts=4 sts=4 sw=4 et: diff --git a/.build/vWF93r870W/t/01_unit_test.t b/.build/vWF93r870W/t/01_unit_test.t deleted file mode 100644 index 7657d0c..0000000 --- a/.build/vWF93r870W/t/01_unit_test.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use Test::More; -use WebService::Async::SmartyStreets::Address; - -subtest 'Parsing test' => sub { - my %dummy_data = ( - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }); - - my $parsed_data = WebService::Async::SmartyStreets::Address->new(%dummy_data); - - # Checks if the data is correctly parsed - is ($parsed_data->input_id, 12345, "input_id is correctly parsed"); - is ($parsed_data->organization, 'Beenary', "Organization is correctly parsed"); - is ($parsed_data->latitude, 101.2131, "latitude is correctly parsed"); - is ($parsed_data->longitude, 180.1223, "longitude is correctly parsed"); - is ($parsed_data->geocode_precision, "Premise", "geocode_precision is correctly parsed"); - is ($parsed_data->status, "partial", "status is correctly parsed"); - # Checks if data can be retrieved if it is not passed in - is ($parsed_data->address_format, undef, "address_format is undef"); - - # Check if status check is correct - is ($parsed_data->status_at_least('none'), 1, "Verification score is correct"); - is ($parsed_data->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($parsed_data->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($parsed_data->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - -}; - -done_testing; \ No newline at end of file diff --git a/.build/vWF93r870W/t/02_smarty_test.t b/.build/vWF93r870W/t/02_smarty_test.t deleted file mode 100644 index d487ea7..0000000 --- a/.build/vWF93r870W/t/02_smarty_test.t +++ /dev/null @@ -1,73 +0,0 @@ -use strict; -use warnings; -use Future; -use Test::More; -use Test::MockModule; -use WebService::Async::SmartyStreets::International; -use JSON::MaybeXS qw( encode_json ); -use Future::AsyncAwait; - -my $user_agent = Test::MockModule->new('Net::Async::HTTP'); -$user_agent->mock( - GET => sub { - return Future->done(); - }); - -my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); -$mock_ss->mock( - auth_id => sub { - return 1; - }, - - token => sub { - return 1; - }, - - get_decoded_data => sub{ - my $data = [{ - input_id => 12345, - organization => 'Beenary', - metadata => { - latitude => 101.2131, - longitude => 180.1223, - geocode_precision => "Premise", - }, - analysis => { - verification_status => "Partial", - address_precision => "Premise", - }, - } - ]; - return Future->done($data); - }); - - -subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...' - ); - - my $addr = $ss->verify( - address1 => 'Jalan 1223 Jamse Bndo 012', - address2 => '03/03', - locality => 'Sukabumi', - administrative_area => 'JB', - postal_code => '43145', - country => 'Indonesia', - geocode => 'true', - )->get(); - - # Check if status check is correct - is ($addr->status_at_least('none'), 1, "Verification score is correct"); - is ($addr->status_at_least('verified'), '', "Verification score is correct"); - - # Check if address accuracy level check is correct - is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); - is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - -}; - -done_testing(); \ No newline at end of file diff --git a/.build/vWF93r870W/t/rc/.perlcriticrc b/.build/vWF93r870W/t/rc/.perlcriticrc deleted file mode 100644 index dba5c2e..0000000 --- a/.build/vWF93r870W/t/rc/.perlcriticrc +++ /dev/null @@ -1,23 +0,0 @@ -severity = 4 -criticism-fatal = 1 -color = 1 -include = TestingAndDebugging::RequireUseWarnings Subroutines::RequireArgUnpacking TestingAndDebugging::ProhibitNoStrict CodeLayout::RequireTidyCode ErrorHandling::RequireCheckingReturnValueOfEval TestingAndDebugging::RequireUseStrict Freenode::Each Freenode::IndirectObjectNotation Freenode::DollarAB Freenode::DeprecatedFeatures BuiltinFunctions::ProhibitReturnOr Dynamic::NoIndirect ProhibitSmartmatch Subroutines::ProhibitAmbiguousFunctionCalls Modules::ProhibitPOSIXimport -exclude = ValuesAndExpressions::ProhibitConstantPragma Subroutines::ProhibitExplicitReturnUndef Freenode::PackageMatchesFilename Freenode::DiscouragedModules - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules=MooseX::Singleton Mojo::Base - -[Subroutines::RequireArgUnpacking] -short_subroutine_statements=3 - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[CodeLayout::RequireTidyCode] -perltidyrc=/home/git/regentmarkets/cpan/rc/.perltidyrc - -[ErrorHandling::RequireCheckingReturnValueOfEval] -severity=4 - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules=MooseX::Singleton Mojo::Base diff --git a/.build/vWF93r870W/t/rc/.perltidyrc b/.build/vWF93r870W/t/rc/.perltidyrc deleted file mode 100644 index 3a6cfa1..0000000 --- a/.build/vWF93r870W/t/rc/.perltidyrc +++ /dev/null @@ -1,63 +0,0 @@ -#line length; keep it quite short so that lists of arguments to subs -#are wrapped ---maximum-line-length=150 - -#Cuddled else --ce - -#Stack Closing Tokens -#http://perltidy.sourceforge.net/stylekey.html#stack_closing_tokens -#"The manual shows how all of these vertical tightness controls may be -#applied independently to each type of non-block opening and opening token." ---stack-closing-tokens - -## Similarly for opening. ---stack-opening-tokens - -#4 char wide tabs instead of spaces for indentation. --i=4 - -#Horizontal Tightness -#http://perltidy.sourceforge.net/stylekey.html#define_horizontal_tightness -#parentheses if ((my $len_tab = length($tabstr)) > 0) --pt=2 - -#square brackets $width = $col[$j + $k] - $col[$j]; --sbt=2 - -#braces $width = $col[$j + $k] - $col[$j]; --bt=2 - -#block braces map { $_ => -M $_ } grep { /\.deb$/ } --bbt=0 - -#no space in front of semi-colons in a for loop ---nospace-for-semicolon - -#no outdenting of long quotes -#http://perltidy.sourceforge.net/stylekey.html#outdenting_long_quotes ---no-outdent-long-quotes - ---add-semicolons - -#always break a new line after a semi-colon ---want-break-after=";" - -#all hash key/values on a separate line ---comma-arrow-breakpoints=0 - -#No newlines before comments --nbbc - ---no-outdent-long-lines - -#do not outdent labels ---no-outdent-labels - ---check-syntax - ---indent-spaced-block-comments - -#4 charachter if its breaks the line ---continuation-indentation=4 - diff --git a/.build/vWF93r870W/xt/author/eol.t b/.build/vWF93r870W/xt/author/eol.t deleted file mode 100644 index 31f0f67..0000000 --- a/.build/vWF93r870W/xt/author/eol.t +++ /dev/null @@ -1,25 +0,0 @@ -use strict; -use warnings; - -# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 - -use Test::More 0.88; -use Test::EOL; - -my @files = ( - 'lib/WebService/Async/SmartyStreets.pm', - 'lib/WebService/Async/SmartyStreets/Address.pm', - 'lib/WebService/Async/SmartyStreets/International.pm', - 'lib/WebService/Async/SmartyStreets/USA.pm', - 't/00-check-deps.t', - 't/00-compile.t', - 't/00-report-prereqs.dd', - 't/00-report-prereqs.t', - 't/01_unit_test.t', - 't/02_smarty_test.t', - 't/rc/.perlcriticrc', - 't/rc/.perltidyrc' -); - -eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; -done_testing; diff --git a/.build/vWF93r870W/xt/author/mojibake.t b/.build/vWF93r870W/xt/author/mojibake.t deleted file mode 100644 index 5ef161e..0000000 --- a/.build/vWF93r870W/xt/author/mojibake.t +++ /dev/null @@ -1,9 +0,0 @@ -#!perl - -use strict; -use warnings qw(all); - -use Test::More; -use Test::Mojibake; - -all_files_encoding_ok(); diff --git a/.build/vWF93r870W/xt/author/pod-coverage.t b/.build/vWF93r870W/xt/author/pod-coverage.t deleted file mode 100644 index 66b3b64..0000000 --- a/.build/vWF93r870W/xt/author/pod-coverage.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. - -use Test::Pod::Coverage 1.08; -use Pod::Coverage::TrustPod; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/.build/vWF93r870W/xt/author/pod-syntax.t b/.build/vWF93r870W/xt/author/pod-syntax.t deleted file mode 100644 index e563e5d..0000000 --- a/.build/vWF93r870W/xt/author/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. -use strict; use warnings; -use Test::More; -use Test::Pod 1.41; - -all_pod_files_ok(); diff --git a/.build/vWF93r870W/xt/author/synopsis.t b/.build/vWF93r870W/xt/author/synopsis.t deleted file mode 100644 index 3e03427..0000000 --- a/.build/vWF93r870W/xt/author/synopsis.t +++ /dev/null @@ -1,5 +0,0 @@ -#!perl - -use Test::Synopsis; - -all_synopsis_ok(); diff --git a/.build/vWF93r870W/xt/author/test-version.t b/.build/vWF93r870W/xt/author/test-version.t deleted file mode 100644 index 247ba9a..0000000 --- a/.build/vWF93r870W/xt/author/test-version.t +++ /dev/null @@ -1,23 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 1.09 -use Test::Version; - -my @imports = qw( version_all_ok ); - -my $params = { - is_strict => 0, - has_version => 1, - multiple => 0, - -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/.build/vWF93r870W/xt/release/common_spelling.t b/.build/vWF93r870W/xt/release/common_spelling.t deleted file mode 100644 index 7aed722..0000000 --- a/.build/vWF93r870W/xt/release/common_spelling.t +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use strict; use warnings; - -use Test::More; - -eval "use Test::Pod::Spelling::CommonMistakes"; -if ( $@ ) { - plan skip_all => 'Test::Pod::Spelling::CommonMistakes required for testing POD'; -} else { - all_pod_files_ok(); -} diff --git a/.build/vWF93r870W/xt/release/pod-linkcheck.t b/.build/vWF93r870W/xt/release/pod-linkcheck.t deleted file mode 100644 index 00602db..0000000 --- a/.build/vWF93r870W/xt/release/pod-linkcheck.t +++ /dev/null @@ -1,20 +0,0 @@ -#!perl - -use strict; -use warnings; -use Test::More; - -foreach my $env_skip ( qw( - SKIP_POD_LINKCHECK -) ){ - plan skip_all => "\$ENV{$env_skip} is set, skipping" - if $ENV{$env_skip}; -} - -eval "use Test::Pod::LinkCheck"; -if ( $@ ) { - plan skip_all => 'Test::Pod::LinkCheck required for testing POD'; -} -else { - Test::Pod::LinkCheck->new->all_pod_ok; -} diff --git a/.build/vWF93r870W/xt/release/unused-vars.t b/.build/vWF93r870W/xt/release/unused-vars.t deleted file mode 100644 index e601076..0000000 --- a/.build/vWF93r870W/xt/release/unused-vars.t +++ /dev/null @@ -1,14 +0,0 @@ -#!perl - -use Test::More 0.96 tests => 1; -eval { require Test::Vars }; - -SKIP: { - skip 1 => 'Test::Vars required for testing for unused vars' - if $@; - Test::Vars->import; - - subtest 'unused vars' => sub { -all_vars_ok(); - }; -}; From 118380b5fdb77300dcd310ad323b30e6aa98f6ea Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 03:14:23 +0000 Subject: [PATCH 39/55] changes sequence and added comments --- lib/WebService/Async/SmartyStreets.pm | 148 +++++++++++------- lib/WebService/Async/SmartyStreets/Address.pm | 82 +++------- 2 files changed, 111 insertions(+), 119 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index ea29850..b5dffb4 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -30,6 +30,8 @@ Note that this module uses L =over 4 +=back + =cut use parent qw(IO::Async::Notifier); @@ -48,73 +50,17 @@ use WebService::Async::SmartyStreets::Address; use Log::Any qw($log); -=head2 configure - -Configures the class with the auth_id and token - -Takes the following named parameters: - -=over 4 - -=item * C - auth_id obtained from SmartyStreet - -=item * C - token obtained from SmartyStreet - -=back - -=cut - -sub configure { - my ($self, %args) = @_; - for my $k (qw(auth_id token api_choice)) { - $self->{$k} = delete $args{$k} if exists $args{$k}; - } - $self->next::method(%args); -} - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } -sub api_choice { shift->{api_choice} } - -sub next_id { - ++(shift->{id} //= 'AA00000000'); -} - -=head2 ua - -Accessor for the L instance which will be used for SmartyStreets API requests. - -=cut - -sub ua { - my ($self) = @_; - $self->{ua} //= do { - $self->add_child( - my $ua = Net::Async::HTTP->new( - fail_on_error => 1, - decode_content => 1, - pipeline => 0, - max_connections_per_host => 4, - user_agent => - 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', - )); - $ua; - } -} - =head2 verify Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - my $addr = $ss->verify('https://international-street.api.smartystreets.com/verify', %address_to_check)->get; - -Please consider using the "verify" subroutine in L or L instead + my $addr = $ss->verify('international', %address_to_check)->get; Takes the following named parameters: =over 4 -=item * C - URI address (URL address to be pointed at) +=item * C - specifies which SmartyStreets API to call (accepts only 'international' and 'us') =item * C - address parameters in a list of keys and values (See L) @@ -154,8 +100,7 @@ async sub verify { international => 'https://international-street.api.smartystreets.com/verify', us => 'https://us-street.api.smartystreets.com/street-address', ); - - $api_choice //= 'international'; + # dies if the $api_choice is not valid die "Invalid API choice" unless ($valid_api_choice{$api_choice}); my $uri = URI->new($valid_api_choice{$api_choice}); @@ -174,9 +119,40 @@ async sub verify { my $decoded = await get_decoded_data($self, $uri); $log->tracef('=> %s', $decoded); + return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; } +=head2 Getters + +The following subroutine returns the attributes respectively: + +Example usage: + + $obj->auth_id; + +=over 4 + +=item * C + +=item * C + +=item * C + +=back + +=cut + +sub auth_id { shift->{auth_id} } +sub token { shift->{token} } +sub api_choice { shift->{api_choice} } + +=head1 ===== INTERNAL METHODS ===== + +The following methods should only be used internally + +=cut + =head2 get_decoded_data Calls the SmartyStreets API then decode and parses the response give by SmartyStreets @@ -207,5 +183,57 @@ async sub get_decoded_data { return $response; } +=head2 configure + +Configures the class with the auth_id and token + +Takes the following named parameters: + +=over 4 + +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet + +=item * C - specifies which SmartyStreet API to access + +=back + +=cut + +sub configure { + my ($self, %args) = @_; + for my $k (qw(auth_id token api_choice)) { + $self->{$k} = delete $args{$k} if exists $args{$k}; + } + $self->next::method(%args); +} + +sub next_id { + ++(shift->{id} //= 'AA00000000'); +} + +=head2 ua + +Accessor for the L instance which will be used for SmartyStreets API requests. + +=cut + +sub ua { + my ($self) = @_; + $self->{ua} //= do { + $self->add_child( + my $ua = Net::Async::HTTP->new( + fail_on_error => 1, + decode_content => 1, + pipeline => 0, + max_connections_per_host => 4, + user_agent => + 'Mozilla/4.0 (WebService::Async::SmartyStreets; BINARY@cpan.org; https://metacpan.org/pod/WebService::Async::SmartyStreets)', + )); + $ua; + } +} + 1; diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index 9f15dbc..a590dce 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -3,17 +3,12 @@ package WebService::Async::SmartyStreets::Address; use strict; use warnings; -=HEAD +=head1 WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API -=head1 VERSION - -version 0.001 - =head1 SYNOPSIS - use WebService::Async::SmartyStreets::Address; # Mocking a simple response from SmartyStreets API and parses it with WebService::Async::SmartyStreets::Address my $response = WebService::Async::SmartyStreets::Address->new( metadata => { @@ -30,7 +25,7 @@ version 0.001 =head1 DESCRIPTION -represents (parses) the return response from SmartyStreets API in an object +Represents (parses) the return response from SmartyStreets API in an object =head2 Construction @@ -46,8 +41,6 @@ represents (parses) the return response from SmartyStreets API in an object verification_status => "Partial", address_precision => "Premise", }); - -=over 4 =cut @@ -56,88 +49,58 @@ sub new { bless \%args, $class } -=head2 input_id - -Returns the value of the input_id +=head2 Getters +The following subroutine returns each attributes respectively: + Example usage: - + $obj->input_id; -=cut +=over 4 -sub input_id { shift->{input_id} } +=item * C -=head2 organization +=item * C -Returns the value of the organization +=item * C -=cut +=item * C -sub organization { shift->{organization} } +=item * C -=head2 latitude +=item * C -Returns the value of the latitude +=item * C -=cut +=item * C -sub latitude { shift->{metadata}{latitude} } +=item * C -=head2 longitude +=item * C -Returns the value of the longitude +=back =cut -sub longitude { shift->{metadata}{longitude} } +sub input_id { shift->{input_id} } -=head2 geocode_precision +sub organization { shift->{organization} } -Returns the value of the geocode_precision +sub latitude { shift->{metadata}{latitude} } -=cut +sub longitude { shift->{metadata}{longitude} } sub geocode_precision { shift->{metadata}{geocode_precision} } -=head2 max_geocode_precision - -Returns the value of the max_geocode_precision - -=cut - sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } -=head2 address_format - -Returns the value of the address_format - -=cut - sub address_format { shift->{metadata}{address_format} } -=head2 status - -Returns the value of the status - -=cut - sub status { lc shift->{analysis}{verification_status} // ''} -=head2 address_precision - -Returns the value of the address_precision - -=cut - sub address_precision { lc shift->{analysis}{address_precision} // ''} -=head2 max_address_precision - -Returns the value of the max_address_precision - -=cut - sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} # Maps each verification response into a score @@ -191,6 +154,7 @@ Example Usage: Takes L which consists of address accuracy ("none", "administrative_area", "locality", "thoroughfare", "premise", "delivery_point") Returns 0 if the status is lower than 'partial' + Returns 1 or 0 =cut From 2b53f1266050a94ec155d3e0e9512c78979980fb Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 03:30:14 +0000 Subject: [PATCH 40/55] fix test --- t/02_smarty_test.t | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/t/02_smarty_test.t b/t/02_smarty_test.t index d487ea7..b05c70b 100644 --- a/t/02_smarty_test.t +++ b/t/02_smarty_test.t @@ -3,7 +3,7 @@ use warnings; use Future; use Test::More; use Test::MockModule; -use WebService::Async::SmartyStreets::International; +use WebService::Async::SmartyStreets; use JSON::MaybeXS qw( encode_json ); use Future::AsyncAwait; @@ -23,6 +23,10 @@ $mock_ss->mock( return 1; }, + api_choice => sub { + return 'international'; + }, + get_decoded_data => sub{ my $data = [{ input_id => 12345, @@ -43,13 +47,15 @@ $mock_ss->mock( subtest "Call SmartyStreets" => sub { - my $ss = WebService::Async::SmartyStreets::International->new( + my $ss = WebService::Async::SmartyStreets->new( # this function is mocked, so the values doesnt matter auth_id => '...', - token => '...' + token => '...', + api_choice => 'international' ); my $addr = $ss->verify( + 'international', address1 => 'Jalan 1223 Jamse Bndo 012', address2 => '03/03', locality => 'Sukabumi', @@ -67,7 +73,6 @@ subtest "Call SmartyStreets" => sub { is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - }; done_testing(); \ No newline at end of file From ddcb4cb167a125cff98bd14b4f97746fe59c6f4a Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 05:03:08 +0000 Subject: [PATCH 41/55] changed implementation --- lib/WebService/Async/SmartyStreets.pm | 18 +++++++++++------- lib/WebService/Async/SmartyStreets/Address.pm | 6 +++--- t/02_smarty_test.t | 15 +++++++++++---- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index b5dffb4..1dbce31 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -54,14 +54,12 @@ use Log::Any qw($log); Makes connection to SmartyStreets API and parses the response into WebService::Async::SmartyStreets::Address. - my $addr = $ss->verify('international', %address_to_check)->get; + my $addr = $ss->verify(%address_to_check)->get; Takes the following named parameters: =over 4 -=item * C - specifies which SmartyStreets API to call (accepts only 'international' and 'us') - =item * C - address parameters in a list of keys and values (See L) =back @@ -70,7 +68,7 @@ args consists of the following parameters: =over 4 -=item * C - country +=item * C - country [THIS FIELD IS COMPULSORY] =item * C - address line 1 @@ -86,6 +84,8 @@ args consists of the following parameters: =item * C - true or false +=item * C - [NOTE] specifies which SmartyStreets API to call (by passing in this parameter, it would overide the one passed in config) + =back Returns L object @@ -94,16 +94,20 @@ Returns L object async sub verify { - my ($self, $api_choice, %args) = @_; + my ($self, %args) = @_; my %valid_api_choice = ( international => 'https://international-street.api.smartystreets.com/verify', us => 'https://us-street.api.smartystreets.com/street-address', ); + + # provides the option to switch API token choice by overiding + my $ss_api_choice = $args{api_choice} // $self->api_choice; + # dies if the $api_choice is not valid - die "Invalid API choice" unless ($valid_api_choice{$api_choice}); + die "Invalid API choice. Takes in 'international' and 'us' only." unless ($valid_api_choice{$ss_api_choice}); - my $uri = URI->new($valid_api_choice{$api_choice}); + my $uri = URI->new($valid_api_choice{$ss_api_choice}); $uri->query_param($_ => $args{$_}) for keys %args; $uri->query_param( diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index a590dce..e1f8078 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -52,9 +52,9 @@ sub new { =head2 Getters The following subroutine returns each attributes respectively: - + Example usage: - + $obj->input_id; =over 4 @@ -79,7 +79,7 @@ Example usage: =item * C -=back +=back =cut diff --git a/t/02_smarty_test.t b/t/02_smarty_test.t index b05c70b..96db085 100644 --- a/t/02_smarty_test.t +++ b/t/02_smarty_test.t @@ -3,6 +3,7 @@ use warnings; use Future; use Test::More; use Test::MockModule; +use Test::Fatal; use WebService::Async::SmartyStreets; use JSON::MaybeXS qw( encode_json ); use Future::AsyncAwait; @@ -54,8 +55,8 @@ subtest "Call SmartyStreets" => sub { api_choice => 'international' ); - my $addr = $ss->verify( - 'international', + my %data = ( + api_choice => 'international', address1 => 'Jalan 1223 Jamse Bndo 012', address2 => '03/03', locality => 'Sukabumi', @@ -63,7 +64,9 @@ subtest "Call SmartyStreets" => sub { postal_code => '43145', country => 'Indonesia', geocode => 'true', - )->get(); + ); + + my $addr = $ss->verify(%data)->get(); # Check if status check is correct is ($addr->status_at_least('none'), 1, "Verification score is correct"); @@ -73,6 +76,10 @@ subtest "Call SmartyStreets" => sub { is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); + # It should die as the api_choice is not valid + $data{api_choice} = 'alibaba'; + + dies_ok { $ss->verify(%data)->get() } 'code that fails'; }; -done_testing(); \ No newline at end of file +done_testing(); From 7cb40727e81cfab7b1005f1e878967ed53bbed53 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 05:09:57 +0000 Subject: [PATCH 42/55] updated readme --- README.md | 76 +++++++++++++------------------------------------------ 1 file changed, 17 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index b2a7ab9..38a4288 100644 --- a/README.md +++ b/README.md @@ -95,10 +95,6 @@ For more information about the attributes, click [here](https://smartystreets.co # Methods -## new - -Creates the object. takes in hashrefs - ## status_at_least Checks if the returned response at least hits a certain level (in terms of score). @@ -169,15 +165,16 @@ WebService::Async::SmartyStreets; $loop->add( my $ss = WebService::Async::SmartyStreets->new( # International token - auth_id => '...' - token => '...' + auth_id => '...', + token => '...', + api_choice => '...', ) ); - (async sub { + async sub { my $addr = await $ss->verify_international( # insert address here ); - })->get; + }->get; # DESCRIPTION @@ -185,34 +182,16 @@ This class calls the SmartyStreets API and parse the response to `WebService::As # METHODS -## configure - -configures the class with auth_id and token. - -## auth_id - -Returns auth_id. - -## token - -Returns token. - -## ua - -Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. - - ## verify Makes connection to SmartyStreets API and parses the response into `WebService::Async::SmartyStreets::Address`. Takes the following named parameters: -- uri - URI address (in string) - args - address parameters in hash (See `WebService::Async::SmartyStreets/verify_international`) args consists of the following parameters: -- country - country +- country - country _[COMPULSORY]_ - address1 - address line 1 - address2 - address line 2 - organization - name of organization (usually building names) @@ -220,6 +199,7 @@ args consists of the following parameters: - administrative_area - state - postal_code - post code - geocode - true or false +- api\_choice - _[OPTIONAL]_ will overide the api_choice in config ## get_decoded_data @@ -229,47 +209,25 @@ More information of the resposne can be seen in [SmartyStreets Documentation](ht Returns an arrayref of hashrefs which the keys corresponds to `WebService::Async::SmartyStreets::Address` -## get_uri - -Dummy sub designed to be overriden in `WebService::Async::SmartyStreets::International` and `WebService::Async::SmartyStreets::USA` - ---- - -# NAME - -WebService::Async::SmartyStreets::International - -# Description - -This module is a child of `WebService::Async::SmartyStreets` - -## get_uri - -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string - -## verify +## configure -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents +configures the class with auth_id and token. -# NAME +## auth_id -WebService::Async::SmartyStreets::USA +Returns auth_id. -# Description +## token -This module is a child of `WebService::Async::SmartyStreets` +Returns token. -## get_uri +## api_choice -Overrides get_uri in `WebService::Async::SmartyStreets` -Returns URI in string +Returns api_choice. -## verify +## ua -Overrides verify in `WebService::Async::SmartyStreets` -Gets the input arguments and pass it to the parents +Accessor for the `Net::Async::HTTP` instance which will be used for SmartyStreets API requests. # AUTHOR From d3542a7f3ff832f6ad8cb2a029485d6bf214caef Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 05:24:22 +0000 Subject: [PATCH 43/55] fix test --- t/02_smarty_test.t | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/t/02_smarty_test.t b/t/02_smarty_test.t index 96db085..3290a2d 100644 --- a/t/02_smarty_test.t +++ b/t/02_smarty_test.t @@ -3,7 +3,7 @@ use warnings; use Future; use Test::More; use Test::MockModule; -use Test::Fatal; +use Test::Fatal qw(dies_ok); use WebService::Async::SmartyStreets; use JSON::MaybeXS qw( encode_json ); use Future::AsyncAwait; @@ -77,9 +77,10 @@ subtest "Call SmartyStreets" => sub { is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); # It should die as the api_choice is not valid - $data{api_choice} = 'alibaba'; - - dies_ok { $ss->verify(%data)->get() } 'code that fails'; + $data{api_choice} = 'test'; + + dies_ok { $ss->verify(%data)->get() } 'Invalid API token test'; + }; done_testing(); From ae94575e10a24bc2d1c013faaf5a3de853b9b44b Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 05:39:55 +0000 Subject: [PATCH 44/55] fix comments --- lib/WebService/Async/SmartyStreets/Address.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index e1f8078..a19f591 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -3,7 +3,7 @@ package WebService::Async::SmartyStreets::Address; use strict; use warnings; -=head1 +=head1 NAME WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API From b3ba2b40c87ab35a549cfa1da96d6955d063b885 Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 06:07:57 +0000 Subject: [PATCH 45/55] adds default api_token choice --- lib/WebService/Async/SmartyStreets.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 1dbce31..5a00121 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -15,7 +15,7 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th my $ss = WebService::Async::SmartyStreets->new( auth_id => #insert auth_id, token => #insert token, - api_choice => #international or us, + api_choice => #international or us, default as 'international' if its undefined ); IO::Async::Loop->new->add($ss); @@ -141,7 +141,7 @@ Example usage: =item * C -=item * C +=item * C - default as 'international' if its undefined =back @@ -149,7 +149,7 @@ Example usage: sub auth_id { shift->{auth_id} } sub token { shift->{token} } -sub api_choice { shift->{api_choice} } +sub api_choice { shift->{api_choice} // 'international' } =head1 ===== INTERNAL METHODS ===== From 5bc9dd19a7f479ec8fbd47b7eab16f90431b04eb Mon Sep 17 00:00:00 2001 From: Nobody User Date: Fri, 5 Apr 2019 08:34:16 +0000 Subject: [PATCH 46/55] comments --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 38a4288..c170323 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ WebService::Async::SmartyStreets; ) ); async sub { - my $addr = await $ss->verify_international( + my $addr = await $ss->verify( # insert address here ); }->get; From a20d289b20c05008b4a3a372b240a6894d674c9e Mon Sep 17 00:00:00 2001 From: Nobody User Date: Mon, 8 Apr 2019 09:32:32 +0000 Subject: [PATCH 47/55] handled error --- lib/WebService/Async/SmartyStreets.pm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 5a00121..64ed634 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -45,6 +45,7 @@ use URI::QueryParam; use Future::AsyncAwait; use Net::Async::HTTP; use JSON::MaybeUTF8 qw(:v1); +use Syntax::Keyword::Try; use WebService::Async::SmartyStreets::Address; @@ -120,6 +121,7 @@ async sub verify { 'input-id' => $self->next_id, ); $log->tracef('GET %s', '' . $uri); + my $decoded = await get_decoded_data($self, $uri); $log->tracef('=> %s', $decoded); @@ -180,11 +182,18 @@ Returns an arrayref of hashrefs which the keys corresponds to Lua->GET($uri); + + my $res; + try { + $res = await $self->ua->GET($uri); + } + catch { + die "Unable to retrieve response."; + }; + my $response = decode_json_utf8($res->decoded_content); - return $response; + return $response->[0]; } =head2 configure From ed50a163bd3d48ea67d88a0266f3f36155f13a84 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 10:32:16 +0800 Subject: [PATCH 48/55] Clear up the doc formatting slightly --- lib/WebService/Async/SmartyStreets.pm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 64ed634..c490449 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -24,13 +24,9 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th =head1 DESCRIPTION -This module calls the SmartyStreets API and parse the response to L +This module calls the SmartyStreets API and parse the response to L. -Note that this module uses L - -=over 4 - -=back +Note that this module uses L. =cut From 0b3a62c810e449d43276137ee1c41ab275245992 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 10:32:42 +0800 Subject: [PATCH 49/55] Fix incorrect parameter documentation --- lib/WebService/Async/SmartyStreets.pm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index c490449..e1f0c20 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -57,14 +57,6 @@ Takes the following named parameters: =over 4 -=item * C - address parameters in a list of keys and values (See L) - -=back - -args consists of the following parameters: - -=over 4 - =item * C - country [THIS FIELD IS COMPULSORY] =item * C - address line 1 From a8914715631d451c358e65a452061e01087f45af Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 10:35:51 +0800 Subject: [PATCH 50/55] Fix up documentation --- lib/WebService/Async/SmartyStreets.pm | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index e1f0c20..772f2fe 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -117,7 +117,7 @@ async sub verify { return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; } -=head2 Getters +=head2 METHODS - Accessors The following subroutine returns the attributes respectively: @@ -139,13 +139,8 @@ Example usage: sub auth_id { shift->{auth_id} } sub token { shift->{token} } -sub api_choice { shift->{api_choice} // 'international' } -=head1 ===== INTERNAL METHODS ===== - -The following methods should only be used internally - -=cut +=head1 METHODS - Internal =head2 get_decoded_data @@ -153,17 +148,17 @@ Calls the SmartyStreets API then decode and parses the response give by SmartySt my $decoded = await get_decoded_data($self, $uri) -Takes the following named parameters: +Takes the following parameters: =over 4 -=item * C - URI address that the process will make the call to +=item * C<$uri> - URI for endpoint =back -More information on the response can be seen in L +More information on the response can be seen in L. -Returns an arrayref of hashrefs which the keys corresponds to L +Returns a L which resolves to an arrayref of L instances. =cut From 0b417d6e989925edeed8e91533a843f4ef314435 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 10:37:56 +0800 Subject: [PATCH 51/55] Drop the api_choice concept --- lib/WebService/Async/SmartyStreets.pm | 39 +++++++++++---------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 772f2fe..8dc1755 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -57,7 +57,7 @@ Takes the following named parameters: =over 4 -=item * C - country [THIS FIELD IS COMPULSORY] +=item * C - country (required) =item * C - address line 1 @@ -73,37 +73,23 @@ Takes the following named parameters: =item * C - true or false -=item * C - [NOTE] specifies which SmartyStreets API to call (by passing in this parameter, it would overide the one passed in config) - =back -Returns L object +Returns a L which should resolve to a valid L instance. =cut async sub verify { - my ($self, %args) = @_; - my %valid_api_choice = ( - international => 'https://international-street.api.smartystreets.com/verify', - us => 'https://us-street.api.smartystreets.com/street-address', - ); - - # provides the option to switch API token choice by overiding - my $ss_api_choice = $args{api_choice} // $self->api_choice; - - # dies if the $api_choice is not valid - die "Invalid API choice. Takes in 'international' and 'us' only." unless ($valid_api_choice{$ss_api_choice}); - - my $uri = URI->new($valid_api_choice{$ss_api_choice}); + my $uri = $self->country_endpoint($args{country})->clone; $uri->query_param($_ => $args{$_}) for keys %args; $uri->query_param( - 'auth-id' => ($self->auth_id // die 'need an auth ID'), + 'auth-id' => ($self->auth_id($args{country}) // die 'need an auth ID'), ); $uri->query_param( - 'auth-token' => ($self->token // die 'need an auth token'), + 'auth-token' => ($self->token($args{country}) // die 'need an auth token'), ); $uri->query_param( 'input-id' => $self->next_id, @@ -181,25 +167,30 @@ async sub get_decoded_data { =head2 configure -Configures the class with the auth_id and token +Configures the instance. Takes the following named parameters: =over 4 -=item * C - auth_id obtained from SmartyStreet +=item * C - auth_id obtained from SmartyStreet -=item * C - token obtained from SmartyStreet +=item * C - token obtained from SmartyStreet -=item * C - specifies which SmartyStreet API to access +=item * C - auth_id obtained from SmartyStreet + +=item * C - token obtained from SmartyStreet =back +Note that you can provide US, international or both API tokens - if an API token +is not available for a L call, then it will return a failed L. + =cut sub configure { my ($self, %args) = @_; - for my $k (qw(auth_id token api_choice)) { + for my $k (qw(international_auth_id international_token us_auth_id us_token)) { $self->{$k} = delete $args{$k} if exists $args{$k}; } $self->next::method(%args); From 3dc7d2e6ad9d6632068d5bdf6859948b2c674211 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 10:54:31 +0800 Subject: [PATCH 52/55] Token and auth ID lookup for US/international --- lib/WebService/Async/SmartyStreets.pm | 34 +++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index 8dc1755..e2d1764 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -103,23 +103,33 @@ async sub verify { return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; } -=head2 METHODS - Accessors - -The following subroutine returns the attributes respectively: - -Example usage: - - $obj->auth_id; +sub country_endpoint { + my ($self, $country) = @_; + return $self->us_endpoint if uc($country) eq 'US'; + return $self->international_endpoint; +} -=over 4 +sub us_endpoint { + shift->{us_endpoint} //= URI->new('https://us-street.api.smartystreets.com/street-address'); +} -=item * C +sub international_endpoint { + shift->{international_endpoint} //= URI->new('https://international-street.api.smartystreets.com/verify'); +} -=item * C +sub auth_id { + my ($self, $country) = @_; + return $self->{us_auth_id} if uc($country) eq 'US'; + return $self->{international_auth_id}; +} -=item * C - default as 'international' if its undefined +sub token { + my ($self, $country) = @_; + return $self->{us_token} if uc($country) eq 'US'; + return $self->{international_token}; +} -=back +=head2 METHODS - Accessors =cut From 52d4f59f7f0f346876aa4d8a18ed5d56670f3457 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 10:57:35 +0800 Subject: [PATCH 53/55] More cleanup --- lib/WebService/Async/SmartyStreets.pm | 31 ++++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets.pm b/lib/WebService/Async/SmartyStreets.pm index e2d1764..3f60ec9 100644 --- a/lib/WebService/Async/SmartyStreets.pm +++ b/lib/WebService/Async/SmartyStreets.pm @@ -13,18 +13,25 @@ WebService::Async::SmartyStreets - calls the SmartyStreets API and checks for th =head1 SYNOPSIS my $ss = WebService::Async::SmartyStreets->new( - auth_id => #insert auth_id, - token => #insert token, - api_choice => #international or us, default as 'international' if its undefined - ); + # Obtain these from your SmartyStreets account page. + # These will be used for US lookups + us_auth_id => '...', + us_token => '...', + # For non-US address lookups, you would also need an international token + international_auth_id => '...', + international_token => '...', + ); IO::Async::Loop->new->add($ss); - my $addr = $ss->verify(, geocode => 'true')->get; - print($addr->status); + print $ss->verify( + city => 'Atlanta', + country => 'US', + geocode => 1 + )->get->status; =head1 DESCRIPTION -This module calls the SmartyStreets API and parse the response to L. +This module provides basic support for the L. Note that this module uses L. @@ -103,6 +110,10 @@ async sub verify { return map { WebService::Async::SmartyStreets::Address->new(%$_) } @$decoded; } +=head2 METHODS - Accessors + +=cut + sub country_endpoint { my ($self, $country) = @_; return $self->us_endpoint if uc($country) eq 'US'; @@ -129,12 +140,6 @@ sub token { return $self->{international_token}; } -=head2 METHODS - Accessors - -=cut - -sub auth_id { shift->{auth_id} } -sub token { shift->{token} } =head1 METHODS - Internal From 8525f5bf3c0fab3a390ad6f064f6dfa3727af89e Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 11:00:26 +0800 Subject: [PATCH 54/55] Update testcase --- t/02_smarty_test.t | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/t/02_smarty_test.t b/t/02_smarty_test.t index 3290a2d..a46f0b6 100644 --- a/t/02_smarty_test.t +++ b/t/02_smarty_test.t @@ -3,9 +3,8 @@ use warnings; use Future; use Test::More; use Test::MockModule; -use Test::Fatal qw(dies_ok); +use Test::Fatal; use WebService::Async::SmartyStreets; -use JSON::MaybeXS qw( encode_json ); use Future::AsyncAwait; my $user_agent = Test::MockModule->new('Net::Async::HTTP'); @@ -16,18 +15,14 @@ $user_agent->mock( my $mock_ss = Test::MockModule->new('WebService::Async::SmartyStreets'); $mock_ss->mock( - auth_id => sub { + international_auth_id => sub { return 1; }, - token => sub { + international_token => sub { return 1; }, - api_choice => sub { - return 'international'; - }, - get_decoded_data => sub{ my $data = [{ input_id => 12345, @@ -49,10 +44,9 @@ $mock_ss->mock( subtest "Call SmartyStreets" => sub { my $ss = WebService::Async::SmartyStreets->new( - # this function is mocked, so the values doesnt matter - auth_id => '...', - token => '...', - api_choice => 'international' + # this function is mocked, so the values are irrelevant + international_auth_id => '...', + international_token => '...', ); my %data = ( @@ -75,12 +69,6 @@ subtest "Call SmartyStreets" => sub { # Check if address accuracy level check is correct is ($addr->accuracy_at_least('locality'), 1, "Accuracy checking is correct"); is ($addr->accuracy_at_least('delivery_point'), '', "Accuracy checking is correct"); - - # It should die as the api_choice is not valid - $data{api_choice} = 'test'; - - dies_ok { $ss->verify(%data)->get() } 'Invalid API token test'; - }; done_testing(); From 50ac347aed8109c776d6479bd26bc34531b16e97 Mon Sep 17 00:00:00 2001 From: Tom Molesworth Date: Tue, 9 Apr 2019 11:02:20 +0800 Subject: [PATCH 55/55] Replace list with headers so we can link to them --- lib/WebService/Async/SmartyStreets/Address.pm | 62 +++++++++++-------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/lib/WebService/Async/SmartyStreets/Address.pm b/lib/WebService/Async/SmartyStreets/Address.pm index a19f591..f7eeb79 100644 --- a/lib/WebService/Async/SmartyStreets/Address.pm +++ b/lib/WebService/Async/SmartyStreets/Address.pm @@ -3,6 +3,8 @@ package WebService::Async::SmartyStreets::Address; use strict; use warnings; +# VERSION + =head1 NAME WebService::Async::SmartyStreets::Address - object that contains the response from SmartyStreets API @@ -49,58 +51,66 @@ sub new { bless \%args, $class } -=head2 Getters - -The following subroutine returns each attributes respectively: +=head2 METHODS - Accessors -Example usage: +=head2 input_id - $obj->input_id; - -=over 4 +=cut -=item * C +sub input_id { shift->{input_id} } -=item * C +=head2 organization -=item * C +=cut -=item * C +sub organization { shift->{organization} } -=item * C +=head2 latitude -=item * C +=cut -=item * C +sub latitude { shift->{metadata}{latitude} } -=item * C +=head2 longitude -=item * C +=cut -=item * C +sub longitude { shift->{metadata}{longitude} } -=back +=head2 geocode_precision =cut -sub input_id { shift->{input_id} } +sub geocode_precision { shift->{metadata}{geocode_precision} } -sub organization { shift->{organization} } +=head2 max_geocode_precision -sub latitude { shift->{metadata}{latitude} } +=cut -sub longitude { shift->{metadata}{longitude} } +sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } -sub geocode_precision { shift->{metadata}{geocode_precision} } +=head2 address_format -sub max_geocode_precision { shift->{metadata}{max_geocode_precision} } +=cut sub address_format { shift->{metadata}{address_format} } +=head2 status + +=cut + sub status { lc shift->{analysis}{verification_status} // ''} +=head2 address_precision + +=cut + sub address_precision { lc shift->{analysis}{address_precision} // ''} +=head2 max_address_precision + +=cut + sub max_address_precision { lc shift->{analysis}{max_address_precision} // ''} # Maps each verification response into a score @@ -141,9 +151,7 @@ my %accuracy_level = ( delivery_point => 5, ); -=pod - -accuracy_at_least +=head2 accuracy_at_least Similar with status at least, checks if the returned response is at least hits a certain accuracy (in terms of score)