File Coverage

blib/lib/Messaging/Message/Queue.pm
Criterion Covered Total %
statement 12 19 63.1
branch n/a
condition n/a
subroutine 4 5 80.0
pod 1 1 100.0
total 17 25 68.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   2021 use strict;
  2         5  
  2         88  
15 2     2   136 use warnings;
  2         5  
  2         192  
16             our $VERSION = "1.5";
17             our $REVISION = sprintf("%d.%02d", q$Revision: 1.7 $ =~ /(\d+)\.(\d+)/);
18              
19             #
20             # used modules
21             #
22              
23 2     2   12 use Messaging::Message qw(_require);
  2         4  
  2         12  
24 2     2   263 use Params::Validate qw(validate_with :types);
  2         3  
  2         968  
25              
26             #
27             # constructor
28             #
29              
30             sub new : method {
31 0     0 1   my($class, %option, $mqc);
32              
33 0           $class = shift(@_);
34 0           %option = validate_with(
35             params => \@_,
36             spec => {
37             type => { type => SCALAR, regex => qr/^[a-zA-Z0-9]+$/ },
38             },
39             allow_extra => 1,
40             );
41 0           $mqc = $class . "::" . $option{type};
42 0           _require($mqc);
43 0           delete($option{type});
44 0           return($mqc->new(\%option));
45             }
46              
47             1;
48              
49             __DATA__