File Coverage

blib/lib/Games/ABC_Path/Generator/App.pm
Criterion Covered Total %
statement 42 45 93.3
branch 10 14 71.4
condition n/a
subroutine 10 10 100.0
pod 1 1 100.0
total 63 70 90.0


line stmt bran cond sub pod time code
1             package Games::ABC_Path::Generator::App;
2             $Games::ABC_Path::Generator::App::VERSION = '0.6.1';
3 6     6   248964 use 5.006;
  6         23  
4 6     6   39 use strict;
  6         9  
  6         214  
5 6     6   28 use warnings;
  6         13  
  6         487  
6              
7 6     6   3926 use Pod::Usage qw(pod2usage);
  6         476182  
  6         641  
8              
9 6     6   65 use parent 'Games::ABC_Path::Generator::Base';
  6         12  
  6         60  
10              
11 6     6   4852 use Getopt::Long qw(GetOptionsFromArray);
  6         87169  
  6         35  
12              
13 6     6   4166 use Games::ABC_Path::Generator;
  6         22  
  6         2529  
14              
15              
16             sub _argv
17             {
18 8     8   17 my $self = shift;
19              
20 8 100       43 if (@_)
21             {
22 4         31 $self->{_argv} = shift;
23             }
24              
25 8         46 return $self->{_argv};
26             }
27              
28             sub _init
29             {
30 4     4   56 my ( $self, $args ) = @_;
31              
32 4         30 $self->_argv( $args->{argv} );
33              
34 4         12 return;
35             }
36              
37              
38             sub run
39             {
40 4     4 1 28 my ($self) = @_;
41              
42 4         9 my $seed;
43 4         11 my $mode = 'riddle';
44 4         10 my $man = 0;
45 4         12 my $help = 0;
46 4 50       17 if (
47             !GetOptionsFromArray(
48             $self->_argv(),
49             'seed=i' => \$seed,
50             'mode=s' => \$mode,
51             'help|h' => \$help,
52             man => \$man,
53             )
54             )
55             {
56 0         0 pod2usage(2);
57             }
58              
59 4 100       5144 if ($help)
    50          
    50          
60             {
61 1         8 pod2usage(1);
62             }
63             elsif ($man)
64             {
65 0         0 pod2usage( -verbose => 2 );
66             }
67             elsif ( !defined($seed) )
68             {
69 0         0 die "Seed not specified! See --help.";
70             }
71             else
72             {
73 3         47 my $gen = Games::ABC_Path::Generator->new( { seed => $seed, } );
74              
75 3 100       28 if ( $mode eq 'final' )
    50          
76             {
77 1         6 print $gen->calc_final_layout()->as_string( {} );
78             }
79             elsif ( $mode eq 'riddle' )
80             {
81 2         12 my $riddle = $gen->calc_riddle();
82 2         19 my $riddle_string = $riddle->get_riddle_v1_string;
83              
84 2         179 print sprintf( "ABC Path Solver Layout Version 1:\n%s",
85             $riddle_string, );
86             }
87              
88             }
89 3           return;
90             }
91              
92              
93             1; # End of Games::ABC_Path::Generator::App
94              
95             __END__