File Coverage

blib/lib/Story/Interact/PageSource/Dir.pm
Criterion Covered Total %
statement 24 26 92.3
branch 2 2 100.0
condition n/a
subroutine 8 9 88.8
pod 0 2 0.0
total 34 39 87.1


line stmt bran cond sub pod time code
1 5     5   105 use 5.010001;
  5         21  
2 5     5   32 use strict;
  5         12  
  5         108  
3 5     5   28 use warnings;
  5         14  
  5         280  
4              
5             package Story::Interact::PageSource::Dir;
6              
7             our $AUTHORITY = 'cpan:TOBYINK';
8             our $VERSION = '0.001014';
9              
10 5     5   30 use Moo;
  5         22  
  5         42  
11 5     5   1889 use Types::Common -types;
  5         14  
  5         45  
12 5     5   73907 use Types::Path::Tiny -types;
  5         17  
  5         37  
13 5     5   6736 use namespace::clean;
  5         23  
  5         49  
14              
15             with 'Story::Interact::PageSource';
16              
17             has 'dir' => (
18             is => 'ro',
19             isa => Dir,
20             coerce => 1,
21             required => 1,
22             );
23              
24             sub get_source_code {
25 46     46 0 209 my ( $self, $page_id ) = @_;
26 46         253 my $file = $self->dir->child( join q[.], $page_id, 'page.pl' );
27 46 100       2213 return unless $file->exists;
28 34         984 return $file->slurp_utf8;
29             }
30              
31             sub all_page_ids {
32 0     0 0   my ( $self ) = @_;
33 0           map $_->basename( '.page.pl' ), $self->dir->children( qr/\.page\.pl\z/ );
34             }
35              
36             1;