File Coverage

blib/lib/App/Kramerius/URI.pm
Criterion Covered Total %
statement 12 40 30.0
branch 0 8 0.0
condition 0 9 0.0
subroutine 4 6 66.6
pod 2 2 100.0
total 18 65 27.6


line stmt bran cond sub pod time code
1             package App::Kramerius::URI;
2              
3 2     2   92739 use strict;
  2         11  
  2         59  
4 2     2   10 use warnings;
  2         4  
  2         49  
5              
6 2     2   4188 use Getopt::Std;
  2         108  
  2         124  
7 2     2   906 use Text::DSV;
  2         1098  
  2         668  
8              
9             our $VERSION = 0.01;
10              
11             # Constructor.
12             sub new {
13 0     0 1   my ($class, @params) = @_;
14              
15             # Create object.
16 0           my $self = bless {}, $class;
17              
18             # Object.
19 0           return $self;
20             }
21              
22             # Run.
23             sub run {
24 0     0 1   my $self = shift;
25              
26             # Process arguments.
27 0           $self->{'_opts'} = {
28             'h' => 0,
29             };
30 0 0 0       if (! getopts('h', $self->{'_opts'}) || @ARGV < 1
      0        
31             || $self->{'_opts'}->{'h'}) {
32              
33 0           print STDERR "Usage: $0 [-h] [--version] kramerius_id\n";
34 0           print STDERR "\t-h\t\tHelp.\n";
35 0           print STDERR "\t--version\tPrint version.\n";
36 0           print STDERR "\tkramerius_id\tKramerius system id. e.g. ".
37             "mzk\n";
38 0           return 1;
39             }
40 0           $self->{'_kramerius_id'} = shift @ARGV;
41              
42             # Read data.
43 0           my $kramerius_data;
44 0           while (my $data = ) {
45 0           $kramerius_data .= $data;
46             }
47 0           my @kramerius = Text::DSV->new->parse($kramerius_data);
48              
49             # Get URL.
50 0           my ($library_url, $kramerius_version);
51 0           my $num = 0;
52 0           foreach my $library_ar (@kramerius) {
53 0           $num++;
54 0 0         if ($num > 0) {
55 0 0         if ($self->{'_kramerius_id'} eq $library_ar->[1]) {
56 0           $library_url = $library_ar->[3];
57 0           $kramerius_version = $library_ar->[0];
58 0           last;
59             }
60             }
61             }
62              
63             # Print URL.
64 0 0 0       if (defined $library_url && $kramerius_version) {
65 0           print $library_url.' '.$kramerius_version."\n";
66             }
67              
68 0           return 0;
69             }
70              
71             1;
72              
73             =pod
74              
75             =encoding utf8
76              
77             =head1 NAME
78              
79             App::Kramerius::URI - Base class for kramerius-uri script.
80              
81             =head1 SYNOPSIS
82              
83             use App::Kramerius::URI;
84              
85             my $app = App::Kramerius::URI->new;
86             my $exit_code = $app->run;
87              
88             =head1 METHODS
89              
90             =head2 C
91              
92             my $app = App::Kramerius::URI->new;
93              
94             Constructor.
95              
96             Returns instance of object.
97              
98             =head2 C
99              
100             my $exit_code = $app->run;
101              
102             Run.
103              
104             Returns 1 for error, 0 for success.
105              
106             =head1 EXAMPLE
107              
108             use strict;
109             use warnings;
110              
111             use App::Kramerius::URI;
112              
113             # Arguments.
114             @ARGV = (
115             'mzk',
116             );
117              
118             # Run.
119             exit App::Kramerius::URI->new->run;
120              
121             # Output like:
122             # http://kramerius.mzk.cz/ 4
123              
124             =head1 DEPENDENCIES
125              
126             L,
127             L.
128              
129             =head1 REPOSITORY
130              
131             L
132              
133             =head1 AUTHOR
134              
135             Michal Josef Špaček L
136              
137             L
138              
139             =head1 LICENSE AND COPYRIGHT
140              
141             © 2021 Michal Josef Špaček
142              
143             BSD 2-Clause License
144              
145             =head1 VERSION
146              
147             0.01
148              
149             =cut
150              
151             __DATA__