File Coverage

blib/lib/Messaging/Message/Queue.pm
Criterion Covered Total %
statement 19 19 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 25 25 100.0


line stmt bran cond sub pod time code
1             #+##############################################################################
2             # #
3             # File: Messaging/Message/Queue.pm #
4             # #
5             # Description: abstraction of a message queue #
6             # #
7             #-##############################################################################
8              
9             #
10             # module definition
11             #
12              
13             package Messaging::Message::Queue;
14 2     2   1100 use strict;
  2         6  
  2         66  
15 2     2   11 use warnings;
  2         3  
  2         230  
16             our $VERSION = "1.7";
17             our $REVISION = sprintf("%d.%02d", q$Revision: 1.8 $ =~ /(\d+)\.(\d+)/);
18              
19             #
20             # used modules
21             #
22              
23 2     2   16 use Messaging::Message qw(_require);
  2         5  
  2         11  
24 2     2   188 use Params::Validate qw(validate_with :types);
  2         5  
  2         633  
25              
26             #
27             # constructor
28             #
29              
30             sub new : method {
31 2     2 1 8791 my($class, %option, $mqc);
32              
33 2         7 $class = shift(@_);
34 2         63 %option = validate_with(
35             params => \@_,
36             spec => {
37             type => { type => SCALAR, regex => qr/^[a-zA-Z0-9]+$/ },
38             },
39             allow_extra => 1,
40             );
41 2         49 $mqc = $class . "::" . $option{type};
42 2         9 _require($mqc);
43 2         6 delete($option{type});
44 2         14 return($mqc->new(\%option));
45             }
46              
47             1;
48              
49             __DATA__