File Coverage

blib/lib/Mojolicious/Plugin/Materialize.pm
Criterion Covered Total %
statement 42 42 100.0
branch 3 6 50.0
condition 3 6 50.0
subroutine 9 9 100.0
pod 2 2 100.0
total 59 65 90.7


line stmt bran cond sub pod time code
1             package Mojolicious::Plugin::Materialize;
2 2     2   11198 use 5.010001;
  2         6  
3 2     2   7 use strict;
  2         2  
  2         31  
4 2     2   14 use warnings;
  2         2  
  2         56  
5 2     2   403 use Mojo::Base 'Mojolicious::Plugin';
  2         6827  
  2         17  
6 2     2   1679 use Mojolicious::Plugin::AssetPack;
  2         74093  
  2         16  
7 2     2   84 use File::Spec::Functions 'catdir';
  2         1  
  2         79  
8 2     2   7 use Cwd ();
  2         2  
  2         535  
9             our $VERSION = "0.9770";
10              
11             my @DEFAULT_CSS_FILES = qw( materialize.css );
12             my @DEFAULT_JS_FILES = qw( materialize.js);
13              
14             sub asset_path {
15 1     1 1 8 my ( $class ) = @_;
16 1         74 my $path = Cwd::abs_path(__FILE__);
17 1         4 $path =~ s!\.pm$!!;
18 1         2 return $path;
19             }
20              
21             sub register {
22 1     1 1 31 my ( $self, $app, $config ) = @_;
23              
24 1 50       2 $app->plugin('AssetPack') unless eval { $app->asset };
  1         9  
25              
26 1   50     18879 $config->{css} ||= [@DEFAULT_CSS_FILES];
27 1   50     8 $config->{js} ||= [@DEFAULT_JS_FILES];
28 1   50     5 $config->{jquery} //= 1;
29              
30 1         1 push @{ $app->static->paths }, $self->asset_path;
  1         3  
31              
32             # TODO: 'bootstrap_resources.scss'
33 1 50       2 if ( @{ $config->{css} } ) {
  1         3  
34 1         8 $app->asset( 'materialize.css' => map {"/css/$_"}
35 1         2 @{ $config->{css} } );
  1         5  
36             }
37              
38 1 50       3360 if ( @{ $config->{js} } ) {
  1         8  
39 1         2 $app->asset( 'materialize.js' => map {"/js/$_"} @{ $config->{js} },
  1         9  
  1         4  
40             );
41             }
42              
43             }
44              
45             1;
46             __END__