File Coverage

blib/lib/RabbitMQ/Consumer/Batcher/Message.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1             package RabbitMQ::Consumer::Batcher::Message;
2 3     3   19 use Moose;
  3         8  
  3         26  
3              
4 3     3   15073 use namespace::autoclean;
  3         10  
  3         33  
5 3     3   267 use Moose::Util::TypeConstraints qw(duck_type);
  3         10  
  3         33  
6              
7             =head1 NAME
8              
9             RabbitMQ::Consumer::Batcher::Message - rmq message
10              
11             =head1 SYNOPSIS
12              
13             RabbitMQ::Consumer::Batcher::Message->new(
14             header => $msg->{header},
15             body => $msg->{body},
16             deliver => $msg->{deliver},
17             consumer => $consumer,
18             );
19              
20             =head1 DESCRIPTION
21              
22             =head1 METHODS
23              
24             =head2 new(%attributes)
25              
26             =head3 %attributes
27              
28             =head4 header
29              
30             =cut
31              
32             has 'header' => (
33             is => 'ro',
34             #bless(
35             # {
36             # 'content_type' => 'application/json',
37             # 'priority' => 1,
38             # 'timestamp' => 1498807603,
39             # 'user_id' => 'guest',
40             # 'delivery_mode' => 1,
41             # 'headers' => {
42             # 'trials' => '8'
43             # }
44             # },
45             # 'Net::AMQP::Protocol::Basic::ContentHeader'
46             #);
47             isa => duck_type('interface like Net::AMQP::Protocol::Basic::ContentHeader', [qw(content_type priority timestamp user_id delivery_mode headers)]),
48             required => 1,
49             );
50              
51             =head4 body
52              
53             =cut
54              
55             has 'body' => (
56             is => 'ro',
57             isa => duck_type('interface like Net::AMQP::Frame::Body', [qw(payload)]),
58             required => 1,
59             );
60              
61             =head4 deliver
62              
63             =cut
64              
65             has 'deliver' => (
66             is => 'ro',
67             isa => duck_type('interface like Net::AMQP::Frame::Method', [qw(method_frame)]),
68             required => 1,
69             );
70              
71             =head4 consumer
72              
73             =cut
74              
75             has 'consumer' => (
76             is => 'ro',
77             isa => duck_type('Consumer interface', [qw(ack reject reject_and_republish)]),
78             required => 1,
79             );
80              
81             =head1 LICENSE
82              
83             Copyright (C) Avast Software.
84              
85             This library is free software; you can redistribute it and/or modify
86             it under the same terms as Perl itself.
87              
88             =head1 AUTHOR
89              
90             Jan Seidl E<lt>seidl@avast.comE<gt>
91              
92             =cut
93              
94             __PACKAGE__->meta->make_immutable();
95             1;