From: Don Armstrong Date: Sat, 9 Aug 2008 18:35:33 +0000 (-0700) Subject: * use Params::validate in read_log_records X-Git-Tag: release/2.6.0~486^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=295ab305818419f08f781f604249062ce2cf38ca;hp=439926550d440587be2603644ae68c1c738a3c56;p=debbugs.git * use Params::validate in read_log_records * logfh is a HANDLE, not a SCALAR --- diff --git a/Debbugs/Log.pm b/Debbugs/Log.pm index c4d741e..5e76351 100644 --- a/Debbugs/Log.pm +++ b/Debbugs/Log.pm @@ -169,7 +169,7 @@ sub new spec => {bug_num => {type => SCALAR, optional => 1, }, - logfh => {type => SCALAR, + logfh => {type => HANDLE, optional => 1, }, log_name => {type => SCALAR, @@ -299,14 +299,36 @@ Takes a .log filehandle as input, and returns an array of all records in that file. Throws exceptions using die(), so you may want to wrap this in an eval(). +Uses exactly the same options as Debbugs::Log::new + =cut -sub read_log_records (*) +sub read_log_records { - my $logfh = shift; + my %param; + if (@_ == 1) { + ($param{logfh}) = @_; + } + else { + %param = validate_with(params => \@_, + spec => {bug_num => {type => SCALAR, + optional => 1, + }, + logfh => {type => HANDLE, + optional => 1, + }, + log_name => {type => SCALAR, + optional => 1, + }, + } + ); + } + if (grep({exists $param{$_} and defined $param{$_}} qw(bug_num logfh log_name)) ne 1) { + croak "Exactly one of bug_num, logfh, or log_name must be passed and must be defined"; + } my @records; - my $reader = Debbugs::Log->new($logfh); + my $reader = Debbugs::Log->new(%param); while (defined(my $record = $reader->read_record())) { push @records, $record; }