File Coverage

blib/lib/Mojolicious/Plugin/Credentials.pm
Criterion Covered Total %
statement 35 38 92.1
branch 1 4 25.0
condition 1 6 16.6
subroutine 9 9 100.0
pod 1 1 100.0
total 47 58 81.0


line stmt bran cond sub pod time code
1             package Mojolicious::Plugin::Credentials;
2             $Mojolicious::Plugin::Credentials::VERSION = '0.007';
3 2     2   1654667 use 5.020;
  2         12  
4              
5 2     2   678 use Mojo::Base 'Mojolicious::Plugin', -signatures;
  2         17414  
  2         50  
6              
7 2     2   7866 use Carp 'croak';
  2         4  
  2         170  
8 2     2   1423 use Crypt::Credentials 0.002;
  2         274858  
  2         138  
9 2     2   25 use File::Spec::Functions 'catdir';
  2         4  
  2         197  
10              
11 2     2   2840 use Env qw/$MOJO_CREDENTIALS_KEYS @MOJO_CREDENTIALS_KEYS $MOJO_CREDENTIALS_DIR/;
  2         3648  
  2         12  
12              
13 1     1   3 sub _get_keys($self, $config) {
  1         2  
  1         2  
  1         1  
14 1 50       5 if ($config->{keys}) {
    0          
15 1         2 return @{ $config->{keys} };
  1         5  
16             } elsif ($MOJO_CREDENTIALS_KEYS) {
17 0         0 return map { pack 'H*', $_ } @MOJO_CREDENTIALS_KEYS;
  0         0  
18             } else {
19 0         0 croak 'No credentials key given';
20             }
21             }
22              
23 1     1 1 78 sub register($self, $app, $config) {
  1         3  
  1         4  
  1         3  
  1         2  
24 1   33     6 my $dir = $config->{dir} // $MOJO_CREDENTIALS_DIR // catdir($app->home, 'credentials');
      0        
25 1         26 my @keys = $self->_get_keys($config);
26              
27 1         10 my $credentials = Crypt::Credentials->new(dir => $dir, keys => \@keys);
28              
29 1     3   1299 $app->helper(credentials => sub { $credentials });
  3         51187  
30              
31 1         264 return;
32             }
33              
34             1;
35              
36             # ABSTRACT: A credentials store in mojo
37              
38             __END__