File Coverage

blib/lib/Module/Phalanx100.pm
Criterion Covered Total %
statement 32 32 100.0
branch 7 10 70.0
condition 1 2 50.0
subroutine 7 7 100.0
pod 2 2 100.0
total 49 53 92.4


line stmt bran cond sub pod time code
1             =head1 NAME
2              
3             Module::Phalanx100 - list of Phalanx 100 modules
4              
5             =head1 SYNOPSIS
6              
7             use Module::Phalanx100;
8              
9             @dists = Module::Phalanx100->dists;
10             if (Module::Phalanx100->dists('HTML-Parser')) {
11             ...
12             }
13              
14             @mods = Module::Phalanx100->modules();
15             $dist = Module::Phalanx100->modules('HTML::Parser');
16              
17              
18             =head1 DESCRIPTION
19              
20             This module returns a list of Phalanx 100 distributions and modules,
21             to be used with other applications which need this information.
22              
23             This information is generated by the F<scripts/update-list.pl> script
24             which cross-references the modules in L<Bundle::Phalanx100> with the
25             latest package list from CPAN. Any omissions or errors in those lists
26             will be translated to the lists returned by this module.
27              
28             The following functions are defined but not exportable:
29              
30             =over
31              
32             =item dists
33              
34             If called with no arguments, returns a list of distributions.
35              
36             If called with an argument, it returns true if that distribution is
37             in the list. (It assumes there is no version number.)
38              
39             =item modules
40              
41             If called with no arguments, it returns a list of modules.
42              
43             If called with an argument, it returns the name of the distribution
44             that the module is in, or undef if the module is not in the list.
45              
46             =back
47              
48             =head1 SEE ALSO
49              
50             Bundle::Phalanx100
51              
52             The following modules provide additional CPAN meta-data:
53              
54             Module::CoreList
55             Parse::CPAN::Packages
56              
57             The following modules provide dependency information:
58              
59             CPAN::Dependency
60             CPAN::Unwind
61             Module::Info
62             Module::Dependency
63             Module::Depends
64             Module::MakefilePL::Parse
65             Module::PrintUsed
66             Module::ScanDeps
67              
68             Additional information can be found at the following web sites:
69              
70             =over
71              
72             =item *
73              
74             The Phalanx Project L<http://qa.perl.org/phalanx>
75              
76             =item *
77              
78             CPANTS Testing Service L<http://cpants.dev.zsi.at>
79              
80             =back
81              
82             =head1 DSLIP
83              
84             b - Beta testing
85             d - Developer
86             p - Perl-only
87             f - plain Functions
88             p - Standard Perl
89              
90             See L<http://cpan.uwinnipeg.ca/htdocs/faqs/dslip.html>
91              
92             =head1 AUTHOR
93              
94             Robert Rothenberg <rrwo at cpan.org>
95              
96             =head1 COPYRIGHT AND LICENSE
97              
98             Copyright (C) 2005 by Robert Rothenberg
99              
100             This library is free software; you can redistribute it and/or modify
101             it under the same terms as Perl itself, either Perl version 5.8.6 or,
102             at your option, any later version of Perl 5 you may have available.
103              
104             =cut
105              
106             package Module::Phalanx100;
107              
108 2     2   27519 use 5.004;
  2         7  
  2         73  
109 2     2   11 use strict;
  2         4  
  2         78  
110              
111 2     2   27 use vars qw($VERSION %PhalanxDists %PhalanxModules);
  2         4  
  2         119  
112              
113 2     2   29616 use Tie::IxHash;
  2         33290  
  2         984  
114              
115             $VERSION = '0.05';
116              
117             %PhalanxDists = ( );
118             %PhalanxModules = ( );
119              
120             sub import {
121 1     1   38 my $class = shift;
122 1   50     9 my $ver = shift || 0;
123 1 50       8 die "incompatible version", if ($ver > $VERSION);
124              
125 1         6 tie %PhalanxDists, 'Tie::IxHash';
126 1         17 tie %PhalanxModules, 'Tie::IxHash';
127              
128 1         14 while (my $line = <DATA>) {
129 149         2220 $line =~ s/\s+$//;
130 149 50       279 if ($line) {
131 149         334 my ($module, $dist) = split /\s+/, $line;
132 149         551 $PhalanxDists{ $dist } = -1;
133 149         2392 $PhalanxModules{ $module } = $dist;
134             }
135             }
136 1 50       27 die "no distros" unless (keys %PhalanxDists);
137             }
138              
139             sub dists {
140 202     202 1 45596 my $class = shift;
141 202 100       501 if (my $dist = shift) {
142 201         871 return $PhalanxDists{ $dist };
143             }
144             else {
145 1         4 return (keys %PhalanxDists);
146             }
147             }
148              
149             sub modules {
150 202     202 1 89653 my $class = shift;
151 202 100       498 if (my $mod = shift) {
152 201         1007 return $PhalanxModules{ $mod };
153             }
154             else {
155 1         10 return (keys %PhalanxModules);
156             }
157             }
158              
159              
160             1;
161              
162             # TODO - make this mod_perl friendly by moving away from data blocks?
163              
164             __DATA__
165             Test::Harness Test-Harness
166             Test::Reporter Test-Reporter
167             Test::Builder Test-Simple
168             Test::Builder::Tester Test-Builder-Tester
169             Sub::Uplevel Sub-Uplevel
170             Test::Exception Test-Exception
171             Test::Tester Test-Tester
172             Test::NoWarnings Test-NoWarnings
173             Test::Tester Test-Tester
174             Pod::Escapes Pod-Escapes
175             Pod::Simple Pod-Simple
176             Test::Pod Test-Pod
177             YAML YAML
178             Cwd PathTools
179             Archive::Tar Archive-Tar
180             Module::Build Module-Build
181             Devel::Symdump Devel-Symdump
182             Pod::Coverage Pod-Coverage
183             Test::Pod::Coverage Test-Pod-Coverage
184             Compress::Zlib Compress-Zlib
185             IO::Zlib IO-Zlib
186             Archive::Zip Archive-Zip
187             Archive::Tar Archive-Tar
188             Storable Storable
189             Digest::MD5 Digest-MD5
190             URI URI
191             HTML::Tagset HTML-Tagset
192             HTML::Parser HTML-Parser
193             LWP libwww-perl
194             IPC::Run IPC-Run
195             CPANPLUS CPANPLUS
196             DBI DBI
197             DBD::mysql DBD-mysql
198             GD GD
199             MIME::Base64 MIME-Base64
200             Net::SSLeay Net_SSLeay.pm
201             Net::LDAP perl-ldap
202             XML::Parser XML-Parser
203             Apache::ASP Apache-ASP
204             CGI CGI.pm
205             Date::Manip DateManip
206             DBD::Oracle DBD-Oracle
207             DBD::Pg DBD-Pg
208             Digest::SHA1 Digest-SHA1
209             Digest::HMAC Digest-HMAC
210             HTML::Tagset HTML-Tagset
211             HTML::Template HTML-Template
212             Net::Cmd libnet
213             Mail::Mailer MailTools
214             MIME::Body MIME-tools
215             Net::DNS Net-DNS
216             Time::HiRes Time-HiRes
217             Apache::DBI Apache-DBI
218             Apache::Session Apache-Session
219             Apache::Test Apache-Test
220             AppConfig AppConfig
221             App::Info App-Info
222             Authen::PAM Authen-PAM
223             Authen::SASL Authen-SASL
224             BerkeleyDB BerkeleyDB
225             Bit::Vector Bit-Vector
226             Carp::Clan Carp-Clan
227             Chart::Bars Chart
228             Class::DBI Class-DBI
229             Compress::Zlib::Perl Compress-Zlib-Perl
230             Config::IniFiles Config-IniFiles
231             Convert::ASN1 Convert-ASN1
232             Convert::TNEF Convert-TNEF
233             Convert::UUlib Convert-UUlib
234             CPAN CPAN
235             Crypt::CBC Crypt-CBC
236             Crypt::DES Crypt-DES
237             Crypt::SSLeay Crypt-SSLeay
238             Data::Dumper Data-Dumper
239             Date::Calc Date-Calc
240             DateTime DateTime
241             DBD::DB2 DBD-DB2
242             DBD::ODBC DBD-ODBC
243             DBD::SQLite DBD-SQLite
244             DBD::Sybase DBD-Sybase
245             Device::SerialPort Device-SerialPort
246             Digest::SHA Digest-SHA
247             Encode Encode
248             Event Event
249             Excel::Template Excel-Template
250             Expect Expect
251             ExtUtils::MakeMaker ExtUtils-MakeMaker
252             File::Scan File-Scan
253             File::Spec PathTools
254             File::Tail File-Tail
255             File::Temp File-Temp
256             GD::Graph GDGraph
257             GD::Text GDTextUtil
258             Getopt::Long Getopt-Long
259             HTML::Mason HTML-Mason
260             Image::Size Image-Size
261             IMAP::Admin IMAP-Admin
262             Parse::RecDescent Parse-RecDescent
263             Inline Inline
264             IO IO
265             Spiffy Spiffy
266             IO::All IO-All
267             IO::Socket::SSL IO-Socket-SSL
268             IO::String IO-String
269             IO::Stringy IO-stringy
270             XML::SAX2Perl libxml-perl
271             Mail::Audit Mail-Audit
272             Mail::ClamAV Mail-ClamAV
273             Mail::Sendmail Mail-Sendmail
274             Math::Pari Math-Pari
275             MD5 MD5
276             MIME::Lite MIME-Lite
277             MP3::Info MP3-Info
278             Net::Daemon Net-Daemon
279             Net::FTP::Common Net-FTP-Common
280             Net::Ping Net-Ping
281             Net::Server Net-Server
282             Net::SNMP Net-SNMP
283             Net::SSH::Perl Net-SSH-Perl
284             Net::Telnet Net-Telnet
285             OLE::Storage_Lite OLE-Storage_Lite
286             Params::Validate Params-Validate
287             Image::Magick PerlMagick
288             RPC::PlServer PlRPC
289             Pod::Parser Pod-Parser
290             POE POE
291             SNMP SNMP
292             SOAP::Lite SOAP-Lite
293             Spreadsheet::ParseExcel Spreadsheet-ParseExcel
294             Spreadsheet::WriteExcel Spreadsheet-WriteExcel
295             Spreadsheet::WriteExcelXML Spreadsheet-WriteExcelXML
296             Storable Storable
297             Template Template-Toolkit
298             Term::ReadKey TermReadKey
299             Term::ReadLine::Perl Term-ReadLine-Perl
300             Text::Iconv Text-Iconv
301             Date::Parse TimeDate
302             Time::Timezone Time-modules
303             Unicode::String Unicode-String
304             Unix::Syslog Unix-Syslog
305             Verilog::Parser Verilog-Perl
306             WWW::Mechanize WWW-Mechanize
307             XML::DOM XML-DOM
308             XML::Generator XML-Generator
309             XML::LibXML XML-LibXML
310             XML::NamespaceSupport XML-NamespaceSupport
311             XML::SAX XML-SAX
312             XML::Simple XML-Simple
313             XML::Writer XML-Writer