File Coverage

lib/Dancer2/Plugin/Argon2.pm
Criterion Covered Total %
statement 22 22 100.0
branch 2 2 100.0
condition n/a
subroutine 7 7 100.0
pod 0 1 0.0
total 31 32 96.8


line stmt bran cond sub pod time code
1             package Dancer2::Plugin::Argon2;
2              
3 3     3   1403298 use 5.008001;
  3         20  
4 3     3   13 use strict;
  3         5  
  3         56  
5 3     3   12 use warnings;
  3         4  
  3         128  
6              
7             our $VERSION = '0.01';
8              
9 3     3   14 use Carp qw(croak);
  3         4  
  3         139  
10 3     3   1404 use Dancer2::Plugin;
  3         206322  
  3         16  
11 3     3   41426 use Dancer2::Plugin::Argon2::Passphrase;
  3         8  
  3         544  
12              
13             has cost => (
14             is => 'ro',
15             from_config => sub { 3 },
16             );
17             has factor => (
18             is => 'ro',
19             from_config => sub { '32M' },
20             );
21             has parallelism => (
22             is => 'ro',
23             from_config => sub { 1 },
24             );
25             has size => (
26             is => 'ro',
27             from_config => sub { 16 },
28             );
29              
30             plugin_keywords(qw( passphrase ));
31              
32             sub passphrase {
33 6     6 0 179790 my ( $plugin, $password ) = @_;
34 6 100       174 croak 'Please provide password argument' unless defined $password;
35 5         13 my $passphrase_settings = { password => $password };
36 5         143 $passphrase_settings->{$_} = $plugin->$_ for (qw( cost factor parallelism size ));
37 5         475 return Dancer2::Plugin::Argon2::Passphrase->new($passphrase_settings);
38             }
39              
40             1;
41             __END__