X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FUser.pm;h=2457e54c4e5d51633794b909c2f18f0e2f9da004;hb=aa8c590aff32ef3f9afa0bf4e852034133875ff5;hp=3b90ec4147c3b095729b84733ea19daa732d6fbd;hpb=e814b29f2bfc8e2ed738b9224a0606040fa116ac;p=debbugs.git diff --git a/Debbugs/User.pm b/Debbugs/User.pm index 3b90ec4..2457e54 100644 --- a/Debbugs/User.pm +++ b/Debbugs/User.pm @@ -83,10 +83,10 @@ use warnings; use strict; use Fcntl ':flock'; use vars qw($VERSION $DEBUG %EXPORT_TAGS @EXPORT_OK @EXPORT); -use base qw(Exporter); +use Exporter qw(import); use Debbugs::Config qw(:config); -use List::Util qw(min); +use List::AllUtils qw(min); use Carp; use IO::File; @@ -109,6 +109,23 @@ sub is_valid_user { return ($u =~ /^[a-zA-Z0-9._+-]+[@][a-z0-9-.]{4,}$/); } +=head2 usertag_file_from_email + + my $filename = usertag_file_from_email($email) + +Turns an email into the filename where the usertag can be located. + +=cut + +sub usertag_file_from_email { + my ($email) = @_; + my $email_length = length($email) % 7; + my $escaped_email = $email; + $escaped_email =~ s/([^0-9a-zA-Z_+.-])/sprintf("%%%02X", ord($1))/eg; + return "$config{usertag_dir}/$email_length/$escaped_email"; +} + + ####################################################################### # The real deal @@ -141,7 +158,7 @@ sub new { }; bless $self, $class; - $self->{filename} = _file_from_email($self->{email}); + $self->{filename} = usertag_file_from_email($self->{email}); if (not -r $self->{filename}) { return $self; } @@ -348,22 +365,6 @@ sub write_usertags { =head1 PRIVATE FUNCTIONS -=head2 _file_from_email - - my $filename = _file_from_email($email) - -Turns an email into the filename where the usertag can be located. - -=cut - -sub _file_from_email { - my ($email) = @_; - my $email_length = length($email) % 7; - my $escaped_email = $email; - $escaped_email =~ s/([^0-9a-zA-Z_+.-])/sprintf("%%%02X", ord($1))/eg; - return "$config{usertag_dir}/$email_length/$escaped_email"; -} - =head2 _read_stanza my @stanza = _read_stanza($fh);