[Bps-public-commit] r10146 - in Test-Dependencies/trunk: lib/Test/Dependencies
zev at bestpractical.com
zev at bestpractical.com
Thu Dec 27 03:33:22 EST 2007
Author: zev
Date: Thu Dec 27 03:33:22 2007
New Revision: 10146
Added:
Test-Dependencies/trunk/lib/Test/Dependencies/Light.pm
Modified:
Test-Dependencies/trunk/ (props changed)
Test-Dependencies/trunk/MANIFEST
Test-Dependencies/trunk/META.yml
Test-Dependencies/trunk/Makefile.PL
Log:
r10364 at cliffjumper: zev | 2007-12-27 02:52:29 -0500
* add the light style
Modified: Test-Dependencies/trunk/MANIFEST
==============================================================================
--- Test-Dependencies/trunk/MANIFEST (original)
+++ Test-Dependencies/trunk/MANIFEST Thu Dec 27 03:33:22 2007
@@ -12,6 +12,7 @@
inc/Module/Install/WriteAll.pm
lib/Test/Dependencies.pm
lib/Test/Dependencies/Heavy.pm
+lib/Test/Dependencies/Light.pm
Makefile.PL
MANIFEST This list of files
META.yml
Modified: Test-Dependencies/trunk/META.yml
==============================================================================
--- Test-Dependencies/trunk/META.yml (original)
+++ Test-Dependencies/trunk/META.yml Thu Dec 27 03:33:22 2007
@@ -20,6 +20,7 @@
IPC::Cmd: 0
Module::CoreList: 0
PerlReq::Utils: 0
+ Pod::Strip: 0
Test::Builder::Module: 0
YAML: 0
version: 0.09
Modified: Test-Dependencies/trunk/Makefile.PL
==============================================================================
--- Test-Dependencies/trunk/Makefile.PL (original)
+++ Test-Dependencies/trunk/Makefile.PL Thu Dec 27 03:33:22 2007
@@ -10,6 +10,7 @@
requires('IPC::Cmd');
requires('Module::CoreList');
requires('PerlReq::Utils');
+requires('Pod::Strip');
requires('Test::Builder::Module');
requires('YAML');
Added: Test-Dependencies/trunk/lib/Test/Dependencies/Light.pm
==============================================================================
--- (empty file)
+++ Test-Dependencies/trunk/lib/Test/Dependencies/Light.pm Thu Dec 27 03:33:22 2007
@@ -0,0 +1,131 @@
+package Test::Dependencies::Light;
+
+use warnings;
+use strict;
+use Pod::Strip;
+
+use Exporter 'import';
+
+our @EXPORT = qw/get_modules_used_in_file/;
+
+=head1 NAME
+
+Test::Dependencies::Light - Light style for checking for dependencies.
+
+=head1 SYNOPSIS
+
+You shouldn't have to include this module yourself. Look at the
+'style' option of L<Test::Dependencies>.
+
+This module exports exactly one function.
+
+=head1 EXPORTED FUNCTIONS
+
+=head2 get_modules_used_in_file
+
+Returns an array ref of all the modules that the passed file uses.
+This style determines this list by opening the file, stripping out
+any POD, and using regular expressions to try and find use
+statements.
+
+=cut
+
+sub get_modules_used_in_file {
+ my $file = shift;
+ my ($fh, $code);
+ my %used;
+
+ local $/;
+ open $fh, $file or return undef;
+ my $data = <$fh>;
+ close $fh;
+ my $p = Pod::Strip->new;
+ $p->output_string(\$code);
+ $p->parse_string_document($data);
+ $used{$1}++ while $code =~ /^\s*use\s+([\w:]+)/gm;
+ while ($code =~ m{^\s*use\s+base\s+(?:qw.|(?:(?:['"]|q.|qq.)))([\w\s:]+)}gm) {
+ $used{$_}++ for split ' ', $1;
+ }
+
+ return [keys %used];
+}
+
+=head1 AUTHOR
+
+=over 4
+
+=item * Jesse Vincent C<< <jesse at bestpractical.com> >>
+
+=item * Alex Vandiver C<< <alexmv at bestpractical.com> >>
+
+=item * Zev Benjamin C<< <zev at cpan.org> >>
+
+=back
+
+Please report any bugs or feature requests to
+C<bug-test-dependencies at rt.cpan.org>, or through the web interface at
+L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Dependencies>.
+I will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc Test::Dependencies::Light
+
+You can also look for information at:
+
+=over 4
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Test-Dependencies>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/d/Test-Dependencies>
+
+=item * RT: CPAN's request tracker
+
+L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Dependencies>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Test-Dependencies>
+
+=back
+
+=head1 LICENCE AND COPYRIGHT
+
+ Copyright (c) 2007, Best Practical Solutions, LLC. All rights reserved.
+
+ This module is free software; you can redistribute it and/or modify it
+ under the same terms as Perl itself. See perlartistic.
+
+ DISCLAIMER OF WARRANTY
+
+ BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+ FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+ PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+ EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+ ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
+ YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+ NECESSARY SERVICING, REPAIR, OR CORRECTION.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+ REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE
+ TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR
+ CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+ SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+ FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES.
+
+=cut
+
+1;
More information about the Bps-public-commit
mailing list