package MooseX::Types::Email::Loose;
use strict;
use warnings;
our $VERSION = '0.01';
use MooseX::Types -declare => [qw{EmailAddress EmailMessage EmailAddressLoose}];
use MooseX::Types::Email ();
use MooseX::Types::Common::String 'NonEmptySimpleStr';
use Email::Valid::Loose;
subtype EmailAddress,
as MooseX::Types::Email::EmailAddress;
subtype EmailMessage,
as MooseX::Types::Email::EmailMessage;
subtype EmailAddressLoose,
as NonEmptySimpleStr,
where { Email::Valid::Loose->address($_) },
message { "Must be a valid e-mail address" };
1;
__END__
=head1 NAME
MooseX::Types::Email::Loose - Email address loose validation type constraint for Moose.
=head1 SYNOPSIS
package MyClass;
use Moose;
use MooseX::Types::Email::Loose qw/EmailAddress EmailMessage EmailAddressLoose/;
has email => ( isa => EmailAddress, required => 1, is => 'ro' );
has message => ( isa => EmailMessage, required => 1, is => 'ro' );
has email_mobile => ( isa => EmailAddressLoose, required => 0, is => 'rw' );
=head1 DESCRIPTION
MooseX::Types::Email::Loose is a subclass of MooseX::Types::Email, which uses Email::Valid::Loose to check for valid email addresses.
=head1 IMPLEMENTATION
This module implements only EmailAddressLoose.
Also can export EmailAddress and EmailMessage, but they are implemented in MooseX::Types::Email.
=head1 AUTHOR
hayajo <hayajo@cpan.org>
=head1 SEE ALSO
L<MooseX::Types::Email>, L<Email::Valid::Loose>
=head1 LICENSE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut