[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