File Coverage

blib/lib/Dancer/Deprecation.pm
Criterion Covered Total %
statement 25 25 100.0
branch 11 12 91.6
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 42 43 97.6


line stmt bran cond sub pod time code
1             package Dancer::Deprecation;
2             our $AUTHORITY = 'cpan:SUKRIA';
3             #ABSTRACT: handle deprecation messages
4             $Dancer::Deprecation::VERSION = '1.3521';
5 194     194   1812 use strict;
  194         481  
  194         5544  
6 194     194   4436 use warnings;
  194         569  
  194         5553  
7 194     194   1091 use Carp;
  194         468  
  194         11370  
8 194     194   1368 use Dancer::Exception qw(:all);
  194         440  
  194         58573  
9              
10             sub deprecated {
11 5     5 1 3258 my ($class, %args) = @_;
12              
13 5         37 my ( $package, undef, undef, $sub ) = caller(1);
14              
15 5 100       20 unless ( defined $args{feature} ) {
16 3         7 $args{feature} = $sub;
17             }
18              
19 5 100       15 my $deprecated_at = defined $args{version} ? $args{version} : undef;
20              
21 5         6 my $msg;
22 5 100       11 if ( defined $args{message} ) {
23 2         4 $msg = $args{message};
24             }
25             else {
26 3         7 $msg = "$args{feature} has been deprecated";
27             }
28 5 100       12 $msg .= " since version $deprecated_at" if defined $deprecated_at;
29 5 50       11 $msg .= ". " . $args{reason} if defined $args{reason};
30              
31 5 100       16 raise core_deprecation => $msg if $args{fatal};
32 4         543 carp($msg);
33             }
34              
35             1;
36              
37             __END__