File Coverage

blib/lib/MooseX/App/Plugin/Version/Command.pm
Criterion Covered Total %
statement 26 26 100.0
branch 2 2 100.0
condition n/a
subroutine 6 6 100.0
pod 0 1 0.0
total 34 35 97.1


line stmt bran cond sub pod time code
1             # ============================================================================
2             package MooseX::App::Plugin::Version::Command;
3             # ============================================================================
4              
5 4     4   873 use 5.010;
  4         10  
6 4     4   16 use utf8;
  4         6  
  4         21  
7              
8 4     4   71 use namespace::autoclean;
  4         5  
  4         23  
9 4     4   239 use Moose;
  4         6  
  4         20  
10 4     4   18212 use MooseX::App::Command;
  4         10  
  4         35  
11              
12             command_short_description q(Print the current version);
13              
14             sub version {
15 1     1 0 3 my ($self,$app) = @_;
16              
17 1         3 my $version = '';
18 1         7 $version .= $app->meta->app_base. ' version '.$app->VERSION."\n";
19 1         16 $version .= "MooseX::App version ".$MooseX::App::VERSION."\n";
20 1         14 $version .= "Perl version ".sprintf("%vd", $^V);
21              
22 1         4 my $message_class = $app->meta->app_messageclass;
23              
24 1         7 my @parts = ($message_class->new({
25             header => 'VERSION',
26             body => MooseX::App::Utils::format_text($version)
27             }));
28              
29 1         4 my %pod_raw = MooseX::App::Utils::parse_pod($app->meta->name);
30              
31 1         140 foreach my $part ('COPYRIGHT','LICENSE','COPYRIGHT AND LICENSE','AUTHOR','AUTHORS') {
32 5 100       13 if (defined $pod_raw{$part}) {
33             push(@parts,$message_class->new({
34             header => $part,
35 1         7 body => MooseX::App::Utils::format_text($pod_raw{$part}),
36             }));
37             }
38             }
39              
40 1         33 return MooseX::App::Message::Envelope->new(@parts);
41             }
42              
43             __PACKAGE__->meta->make_immutable;
44             1;