From c2d16c87e004d11dc3f6b21fa898071c965e6dcf Mon Sep 17 00:00:00 2001 From: "Zane C. Bowers-Hadley" Date: Tue, 22 Jan 2019 05:29:32 -0600 Subject: [PATCH] init it all --- GQRX-Scanner/Changes | 5 ++ GQRX-Scanner/MANIFEST | 9 ++ GQRX-Scanner/Makefile.PL | 26 ++++++ GQRX-Scanner/README | 85 +++++++++++++++++++ GQRX-Scanner/ignore.txt | 18 ++++ GQRX-Scanner/lib/GQRX/Scanner.pm | 141 +++++++++++++++++++++++++++++++ GQRX-Scanner/t/00-load.t | 13 +++ GQRX-Scanner/t/manifest.t | 15 ++++ GQRX-Scanner/t/pod-coverage.t | 24 ++++++ GQRX-Scanner/t/pod.t | 16 ++++ GQRX-Scanner/xt/boilerplate.t | 57 +++++++++++++ README.md | 0 12 files changed, 409 insertions(+) create mode 100644 GQRX-Scanner/Changes create mode 100644 GQRX-Scanner/MANIFEST create mode 100644 GQRX-Scanner/Makefile.PL create mode 100644 GQRX-Scanner/README create mode 100644 GQRX-Scanner/ignore.txt create mode 100644 GQRX-Scanner/lib/GQRX/Scanner.pm create mode 100644 GQRX-Scanner/t/00-load.t create mode 100644 GQRX-Scanner/t/manifest.t create mode 100644 GQRX-Scanner/t/pod-coverage.t create mode 100644 GQRX-Scanner/t/pod.t create mode 100644 GQRX-Scanner/xt/boilerplate.t create mode 100644 README.md diff --git a/GQRX-Scanner/Changes b/GQRX-Scanner/Changes new file mode 100644 index 0000000..818f6d0 --- /dev/null +++ b/GQRX-Scanner/Changes @@ -0,0 +1,5 @@ +Revision history for GQRX-Scanner + +0.01 Date/time + First version, released on an unsuspecting world. + diff --git a/GQRX-Scanner/MANIFEST b/GQRX-Scanner/MANIFEST new file mode 100644 index 0000000..be87232 --- /dev/null +++ b/GQRX-Scanner/MANIFEST @@ -0,0 +1,9 @@ +Changes +lib/GQRX/Scanner.pm +Makefile.PL +MANIFEST This list of files +README +t/00-load.t +t/manifest.t +t/pod-coverage.t +t/pod.t diff --git a/GQRX-Scanner/Makefile.PL b/GQRX-Scanner/Makefile.PL new file mode 100644 index 0000000..2467f3c --- /dev/null +++ b/GQRX-Scanner/Makefile.PL @@ -0,0 +1,26 @@ +use 5.006; +use strict; +use warnings; +use ExtUtils::MakeMaker; + +WriteMakefile( + NAME => 'GQRX::Scanner', + AUTHOR => q{Zane C. Bowers-Hadley }, + VERSION_FROM => 'lib/GQRX/Scanner.pm', + ABSTRACT_FROM => 'lib/GQRX/Scanner.pm', + LICENSE => 'artistic_2', + PL_FILES => {}, + MIN_PERL_VERSION => '5.006', + CONFIGURE_REQUIRES => { + 'ExtUtils::MakeMaker' => '0', + }, + BUILD_REQUIRES => { + 'Test::More' => '0', + }, + PREREQ_PM => { + #'ABC' => '1.6', + #'Foo::Bar::Module' => '5.0401', + }, + dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, + clean => { FILES => 'GQRX-Scanner-*' }, +); diff --git a/GQRX-Scanner/README b/GQRX-Scanner/README new file mode 100644 index 0000000..13eaa5e --- /dev/null +++ b/GQRX-Scanner/README @@ -0,0 +1,85 @@ +GQRX-Scanner + +The README is used to introduce the module and provide instructions on +how to install the module, any machine dependencies it may have (for +example C compilers and installed libraries) and any other information +that should be provided before the module is installed. + +A README file is required for CPAN modules since CPAN extracts the README +file from a module distribution so that people browsing the archive +can use it to get an idea of the module's uses. It is usually a good idea +to provide version information here so that people can decide whether +fixes for the module are worth downloading. + + +INSTALLATION + +To install this module, run the following commands: + + perl Makefile.PL + make + make test + make install + +SUPPORT AND DOCUMENTATION + +After installing, you can find documentation for this module with the +perldoc command. + + perldoc GQRX::Scanner + +You can also look for information at: + + RT, CPAN's request tracker (report bugs here) + https://rt.cpan.org/NoAuth/Bugs.html?Dist=GQRX-Scanner + + AnnoCPAN, Annotated CPAN documentation + http://annocpan.org/dist/GQRX-Scanner + + CPAN Ratings + https://cpanratings.perl.org/d/GQRX-Scanner + + Search CPAN + https://metacpan.org/release/GQRX-Scanner + + +LICENSE AND COPYRIGHT + +Copyright (C) 2019 Zane C. Bowers-Hadley + +This program is free software; you can redistribute it and/or modify it +under the terms of the the Artistic License (2.0). You may obtain a +copy of the full license at: + +L + +Any use, modification, and distribution of the Standard or Modified +Versions is governed by this Artistic License. By using, modifying or +distributing the Package, you accept this license. Do not use, modify, +or distribute the Package, if you do not accept this license. + +If your Modified Version has been derived from a Modified Version made +by someone other than you, you are nevertheless required to ensure that +your Modified Version complies with the requirements of this license. + +This license does not grant you the right to use any trademark, service +mark, tradename, or logo of the Copyright Holder. + +This license includes the non-exclusive, worldwide, free-of-charge +patent license to make, have made, use, offer to sell, sell, import and +otherwise transfer the Package with respect to any patent claims +licensable by the Copyright Holder that are necessarily infringed by the +Package. If you institute patent litigation (including a cross-claim or +counterclaim) against any party alleging that the Package constitutes +direct or contributory patent infringement, then this Artistic License +to you shall terminate on the date that such litigation is filed. + +Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER +AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY +YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR +CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR +CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/GQRX-Scanner/ignore.txt b/GQRX-Scanner/ignore.txt new file mode 100644 index 0000000..3d66b28 --- /dev/null +++ b/GQRX-Scanner/ignore.txt @@ -0,0 +1,18 @@ +Makefile +Makefile.old +Build +Build.bat +META.* +MYMETA.* +.build/ +_build/ +cover_db/ +blib/ +inc/ +.lwpcookies +.last_cover_stats +nytprof.out +pod2htm*.tmp +pm_to_blib +GQRX-Scanner-* +GQRX-Scanner-*.tar.gz diff --git a/GQRX-Scanner/lib/GQRX/Scanner.pm b/GQRX-Scanner/lib/GQRX/Scanner.pm new file mode 100644 index 0000000..e85f476 --- /dev/null +++ b/GQRX-Scanner/lib/GQRX/Scanner.pm @@ -0,0 +1,141 @@ +package GQRX::Scanner; + +use 5.006; +use strict; +use warnings; + +=head1 NAME + +GQRX::Scanner - The great new GQRX::Scanner! + +=head1 VERSION + +Version 0.01 + +=cut + +our $VERSION = '0.01'; + + +=head1 SYNOPSIS + +Quick summary of what the module does. + +Perhaps a little code snippet. + + use GQRX::Scanner; + + my $foo = GQRX::Scanner->new(); + ... + +=head1 EXPORT + +A list of functions that can be exported. You can delete this section +if you don't export anything, such as for a purely object-oriented module. + +=head1 SUBROUTINES/METHODS + +=head2 function1 + +=cut + +sub function1 { +} + +=head2 function2 + +=cut + +sub function2 { +} + +=head1 AUTHOR + +Zane C. Bowers-Hadley, C<< >> + +=head1 BUGS + +Please report any bugs or feature requests to C, or through +the web interface at L. 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 GQRX::Scanner + + +You can also look for information at: + +=over 4 + +=item * RT: CPAN's request tracker (report bugs here) + +L + +=item * AnnoCPAN: Annotated CPAN documentation + +L + +=item * CPAN Ratings + +L + +=item * Search CPAN + +L + +=back + + +=head1 ACKNOWLEDGEMENTS + + +=head1 LICENSE AND COPYRIGHT + +Copyright 2019 Zane C. Bowers-Hadley. + +This program is free software; you can redistribute it and/or modify it +under the terms of the the Artistic License (2.0). You may obtain a +copy of the full license at: + +L + +Any use, modification, and distribution of the Standard or Modified +Versions is governed by this Artistic License. By using, modifying or +distributing the Package, you accept this license. Do not use, modify, +or distribute the Package, if you do not accept this license. + +If your Modified Version has been derived from a Modified Version made +by someone other than you, you are nevertheless required to ensure that +your Modified Version complies with the requirements of this license. + +This license does not grant you the right to use any trademark, service +mark, tradename, or logo of the Copyright Holder. + +This license includes the non-exclusive, worldwide, free-of-charge +patent license to make, have made, use, offer to sell, sell, import and +otherwise transfer the Package with respect to any patent claims +licensable by the Copyright Holder that are necessarily infringed by the +Package. If you institute patent litigation (including a cross-claim or +counterclaim) against any party alleging that the Package constitutes +direct or contributory patent infringement, then this Artistic License +to you shall terminate on the date that such litigation is filed. + +Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER +AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY +YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR +CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR +CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +=cut + +1; # End of GQRX::Scanner diff --git a/GQRX-Scanner/t/00-load.t b/GQRX-Scanner/t/00-load.t new file mode 100644 index 0000000..9818c1a --- /dev/null +++ b/GQRX-Scanner/t/00-load.t @@ -0,0 +1,13 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +plan tests => 1; + +BEGIN { + use_ok( 'GQRX::Scanner' ) || print "Bail out!\n"; +} + +diag( "Testing GQRX::Scanner $GQRX::Scanner::VERSION, Perl $], $^X" ); diff --git a/GQRX-Scanner/t/manifest.t b/GQRX-Scanner/t/manifest.t new file mode 100644 index 0000000..e0b558e --- /dev/null +++ b/GQRX-Scanner/t/manifest.t @@ -0,0 +1,15 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +unless ( $ENV{RELEASE_TESTING} ) { + plan( skip_all => "Author tests not required for installation" ); +} + +my $min_tcm = 0.9; +eval "use Test::CheckManifest $min_tcm"; +plan skip_all => "Test::CheckManifest $min_tcm required" if $@; + +ok_manifest(); diff --git a/GQRX-Scanner/t/pod-coverage.t b/GQRX-Scanner/t/pod-coverage.t new file mode 100644 index 0000000..f5728a5 --- /dev/null +++ b/GQRX-Scanner/t/pod-coverage.t @@ -0,0 +1,24 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +unless ( $ENV{RELEASE_TESTING} ) { + plan( skip_all => "Author tests not required for installation" ); +} + +# Ensure a recent version of Test::Pod::Coverage +my $min_tpc = 1.08; +eval "use Test::Pod::Coverage $min_tpc"; +plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage" + if $@; + +# Test::Pod::Coverage doesn't require a minimum Pod::Coverage version, +# but older versions don't recognize some common documentation styles +my $min_pc = 0.18; +eval "use Pod::Coverage $min_pc"; +plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" + if $@; + +all_pod_coverage_ok(); diff --git a/GQRX-Scanner/t/pod.t b/GQRX-Scanner/t/pod.t new file mode 100644 index 0000000..4d3a0ce --- /dev/null +++ b/GQRX-Scanner/t/pod.t @@ -0,0 +1,16 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +unless ( $ENV{RELEASE_TESTING} ) { + plan( skip_all => "Author tests not required for installation" ); +} + +# Ensure a recent version of Test::Pod +my $min_tp = 1.22; +eval "use Test::Pod $min_tp"; +plan skip_all => "Test::Pod $min_tp required for testing POD" if $@; + +all_pod_files_ok(); diff --git a/GQRX-Scanner/xt/boilerplate.t b/GQRX-Scanner/xt/boilerplate.t new file mode 100644 index 0000000..b5c3741 --- /dev/null +++ b/GQRX-Scanner/xt/boilerplate.t @@ -0,0 +1,57 @@ +#!perl -T +use 5.006; +use strict; +use warnings; +use Test::More; + +plan tests => 3; + +sub not_in_file_ok { + my ($filename, %regex) = @_; + open( my $fh, '<', $filename ) + or die "couldn't open $filename for reading: $!"; + + my %violated; + + while (my $line = <$fh>) { + while (my ($desc, $regex) = each %regex) { + if ($line =~ $regex) { + push @{$violated{$desc}||=[]}, $.; + } + } + } + + if (%violated) { + fail("$filename contains boilerplate text"); + diag "$_ appears on lines @{$violated{$_}}" for keys %violated; + } else { + pass("$filename contains no boilerplate text"); + } +} + +sub module_boilerplate_ok { + my ($module) = @_; + not_in_file_ok($module => + 'the great new $MODULENAME' => qr/ - The great new /, + 'boilerplate description' => qr/Quick summary of what the module/, + 'stub function definition' => qr/function[12]/, + ); +} + +TODO: { + local $TODO = "Need to replace the boilerplate text"; + + not_in_file_ok(README => + "The README is used..." => qr/The README is used/, + "'version information here'" => qr/to provide version information/, + ); + + not_in_file_ok(Changes => + "placeholder date/time" => qr(Date/time) + ); + + module_boilerplate_ok('lib/GQRX/Scanner.pm'); + + +} + diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29