File Coverage

blib/lib/App/Angle2Zodiac.pm
Criterion Covered Total %
statement 15 30 50.0
branch 0 4 0.0
condition 0 6 0.0
subroutine 5 7 71.4
pod 2 2 100.0
total 22 49 44.9


line stmt bran cond sub pod time code
1             package App::Angle2Zodiac;
2              
3 2     2   56726 use strict;
  2         8  
  2         42  
4 2     2   8 use warnings;
  2         3  
  2         36  
5              
6 2     2   2953 use Getopt::Std;
  2         76  
  2         95  
7 2     2   616 use Unicode::UTF8 qw(encode_utf8);
  2         766  
  2         79  
8 2     2   684 use Zodiac::Angle;
  2         47580  
  2         468  
9              
10             our $VERSION = 0.01;
11              
12             # Constructor.
13             sub new {
14 0     0 1   my ($class, @params) = @_;
15              
16             # Create object.
17 0           my $self = bless {}, $class;
18              
19             # Object.
20 0           return $self;
21             }
22              
23             # Run.
24             sub run {
25 0     0 1   my $self = shift;
26              
27             # Process arguments.
28 0           $self->{'_opts'} = {
29             'a' => 0,
30             'h' => 0,
31             };
32 0 0 0       if (! getopts('ah', $self->{'_opts'}) || @ARGV < 1
      0        
33             || $self->{'_opts'}->{'h'}) {
34              
35 0           print STDERR "Usage: $0 [-a] [-h] [--version] angle\n";
36 0           print STDERR "\t-a\tOutput will be in ascii form ".
37             "(e.g. 2 sc 31'28.9560'').\n";
38 0           print STDERR "\t-h\t\tHelp.\n";
39 0           print STDERR "\t--version\tPrint version.\n";
40 0           print STDERR "\tangle\tAngle in numeric (e.g. 212.5247100).\n";
41 0           return 1;
42             }
43 0           $self->{'_angle'} = shift @ARGV;
44              
45             print encode_utf8(Zodiac::Angle->new->angle2zodiac($self->{'_angle'}, {
46             'second' => 1,
47 0 0         $self->{'_opts'}->{'a'} ? (
48             'sign_type' => 'ascii',
49             ) : (),
50             }))."\n";
51              
52 0           return 0;
53             }
54              
55             1;
56              
57              
58             __END__