Email-Valid-Loose-0.05/000075500000000000000000000000001161472672700146145ustar00rootroot00000000000000Email-Valid-Loose-0.05/Changes000064400000000000000000000010441161472672700161060ustar00rootroot00000000000000Revision history for Perl extension Email::Valid::Loose. 0.05 Fri Jun 23 23:58:36 JST 2006 - Update the module so it works with recent Email::Valid 0.04 Thu Feb 26 18:25:46 JST 2004 - Fixed bug that address(-address => $address) is broken 0.03 Fri Jan 30 17:50:39 JST 2004 * Now allows '-foo@example.com' due to quick hack (Thanks to Takefumi Kimura) 0.02 Tue Jan 8 01:12:00 JST 2002 - Added dependency on Email::Valid in Makefile.PL - Added Changes file 0.01 Tue Jan 8 01:11:27 JST 2002 - original versionEmail-Valid-Loose-0.05/MANIFEST000064400000000000000000000002501161472672700157420ustar00rootroot00000000000000Changes lib/Email/Valid/Loose.pm Makefile.PL MANIFEST README t/00_compile.t t/01_loose.t META.yml Module meta-data (added by MakeMaker) Email-Valid-Loose-0.05/META.yml000064400000000000000000000006161161472672700160700ustar00rootroot00000000000000# http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Email-Valid-Loose version: 0.05 version_from: lib/Email/Valid/Loose.pm installdirs: site requires: Email::Valid: 0.17 Test::More: 0.32 distribution_type: module generated_by: ExtUtils::MakeMaker version 6.30 Email-Valid-Loose-0.05/Makefile.PL000064400000000000000000000003401161472672700165630ustar00rootroot00000000000000use ExtUtils::MakeMaker; WriteMakefile( 'NAME' => 'Email::Valid::Loose', 'VERSION_FROM' => 'lib/Email/Valid/Loose.pm', # finds $VERSION 'PREREQ_PM' => { Test::More => 0.32, Email::Valid => 0.17, }, ); Email-Valid-Loose-0.05/README000064400000000000000000000014711161472672700154770ustar00rootroot00000000000000NAME Email::Valid::Loose - Email::Valid which allows dot before at mark SYNOPSIS use Email::Valid::Loose; # same as Email::Valid my $addr = 'read_rfc822.@docomo.ne.jp'; my $is_valid = Email::Valid::Loose->address($addr); DESCRIPTION Email::Valid::Loose is a subclass of Email::Valid, which allows . (dot) before @ (at-mark). It is invalid in RFC822, but is commonly used in some of mobile phone addresses in Japan (like docomo.ne.jp or jp-t.ne.jp). IMPLEMENTATION This module overrides "rfc822" method in Email::Valid. AUTHOR Tatsuhiko Miyagawa This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO the Email::Valid manpage, the Mail::Address::MobileJp manpage Email-Valid-Loose-0.05/lib/000075500000000000000000000000001161472672700153625ustar00rootroot00000000000000Email-Valid-Loose-0.05/lib/Email/000075500000000000000000000000001161472672700164115ustar00rootroot00000000000000Email-Valid-Loose-0.05/lib/Email/Valid/000075500000000000000000000000001161472672700174505ustar00rootroot00000000000000Email-Valid-Loose-0.05/lib/Email/Valid/Loose.pm000064400000000000000000000043721161472672700210750ustar00rootroot00000000000000package Email::Valid::Loose; use strict; our $VERSION = '0.05'; use Email::Valid 0.17; use base qw(Email::Valid); # This is BNF from RFC822 my $esc = '\\\\'; my $period = '\.'; my $space = '\040'; my $open_br = '\['; my $close_br = '\]'; my $nonASCII = '\x80-\xff'; my $ctrl = '\000-\037'; my $cr_list = '\n\015'; my $qtext = qq/[^$esc$nonASCII$cr_list\"]/; # " my $dtext = qq/[^$esc$nonASCII$cr_list$open_br$close_br]/; my $quoted_pair = qq<$esc>.qq<[^$nonASCII]>; my $atom_char = qq/[^($space)<>\@,;:\".$esc$open_br$close_br$ctrl$nonASCII]/; # " my $atom = qq<$atom_char+(?!$atom_char)>; my $quoted_str = qq<\"$qtext*(?:$quoted_pair$qtext*)*\">; # " my $word = qq<(?:$atom|$quoted_str)>; my $domain_ref = $atom; my $domain_lit = qq<$open_br(?:$dtext|$quoted_pair)*$close_br>; my $sub_domain = qq<(?:$domain_ref|$domain_lit)>; my $domain = qq<$sub_domain(?:$period$sub_domain)*>; my $local_part = qq<$word(?:$word|$period)*>; # This part is modified # Finally, the address-spec regex (more or less) use vars qw($Addr_spec_re); $Addr_spec_re = qr<$local_part\@$domain>; sub rfc822 { my $self = shift; my %args = $self->_rearrange([qw( address )], \@_); my $addr = $args{address} or return $self->details('rfc822'); $addr = $addr->address if UNIVERSAL::isa($addr, 'Mail::Address'); return $self->details('rfc822') unless $addr =~ m/^$Addr_spec_re$/o; return 1; } 1; __END__ =head1 NAME Email::Valid::Loose - Email::Valid which allows dot before at mark =head1 SYNOPSIS use Email::Valid::Loose; # same as Email::Valid my $addr = 'read_rfc822.@docomo.ne.jp'; my $is_valid = Email::Valid::Loose->address($addr); =head1 DESCRIPTION Email::Valid::Loose is a subclass of Email::Valid, which allows . (dot) before @ (at-mark). It is invalid in RFC822, but is commonly used in some of mobile phone addresses in Japan (like docomo.ne.jp or jp-t.ne.jp). =head1 IMPLEMENTATION This module overrides C method in Email::Valid. =head1 AUTHOR Tatsuhiko Miyagawa Emiyagawa@bulknews.netE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L, L =cut Email-Valid-Loose-0.05/t/000075500000000000000000000000001161472672700150575ustar00rootroot00000000000000Email-Valid-Loose-0.05/t/00_compile.t000064400000000000000000000001171161472672700171720ustar00rootroot00000000000000use strict; use Test::More tests => 1; BEGIN { use_ok 'Email::Valid::Loose' } Email-Valid-Loose-0.05/t/01_loose.t000064400000000000000000000006371161472672700166730ustar00rootroot00000000000000use strict; use Test::More; use Email::Valid::Loose; my @valid = ( 'miyagawa@cpan.org', 'rfc822.@docomo.ne.jp', '-aaaa@foobar.ezweb.ne.jp', ); my @invalid = ( 'doobar', 'doo[@eeee.com', '', 'foobar@doo.com ', ); plan tests => (@valid + @invalid); for (@valid) { ok( Email::Valid::Loose->address($_), $_ ); } for (@invalid) { ok( !Email::Valid::Loose->address($_), $_ ); }