X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FBit%2FMorseSignals%2FReceiver.pm;h=c21c44e4966b381674de482b78f7c514ec1fbce5;hb=c897b49aebc38815d86d180f6009b3a480d5e907;hp=87c0a5b3ad450980dc5087272aead1f40a937545;hpb=0288f57c6aaf2cb133df80f13d78af66ea094902;p=perl%2Fmodules%2FBit-MorseSignals.git diff --git a/lib/Bit/MorseSignals/Receiver.pm b/lib/Bit/MorseSignals/Receiver.pm index 87c0a5b..c21c44e 100644 --- a/lib/Bit/MorseSignals/Receiver.pm +++ b/lib/Bit/MorseSignals/Receiver.pm @@ -15,11 +15,11 @@ Bit::MorseSignals::Receiver - Base class for Bit::MorseSignals receivers. =head1 VERSION -Version 0.04 +Version 0.06 =cut -our $VERSION = '0.04'; +our $VERSION = '0.06'; =head1 SYNOPSIS @@ -54,7 +54,7 @@ L object constructor. With the C<'done'> option, yo sub new { my $class = shift; - $class = ref $class || $class || return; + return unless $class = ref $class || $class; croak 'Optional arguments must be passed as key => value pairs' if @_ % 2; my %opts = @_; my $self = { @@ -100,10 +100,8 @@ sub push { # BM_DATA_{PLAIN, UTF8, STORABLE} $self->{msg} = defined $demanglers[$self->{type}] ? do { - my $msg = eval { - $demanglers[$self->{type}]->($self->{buf}) - }; - $@ ? undef : $msg; + local $SIG{__DIE__} = sub { warn @_ }; + $demanglers[$self->{type}]->($self->{buf}) } : $self->{buf}; $self->reset; @@ -116,8 +114,8 @@ sub push { vec($self->{buf}, $self->{len}++, 1) = $bit; if ($self->{len} >= 3) { - my $type = 2 * vec($self->{buf}, 0, 1) - + vec($self->{buf}, 1, 1); + my $type = 2 * vec($self->{buf}, 1, 1) + + vec($self->{buf}, 0, 1); $type = BM_DATA_PLAIN if vec($self->{buf}, 2, 1); @{$self}{qw/state type buf len/} = (3, $type, '', 0); } @@ -194,7 +192,7 @@ L, L. Vincent Pit, C<< >>, L. -You can contact me by mail or on #perl @ FreeNode (vincent or Prof_Vince). +You can contact me by mail or on C (vincent). =head1 BUGS @@ -206,6 +204,8 @@ You can find documentation for this module with the perldoc command. perldoc Bit::MorseSignals::Receiver +Tests code coverage report is available at L. + =head1 COPYRIGHT & LICENSE Copyright 2008 Vincent Pit, all rights reserved.