File Coverage

blib/lib/Story/Interact.pm
Criterion Covered Total %
statement 44 49 89.8
branch 4 6 66.6
condition n/a
subroutine 14 14 100.0
pod 0 1 0.0
total 62 70 88.5


line stmt bran cond sub pod time code
1 5     5   1321743 use 5.010001;
  5         103  
2 5     5   29 use strict;
  5         9  
  5         104  
3 5     5   22 use warnings;
  5         9  
  5         263  
4              
5             package Story::Interact;
6              
7             our $AUTHORITY = 'cpan:TOBYINK';
8             our $VERSION = '0.001014';
9              
10 5     5   2111 use Story::Interact::Analyze ();
  5         17  
  5         151  
11 5     5   42 use Story::Interact::Character ();
  5         12  
  5         79  
12 5     5   2941 use Story::Interact::Harness::Terminal ();
  5         31  
  5         409  
13 5     5   3036 use Story::Interact::Page ();
  5         24  
  5         143  
14 5     5   2114 use Story::Interact::PageSource ();
  5         34  
  5         147  
15 5     5   2337 use Story::Interact::PageSource::DBI ();
  5         22  
  5         149  
16 5     5   2321 use Story::Interact::PageSource::Dir ();
  5         19  
  5         193  
17 5     5   2102 use Story::Interact::PageSource::Waterfall ();
  5         15  
  5         146  
18 5     5   40 use Story::Interact::State ();
  5         15  
  5         82  
19 5     5   31 use Story::Interact::Syntax ();
  5         10  
  5         1049  
20              
21             sub new_page_source {
22 4     4 0 83512 my ( undef, $story ) = @_;
23              
24 4 100       126 if ( -d $story ) {
    50          
    50          
25 2         43 return Story::Interact::PageSource::Dir->new( dir => $story );
26             }
27             elsif ( $story =~ /^dbi:/i ) {
28 0         0 require DBI;
29 0         0 my $dbh = DBI->connect( $story, undef, undef );
30 0         0 return Story::Interact::PageSource::DBI->new( dbh => $dbh );
31             }
32             elsif ( -f $story ) {
33 2         1616 require DBI;
34 2         19472 my $dbh = DBI->connect( "dbi:SQLite:dbname=$story", '', '' );
35 2         13527 return Story::Interact::PageSource::DBI->new( dbh => $dbh );
36             }
37              
38 0           require Carp;
39 0           Carp::croak("Could not open '$story' as a page source");
40             }
41              
42             1;
43              
44             __END__