Dist-Zilla-BeLike-CSJEWELL

changeset 1:3ef3255e3fdf

Add the minting profile.

(includes all the share files that go with it.)
author Curtis Jewell <csjewell@cpan.org>
date Wed Aug 11 23:15:51 2010 -0600 (2010-08-11)
parents 7aea3f361c38
children 0d3040ae67a1
files Build.PL MANIFEST.SKIP lib/Dist/Zilla/CSJEWELL.pm lib/Dist/Zilla/MintingProfile/CSJEWELL.pm share/csjewell/Module.pm share/csjewell/profile.ini share/csjewell/skel/.hgignore share/csjewell/skel/Build.PL share/csjewell/skel/Changes share/csjewell/skel/MANIFEST.SKIP share/csjewell/skel/dist.ini share/csjewell/skel/t/000_report_versions.t share/csjewell/skel/t/compile.t share/csjewell/skel/xt/author/changes.t share/csjewell/skel/xt/author/common_mistakes.t share/csjewell/skel/xt/author/fixme.t share/csjewell/skel/xt/author/manifest.t share/csjewell/skel/xt/author/meta.t share/csjewell/skel/xt/author/minimumversion.t share/csjewell/skel/xt/author/perlcritic.t share/csjewell/skel/xt/author/pod.t share/csjewell/skel/xt/author/pod_coverage.t share/csjewell/skel/xt/author/portability.t share/csjewell/skel/xt/author/prereq.t share/csjewell/skel/xt/author/version.t share/csjewell/skel/xt/settings/perlcritic.txt share/csjewell/skel/xt/settings/perltidy.txt
line diff
     1.1 --- a/Build.PL	Tue Aug 10 16:33:13 2010 -0600
     1.2 +++ b/Build.PL	Wed Aug 11 23:15:51 2010 -0600
     1.3 @@ -106,6 +106,11 @@
     1.4              repository  => 'http://bitbucket.org/csjewell/dist-zilla-csjewell'
     1.5          },
     1.6      },
     1.7 +	share_dir => {
     1.8 +		module => {
     1.9 +			'Dist::Zilla::MintingProfile::CSJEWELL'  => 'share',
    1.10 +		}
    1.11 +	},
    1.12      add_to_cleanup      => [ 'Dist-Zilla-CSJEWELL-*', ],
    1.13  );
    1.14  
     2.1 --- a/MANIFEST.SKIP	Tue Aug 10 16:33:13 2010 -0600
     2.2 +++ b/MANIFEST.SKIP	Wed Aug 11 23:15:51 2010 -0600
     2.3 @@ -8,7 +8,7 @@
     2.4  \B\.git\b
     2.5  \B\.gitignore\b
     2.6  \B\.hg\b
     2.7 -\B\.hgignore\b
     2.8 +^\.hgignore$  # We want the one in our sharedir.
     2.9  \B\.hgtags\b
    2.10  \b_darcs\b
    2.11  
     3.1 --- a/lib/Dist/Zilla/CSJEWELL.pm	Tue Aug 10 16:33:13 2010 -0600
     3.2 +++ b/lib/Dist/Zilla/CSJEWELL.pm	Wed Aug 11 23:15:51 2010 -0600
     3.3 @@ -61,11 +61,8 @@
     3.4  	# After 'dzil setup'
     3.5  	dzil configure_CSJEWELL
     3.6  	
     3.7 -	# To create a module if you requested this be the default.
     3.8 -	dzil new Your::Module
     3.9 -	
    3.10 -	# To create a module if you requested this not be the default.
    3.11 -	dzil new -p csjewell Your::Module
    3.12 +	# To create a module
    3.13 +	dzil new -P CSJEWELL Your::Module
    3.14  
    3.15  =head1 DESCRIPTION
    3.16  
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/lib/Dist/Zilla/MintingProfile/CSJEWELL.pm	Wed Aug 11 23:15:51 2010 -0600
     4.3 @@ -0,0 +1,84 @@
     4.4 +package Dist::Zilla::MintingProfile::CSJEWELL;
     4.5 +
     4.6 +use 5.008003;
     4.7 +use Moose;
     4.8 +with 'Dist::Zilla::Role::MintingProfile::ShareDir';
     4.9 +
    4.10 +our $VERSION = '0.900';
    4.11 +$VERSION =~ s/_//sm;
    4.12 +
    4.13 +around 'profile_dir' => sub {
    4.14 +	my ( $orig, $self, $profile_name ) = @_;
    4.15 +
    4.16 +	if ( 'default' eq $profile_name ) { undef $profile_name; }
    4.17 +
    4.18 +	$profile_name ||= 'csjewell';
    4.19 +
    4.20 +	return $self->$orig($profile_name);
    4.21 +};
    4.22 +
    4.23 +__PACKAGE__->meta()->make_immutable();
    4.24 +no Moose;
    4.25 +1;
    4.26 +
    4.27 +__END__
    4.28 +
    4.29 +=pod
    4.30 +
    4.31 +=head1 NAME
    4.32 +
    4.33 +Dist::Zilla::MintingProfile::CSJEWELL - Create a new dist.
    4.34 +
    4.35 +=head1 VERSION
    4.36 +
    4.37 +This document describes Dist::Zilla::MintingProfile::CSJEWELL version 0.900.
    4.38 +
    4.39 +=head1 DESCRIPTION
    4.40 +
    4.41 +This minting profile uses the files that are stored in its share directory.
    4.42 +
    4.43 +=head1 AUTHOR
    4.44 +
    4.45 +Curtis Jewell <CSJewell@cpan.org>
    4.46 +
    4.47 +=head1 SEE ALSO
    4.48 +
    4.49 +L<Dist::Zilla::CSJEWELL|Dist::Zilla::CSJEWELL>
    4.50 +
    4.51 +=head1 LICENSE AND COPYRIGHT
    4.52 +
    4.53 +Copyright (c) 2010, Curtis Jewell C<< CSJewell@cpan.org >>.
    4.54 +
    4.55 +This module is free software; you can redistribute it and/or
    4.56 +modify it under the same terms as Perl itself, either version
    4.57 +5.8.1 or any later version. See L<perlartistic|perlartistic> 
    4.58 +and L<perlgpl|perlgpl>.
    4.59 +
    4.60 +The full text of the license can be found in the
    4.61 +LICENSE file included with this module.
    4.62 +
    4.63 +=head1 DISCLAIMER OF WARRANTY
    4.64 +
    4.65 +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    4.66 +FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
    4.67 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    4.68 +PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
    4.69 +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    4.70 +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
    4.71 +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
    4.72 +YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
    4.73 +NECESSARY SERVICING, REPAIR, OR CORRECTION.
    4.74 +
    4.75 +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    4.76 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    4.77 +REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE
    4.78 +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
    4.79 +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
    4.80 +THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
    4.81 +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
    4.82 +FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
    4.83 +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
    4.84 +SUCH DAMAGES.
    4.85 +
    4.86 +=cut
    4.87 +
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/share/csjewell/Module.pm	Wed Aug 11 23:15:51 2010 -0600
     5.3 @@ -0,0 +1,232 @@
     5.4 +package {{$name}};
     5.5 +
     5.6 +use 5.008001;
     5.7 +use warnings;
     5.8 +use strict;
     5.9 +use Carp;
    5.10 +use English qw( -no_match_vars );
    5.11 +
    5.12 +# Other recommended modules (uncomment to use):
    5.13 +#  use IO::Prompt;
    5.14 +#  use parent 'Parent::Class';
    5.15 +#  use Exception::Class 1.29 {
    5.16 +#    ...
    5.17 +#  };
    5.18 +#  use Moose;
    5.19 +
    5.20 +our $VERSION = '0.001';
    5.21 +$VERSION =~ s/_//sm;
    5.22 +
    5.23 +
    5.24 +# Module implementation here
    5.25 +
    5.26 +
    5.27 +1; # Magic true value required at end of module
    5.28 +__END__
    5.29 +
    5.30 +=pod
    5.31 +
    5.32 +=begin readme text
    5.33 +
    5.34 +{{$name}} version 0.001
    5.35 +
    5.36 +=end readme
    5.37 +
    5.38 +=for readme stop
    5.39 +
    5.40 +=head1 NAME
    5.41 +
    5.42 +{{$name}} - [One line description of module's purpose here]
    5.43 +
    5.44 +=head1 VERSION
    5.45 +
    5.46 +This document describes {{$name}} version 0.001
    5.47 +
    5.48 +=begin readme
    5.49 +
    5.50 +=head1 INSTALLATION
    5.51 +
    5.52 +To install this module, run the following commands:
    5.53 +
    5.54 +	perl Makefile.PL
    5.55 +	make
    5.56 +	make test
    5.57 +	make install
    5.58 +
    5.59 +This method of installation will require a current version of Module::Build 
    5.60 +if it is not already installed.
    5.61 +    
    5.62 +Alternatively, to install with Module::Build, you can use the following commands:
    5.63 +
    5.64 +	perl Build.PL
    5.65 +	./Build
    5.66 +	./Build test
    5.67 +	./Build install
    5.68 +
    5.69 +=end readme
    5.70 +
    5.71 +=for readme stop
    5.72 +
    5.73 +=head1 SYNOPSIS
    5.74 +
    5.75 +    use {{$name}};
    5.76 +
    5.77 +=for author to fill in:
    5.78 +    Brief code example(s) here showing commonest usage(s).
    5.79 +    This section will be as far as many users bother reading
    5.80 +    so make it as educational and exemplary as possible.
    5.81 +
    5.82 +=head1 DESCRIPTION
    5.83 +
    5.84 +=for author to fill in:
    5.85 +    Write a full description of the module and its features here.
    5.86 +    Use subsections (=head2, =head3) as appropriate.
    5.87 +
    5.88 +=head1 INTERFACE 
    5.89 +
    5.90 +=for author to fill in:
    5.91 +    Write a separate section listing the public components of the modules
    5.92 +    interface. These normally consist of either subroutines that may be
    5.93 +    exported, or methods that may be called on objects belonging to the
    5.94 +    classes provided by the module.
    5.95 +
    5.96 +=head1 DIAGNOSTICS
    5.97 +
    5.98 +=for author to fill in:
    5.99 +    List every single error and warning message that the module can
   5.100 +    generate (even the ones that will "never happen"), with a full
   5.101 +    explanation of each problem, one or more likely causes, and any
   5.102 +    suggested remedies.
   5.103 +
   5.104 +=over
   5.105 +
   5.106 +=item C<< Error message here, perhaps with %s placeholders >>
   5.107 +
   5.108 +[Description of error here]
   5.109 +
   5.110 +=item C<< Another error message here >>
   5.111 +
   5.112 +[Description of error here]
   5.113 +
   5.114 +[Et cetera, et cetera]
   5.115 +
   5.116 +=back
   5.117 +
   5.118 +=head1 CONFIGURATION AND ENVIRONMENT
   5.119 +
   5.120 +=for author to fill in:
   5.121 +    A full explanation of any configuration system(s) used by the
   5.122 +    module, including the names and locations of any configuration
   5.123 +    files, and the meaning of any environment variables or properties
   5.124 +    that can be set. These descriptions must also include details of any
   5.125 +    configuration language used.
   5.126 +  
   5.127 +{{$name}} requires no configuration files or environment variables.
   5.128 +
   5.129 +=for readme continue
   5.130 +
   5.131 +=head1 DEPENDENCIES
   5.132 +
   5.133 +=for author to fill in:
   5.134 +    A list of all the other modules that this module relies upon,
   5.135 +    including any restrictions on versions, and an indication whether
   5.136 +    the module is part of the standard Perl distribution, part of the
   5.137 +    module's distribution, or must be installed separately. ]
   5.138 +
   5.139 +None.
   5.140 +
   5.141 +=for readme stop
   5.142 +
   5.143 +=head1 INCOMPATIBILITIES
   5.144 +
   5.145 +=for author to fill in:
   5.146 +    A list of any modules that this module cannot be used in conjunction
   5.147 +    with. This may be due to name conflicts in the interface, or
   5.148 +    competition for system or program resources, or due to internal
   5.149 +    limitations of Perl (for example, many modules that use source code
   5.150 +    filters are mutually incompatible).
   5.151 +
   5.152 +None reported.
   5.153 +
   5.154 +=head1 BUGS AND LIMITATIONS
   5.155 +
   5.156 +=for author to fill in:
   5.157 +    A list of known problems with the module, together with some
   5.158 +    indication Whether they are likely to be fixed in an upcoming
   5.159 +    release. Also a list of restrictions on the features the module
   5.160 +    does provide: data types that cannot be handled, performance issues
   5.161 +    and the circumstances in which they may arise, practical
   5.162 +    limitations on the size of data sets, special cases that are not
   5.163 +    (yet) handled, etc.
   5.164 +
   5.165 +No bugs have been reported.
   5.166 +
   5.167 +Bugs should be reported via: 
   5.168 +
   5.169 +1) The CPAN bug tracker at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue={{$dist->name}}>
   5.170 +if you have an account there.
   5.171 +
   5.172 +2) Email to E<lt>bug-{{$dist->name}}@rt.cpan.orgE<gt> if you do not.
   5.173 +
   5.174 +=head1 AUTHOR
   5.175 +
   5.176 +{{
   5.177 +    $authors = join( "\n", @{$dist->authors} );
   5.178 +    $copyright_year = (localtime)[5] + 1900;
   5.179 +    $license = ref $dist->license;
   5.180 +    if ( $license =~ /^Software::License::(.+)$/ ) {
   5.181 +        $license = $1;
   5.182 +    } else {
   5.183 +        $license = "=$license";
   5.184 +    }
   5.185 +	if ($license =~ /Perl_5/) {
   5.186 +		$email = $dist->stash_named('%User')->email;
   5.187 +		$copyright_holder = $dist->copyright_holder;
   5.188 +		$notice = <<"EON";
   5.189 +Copyright (c) $copyright_year, $copyright_holder C<< $email >>.
   5.190 +
   5.191 +This module is free software; you can redistribute it and/or
   5.192 +modify it under the same terms as Perl itself, either version
   5.193 +5.8.1 or any later version. See L<perlartistic|perlartistic> 
   5.194 +and L<perlgpl|perlgpl>.
   5.195 +
   5.196 +The full text of the license can be found in the
   5.197 +LICENSE file included with this module.
   5.198 +EON
   5.199 +	chomp $notice;
   5.200 +	} else {
   5.201 +		$notice = $dist->license->notice;
   5.202 +	} 
   5.203 +    '';
   5.204 +}}{{$authors}}
   5.205 +
   5.206 +=for readme continue
   5.207 +
   5.208 +=head1 LICENSE AND COPYRIGHT
   5.209 +
   5.210 +{{$notice}}
   5.211 +
   5.212 +=for readme stop
   5.213 +
   5.214 +=head1 DISCLAIMER OF WARRANTY
   5.215 +
   5.216 +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
   5.217 +FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
   5.218 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
   5.219 +PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
   5.220 +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   5.221 +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
   5.222 +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
   5.223 +YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
   5.224 +NECESSARY SERVICING, REPAIR, OR CORRECTION.
   5.225 +
   5.226 +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
   5.227 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
   5.228 +REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE
   5.229 +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
   5.230 +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
   5.231 +THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
   5.232 +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
   5.233 +FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
   5.234 +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
   5.235 +SUCH DAMAGES.
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/share/csjewell/profile.ini	Wed Aug 11 23:15:51 2010 -0600
     6.3 @@ -0,0 +1,6 @@
     6.4 +[TemplateModule/:DefaultModuleMaker]
     6.5 +template = Module.pm
     6.6 +
     6.7 +[GatherDir::Template]
     6.8 +root = skel
     6.9 +include_dotfiles = 1
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/share/csjewell/skel/.hgignore	Wed Aug 11 23:15:51 2010 -0600
     7.3 @@ -0,0 +1,14 @@
     7.4 +{{$dist->name}}*
     7.5 +blib
     7.6 +.build
     7.7 +_build
     7.8 +Build.bat
     7.9 +glob:Build
    7.10 +LICENSE
    7.11 +README
    7.12 +glob:MANIFEST
    7.13 +Makefile.PL
    7.14 +META.yml
    7.15 +MYMETA.yml
    7.16 +glob:*.bak
    7.17 +
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/share/csjewell/skel/Build.PL	Wed Aug 11 23:15:51 2010 -0600
     8.3 @@ -0,0 +1,87 @@
     8.4 +use strict;
     8.5 +use warnings;
     8.6 +use Module::Build;
     8.7 +
     8.8 +my $class = Module::Build->subclass(
     8.9 +	class => 'My::Builder',
    8.10 +	code  => <<'END_CODE',
    8.11 +
    8.12 +sub ACTION_authortest {
    8.13 +    my ($self) = @_;
    8.14 +
    8.15 +    $self->depends_on('build');
    8.16 +    $self->depends_on('manifest');
    8.17 +    $self->depends_on('distmeta');
    8.18 +
    8.19 +    $self->test_files( qw( t xt/author ) );
    8.20 +    $self->depends_on('test');
    8.21 +
    8.22 +    return;
    8.23 +}
    8.24 +
    8.25 +
    8.26 +
    8.27 +sub ACTION_releasetest {
    8.28 +    my ($self) = @_;
    8.29 +
    8.30 +    $self->depends_on('build');
    8.31 +    $self->depends_on('manifest');
    8.32 +    $self->depends_on('distmeta');
    8.33 +
    8.34 +    $self->test_files( qw( t xt/author xt/release ) );
    8.35 +    $self->depends_on('test');
    8.36 +
    8.37 +    return;
    8.38 +}
    8.39 +
    8.40 +
    8.41 +
    8.42 +sub ACTION_manifest {
    8.43 +    my ($self, @arguments) = @_;
    8.44 +
    8.45 +    if (-e 'MANIFEST') {
    8.46 +        unlink 'MANIFEST' or die "Can't unlink MANIFEST: $!";
    8.47 +    }
    8.48 +
    8.49 +    return $self->SUPER::ACTION_manifest(@arguments);
    8.50 +}
    8.51 +END_CODE
    8.52 +);
    8.53 +{{
    8.54 +	$dist_module = join('::', split(/-/, $dist->name));
    8.55 +	$authors_list = join( q{' '}, @{$dist->authors} );
    8.56 +	$repository = $dist->stash_named('%DefaultURLs')->repository_location . lc $dist->name;
    8.57 +	$homepage = $dist->stash_named('%DefaultURLs')->homepage;	
    8.58 +	'';
    8.59 +}}
    8.60 +
    8.61 +my $builder = $class->new(
    8.62 +    module_name              => '{{$dist_module}}',
    8.63 +    license                  => '{{$dist->license->meta_name}}',
    8.64 +    dist_author              => [ '{{$authors_list}}' ],
    8.65 +    dist_version_from        => '{{$dist->main_module->name}}',
    8.66 +	create_readme            => 1,
    8.67 +	create_license           => 1,
    8.68 +	create_makefile_pl       => 'small',
    8.69 +	configure_requires       => {
    8.70 +        'Module::Build'      => '0.33',
    8.71 +	},
    8.72 +    requires => {
    8.73 +        'perl'                => '5.008001',	
    8.74 +#        'parent'              => '0.221',
    8.75 +#        'Exception::Class'    => '1.29',
    8.76 +    },
    8.77 +	build_requires => {
    8.78 +        'Test::More'          => '0.88',
    8.79 +	},
    8.80 +    meta_merge     => {
    8.81 +        resources => {
    8.82 +            homepage    => '{{$homepage}}',
    8.83 +            bugtracker  => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist={{$dist->name}}',
    8.84 +            repository  => '{{$repository}}'
    8.85 +        },
    8.86 +    },
    8.87 +    add_to_cleanup      => [ '{{$dist->name}}-*', ],
    8.88 +);
    8.89 +
    8.90 +$builder->create_build_script();
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/share/csjewell/skel/Changes	Wed Aug 11 23:15:51 2010 -0600
     9.3 @@ -0,0 +1,12 @@
     9.4 +Revision history for {{$dist->name}}
     9.5 +{{
     9.6 +	@wkdy = qw(Sun Mon Tue Wed Thu Fri Sat);
     9.7 +	@mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
     9.8 +	@lt = localtime;
     9.9 +    $date = join q{ }, $wkdy[$lt[6]], $lt[3], $mon[$lt[4]], $lt[5] + 1900;
    9.10 +    '';
    9.11 +}}
    9.12 +0.001  {{$date}}
    9.13 +       - Initial release.
    9.14 +
    9.15 +
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/share/csjewell/skel/MANIFEST.SKIP	Wed Aug 11 23:15:51 2010 -0600
    10.3 @@ -0,0 +1,57 @@
    10.4 +
    10.5 +# Avoid version control files.
    10.6 +\bRCS\b
    10.7 +\bCVS\b
    10.8 +\bSCCS\b
    10.9 +,v$
   10.10 +\B\.svn\b
   10.11 +\B\.git\b
   10.12 +\B\.gitignore\b
   10.13 +\B\.hg\b
   10.14 +\B\.hgignore\b
   10.15 +\B\.hgtags\b
   10.16 +\b_darcs\b
   10.17 +
   10.18 +# Avoid Makemaker generated and utility files.
   10.19 +\bMANIFEST\.bak
   10.20 +\bMakefile$
   10.21 +\bblib/
   10.22 +\bMakeMaker-\d
   10.23 +\bpm_to_blib\.ts$
   10.24 +\bpm_to_blib$
   10.25 +\bblibdirs\.ts$         # 6.18 through 6.25 generated this
   10.26 +
   10.27 +# Avoid temp and backup files.
   10.28 +~$
   10.29 +\.old$
   10.30 +\#$
   10.31 +\b\.#
   10.32 +\.bak$
   10.33 +
   10.34 +# Avoid Devel::Cover files.
   10.35 +\bcover_db\b
   10.36 +
   10.37 +# Avoid Module::Build generated and utility files.
   10.38 +\bBuild$
   10.39 +\bBuild.bat$
   10.40 +\b_build
   10.41 +\bBuild.COM$
   10.42 +\bBUILD.COM$
   10.43 +\bbuild.com$
   10.44 +
   10.45 +# Avoid release automation.
   10.46 +\breleaserc$
   10.47 +\bMANIFEST\.SKIP$
   10.48 +
   10.49 +# Avoid MYMETA.yml
   10.50 +^MYMETA.yml$
   10.51 +^MYMETA.json$
   10.52 +
   10.53 +# Avoid dist.ini
   10.54 +^dist.ini$
   10.55 +
   10.56 +# Avoid archives of this distribution
   10.57 +\b{{$dist->name}}-[\d\.\_]+
   10.58 +
   10.59 +
   10.60 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/share/csjewell/skel/dist.ini	Wed Aug 11 23:15:51 2010 -0600
    11.3 @@ -0,0 +1,26 @@
    11.4 +{{
    11.5 +    $license = ref $dist->license;
    11.6 +    if ( $license =~ /^Software::License::(.+)$/ ) {
    11.7 +        $license = $1;
    11.8 +    } else {
    11.9 +        $license = "=$license";
   11.10 +    }
   11.11 + 
   11.12 +    $authors = join( "\n", map { "author  = $_" } @{$dist->authors} );
   11.13 +    $copyright_year = (localtime)[5] + 1900;
   11.14 +    '';
   11.15 +}}name    = {{$dist->name}}
   11.16 +{{$authors}}
   11.17 +license = {{$license}}
   11.18 +copyright_holder = {{$dist->copyright_holder}}
   11.19 +copyright_year   = {{$copyright_year}}
   11.20 +
   11.21 +[@CSJEWELL]
   11.22 +[Twitter]
   11.23 +
   11.24 +{{ 
   11.25 +	if ($dist->stash_named('%DefaultURLs')->repository_location =~ /bitbucket[.]org/) {
   11.26 +		$OUT = '[@Mercurial]';
   11.27 +	}
   11.28 +}}
   11.29 +
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/share/csjewell/skel/t/000_report_versions.t	Wed Aug 11 23:15:51 2010 -0600
    12.3 @@ -0,0 +1,485 @@
    12.4 +#!perl
    12.5 +use warnings;
    12.6 +use strict;
    12.7 +use Test::More 0.88;
    12.8 +use Config;
    12.9 +
   12.10 +# Include a cut-down version of YAML::Tiny so we don't introduce unnecessary
   12.11 +# dependencies ourselves.
   12.12 +
   12.13 +package Local::YAML::Tiny;
   12.14 +
   12.15 +use strict;
   12.16 +use Carp 'croak';
   12.17 +
   12.18 +# UTF Support?
   12.19 +sub HAVE_UTF8 () { $] >= 5.007003 }
   12.20 +
   12.21 +BEGIN {
   12.22 +	if (HAVE_UTF8) {
   12.23 +
   12.24 +		# The string eval helps hide this from Test::MinimumVersion
   12.25 +		eval "require utf8;";
   12.26 +		die "Failed to load UTF-8 support" if $@;
   12.27 +	}
   12.28 +
   12.29 +	# Class structure
   12.30 +	require 5.004;
   12.31 +	$YAML::Tiny::VERSION = '1.40';
   12.32 +
   12.33 +	# Error storage
   12.34 +	$YAML::Tiny::errstr = '';
   12.35 +} ## end BEGIN
   12.36 +
   12.37 +# Printable characters for escapes
   12.38 +my %UNESCAPES = (
   12.39 +	z    => "\x00",
   12.40 +	a    => "\x07",
   12.41 +	t    => "\x09",
   12.42 +	n    => "\x0a",
   12.43 +	v    => "\x0b",
   12.44 +	f    => "\x0c",
   12.45 +	r    => "\x0d",
   12.46 +	e    => "\x1b",
   12.47 +	'\\' => '\\',
   12.48 +);
   12.49 +
   12.50 +
   12.51 +#####################################################################
   12.52 +# Implementation
   12.53 +
   12.54 +# Create an empty YAML::Tiny object
   12.55 +sub new {
   12.56 +	my $class = shift;
   12.57 +	bless [@_], $class;
   12.58 +}
   12.59 +
   12.60 +# Create an object from a file
   12.61 +sub read {
   12.62 +	my $class = ref $_[0] ? ref shift : shift;
   12.63 +
   12.64 +	# Check the file
   12.65 +	my $file = shift
   12.66 +	  or return $class->_error('You did not specify a file name');
   12.67 +	return $class->_error("File '$file' does not exist") unless -e $file;
   12.68 +	return $class->_error("'$file' is a directory, not a file") unless -f _;
   12.69 +	return $class->_error("Insufficient permissions to read '$file'")
   12.70 +	  unless -r _;
   12.71 +
   12.72 +	# Slurp in the file
   12.73 +	local $/ = undef;
   12.74 +	local *CFG;
   12.75 +	unless ( open( CFG, $file ) ) {
   12.76 +		return $class->_error("Failed to open file '$file': $!");
   12.77 +	}
   12.78 +	my $contents = readline(*CFG);
   12.79 +	unless ( close(CFG) ) {
   12.80 +		return $class->_error("Failed to close file '$file': $!");
   12.81 +	}
   12.82 +
   12.83 +	$class->read_string($contents);
   12.84 +} ## end sub read
   12.85 +
   12.86 +# Create an object from a string
   12.87 +sub read_string {
   12.88 +	my $class = ref $_[0] ? ref shift : shift;
   12.89 +	my $self = bless [], $class;
   12.90 +	my $string = $_[0];
   12.91 +	unless ( defined $string ) {
   12.92 +		return $self->_error("Did not provide a string to load");
   12.93 +	}
   12.94 +
   12.95 +	# Byte order marks
   12.96 +	# NOTE: Keeping this here to educate maintainers
   12.97 +	# my %BOM = (
   12.98 +	#     "\357\273\277" => 'UTF-8',
   12.99 +	#     "\376\377"     => 'UTF-16BE',
  12.100 +	#     "\377\376"     => 'UTF-16LE',
  12.101 +	#     "\377\376\0\0" => 'UTF-32LE'
  12.102 +	#     "\0\0\376\377" => 'UTF-32BE',
  12.103 +	# );
  12.104 +	if ( $string =~ /^(?:\376\377|\377\376|\377\376\0\0|\0\0\376\377)/ ) {
  12.105 +		return $self->_error("Stream has a non UTF-8 BOM");
  12.106 +	} else {
  12.107 +
  12.108 +		# Strip UTF-8 bom if found, we'll just ignore it
  12.109 +		$string =~ s/^\357\273\277//;
  12.110 +	}
  12.111 +
  12.112 +	# Try to decode as utf8
  12.113 +	utf8::decode($string) if HAVE_UTF8;
  12.114 +
  12.115 +	# Check for some special cases
  12.116 +	return $self unless length $string;
  12.117 +	unless ( $string =~ /[\012\015]+\z/ ) {
  12.118 +		return $self->_error("Stream does not end with newline character");
  12.119 +	}
  12.120 +
  12.121 +	# Split the file into lines
  12.122 +	my @lines = grep { !/^\s*(?:\#.*)?\z/ }
  12.123 +	  split /(?:\015{1,2}\012|\015|\012)/, $string;
  12.124 +
  12.125 +	# Strip the initial YAML header
  12.126 +	@lines and $lines[0] =~ /^\%YAML[: ][\d\.]+.*\z/ and shift @lines;
  12.127 +
  12.128 +	# A nibbling parser
  12.129 +	while (@lines) {
  12.130 +
  12.131 +		# Do we have a document header?
  12.132 +		if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) {
  12.133 +
  12.134 +			# Handle scalar documents
  12.135 +			shift @lines;
  12.136 +			if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) {
  12.137 +				push @$self, $self->_read_scalar( "$1", [undef], \@lines );
  12.138 +				next;
  12.139 +			}
  12.140 +		}
  12.141 +
  12.142 +		if ( !@lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) {
  12.143 +
  12.144 +			# A naked document
  12.145 +			push @$self, undef;
  12.146 +			while ( @lines and $lines[0] !~ /^---/ ) {
  12.147 +				shift @lines;
  12.148 +			}
  12.149 +
  12.150 +		} elsif ( $lines[0] =~ /^\s*\-/ ) {
  12.151 +
  12.152 +			# An array at the root
  12.153 +			my $document = [];
  12.154 +			push @$self, $document;
  12.155 +			$self->_read_array( $document, [0], \@lines );
  12.156 +
  12.157 +		} elsif ( $lines[0] =~ /^(\s*)\S/ ) {
  12.158 +
  12.159 +			# A hash at the root
  12.160 +			my $document = {};
  12.161 +			push @$self, $document;
  12.162 +			$self->_read_hash( $document, [ length($1) ], \@lines );
  12.163 +
  12.164 +		} else {
  12.165 +			croak("YAML::Tiny failed to classify the line '$lines[0]'");
  12.166 +		}
  12.167 +	} ## end while (@lines)
  12.168 +
  12.169 +	$self;
  12.170 +} ## end sub read_string
  12.171 +
  12.172 +# Deparse a scalar string to the actual scalar
  12.173 +sub _read_scalar {
  12.174 +	my ( $self, $string, $indent, $lines ) = @_;
  12.175 +
  12.176 +	# Trim trailing whitespace
  12.177 +	$string =~ s/\s*\z//;
  12.178 +
  12.179 +	# Explitic null/undef
  12.180 +	return undef if $string eq '~';
  12.181 +
  12.182 +	# Quotes
  12.183 +	if ( $string =~ /^\'(.*?)\'\z/ ) {
  12.184 +		return '' unless defined $1;
  12.185 +		$string = $1;
  12.186 +		$string =~ s/\'\'/\'/g;
  12.187 +		return $string;
  12.188 +	}
  12.189 +	if ( $string =~ /^\"((?:\\.|[^\"])*)\"\z/ ) {
  12.190 +
  12.191 +		# Reusing the variable is a little ugly,
  12.192 +		# but avoids a new variable and a string copy.
  12.193 +		$string = $1;
  12.194 +		$string =~ s/\\"/"/g;
  12.195 +		$string =~
  12.196 +s/\\([never\\fartz]|x([0-9a-fA-F]{2}))/(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}/gex;
  12.197 +		return $string;
  12.198 +	}
  12.199 +
  12.200 +	# Special cases
  12.201 +	if ( $string =~ /^[\'\"!&]/ ) {
  12.202 +		croak(
  12.203 +			"YAML::Tiny does not support a feature in line '$lines->[0]'");
  12.204 +	}
  12.205 +	return {} if $string eq '{}';
  12.206 +	return [] if $string eq '[]';
  12.207 +
  12.208 +	# Regular unquoted string
  12.209 +	return $string unless $string =~ /^[>|]/;
  12.210 +
  12.211 +	# Error
  12.212 +	croak("YAML::Tiny failed to find multi-line scalar content")
  12.213 +	  unless @$lines;
  12.214 +
  12.215 +	# Check the indent depth
  12.216 +	$lines->[0] =~ /^(\s*)/;
  12.217 +	$indent->[-1] = length("$1");
  12.218 +	if ( defined $indent->[-2] and $indent->[-1] <= $indent->[-2] ) {
  12.219 +		croak("YAML::Tiny found bad indenting in line '$lines->[0]'");
  12.220 +	}
  12.221 +
  12.222 +	# Pull the lines
  12.223 +	my @multiline = ();
  12.224 +	while (@$lines) {
  12.225 +		$lines->[0] =~ /^(\s*)/;
  12.226 +		last unless length($1) >= $indent->[-1];
  12.227 +		push @multiline, substr( shift(@$lines), length($1) );
  12.228 +	}
  12.229 +
  12.230 +	my $j = ( substr( $string, 0, 1 ) eq '>' ) ? ' ' : "\n";
  12.231 +	my $t = ( substr( $string, 1, 1 ) eq '-' ) ? ''  : "\n";
  12.232 +	return join( $j, @multiline ) . $t;
  12.233 +} ## end sub _read_scalar
  12.234 +
  12.235 +# Parse an array
  12.236 +sub _read_array {
  12.237 +	my ( $self, $array, $indent, $lines ) = @_;
  12.238 +
  12.239 +	while (@$lines) {
  12.240 +
  12.241 +		# Check for a new document
  12.242 +		if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
  12.243 +			while ( @$lines and $lines->[0] !~ /^---/ ) {
  12.244 +				shift @$lines;
  12.245 +			}
  12.246 +			return 1;
  12.247 +		}
  12.248 +
  12.249 +		# Check the indent level
  12.250 +		$lines->[0] =~ /^(\s*)/;
  12.251 +		if ( length($1) < $indent->[-1] ) {
  12.252 +			return 1;
  12.253 +		} elsif ( length($1) > $indent->[-1] ) {
  12.254 +			croak("YAML::Tiny found bad indenting in line '$lines->[0]'");
  12.255 +		}
  12.256 +
  12.257 +		if ( $lines->[0] =~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/ ) {
  12.258 +
  12.259 +			# Inline nested hash
  12.260 +			my $indent2 = length("$1");
  12.261 +			$lines->[0] =~ s/-/ /;
  12.262 +			push @$array, {};
  12.263 +			$self->_read_hash( $array->[-1], [ @$indent, $indent2 ],
  12.264 +				$lines );
  12.265 +
  12.266 +		} elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) {
  12.267 +
  12.268 +			# Array entry with a value
  12.269 +			shift @$lines;
  12.270 +			push @$array,
  12.271 +			  $self->_read_scalar( "$2", [ @$indent, undef ], $lines );
  12.272 +
  12.273 +		} elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) {
  12.274 +			shift @$lines;
  12.275 +			unless (@$lines) {
  12.276 +				push @$array, undef;
  12.277 +				return 1;
  12.278 +			}
  12.279 +			if ( $lines->[0] =~ /^(\s*)\-/ ) {
  12.280 +				my $indent2 = length("$1");
  12.281 +				if ( $indent->[-1] == $indent2 ) {
  12.282 +
  12.283 +					# Null array entry
  12.284 +					push @$array, undef;
  12.285 +				} else {
  12.286 +
  12.287 +					# Naked indenter
  12.288 +					push @$array, [];
  12.289 +					$self->_read_array( $array->[-1],
  12.290 +						[ @$indent, $indent2 ], $lines );
  12.291 +				}
  12.292 +
  12.293 +			} elsif ( $lines->[0] =~ /^(\s*)\S/ ) {
  12.294 +				push @$array, {};
  12.295 +				$self->_read_hash( $array->[-1], [ @$indent, length("$1") ],
  12.296 +					$lines );
  12.297 +
  12.298 +			} else {
  12.299 +				croak("YAML::Tiny failed to classify line '$lines->[0]'");
  12.300 +			}
  12.301 +
  12.302 +		} elsif ( defined $indent->[-2] and $indent->[-1] == $indent->[-2] )
  12.303 +		{
  12.304 +
  12.305 +			# This is probably a structure like the following...
  12.306 +			# ---
  12.307 +			# foo:
  12.308 +			# - list
  12.309 +			# bar: value
  12.310 +			#
  12.311 +			# ... so lets return and let the hash parser handle it
  12.312 +			return 1;
  12.313 +
  12.314 +		} else {
  12.315 +			croak("YAML::Tiny failed to classify line '$lines->[0]'");
  12.316 +		}
  12.317 +	} ## end while (@$lines)
  12.318 +
  12.319 +	return 1;
  12.320 +} ## end sub _read_array
  12.321 +
  12.322 +# Parse an array
  12.323 +sub _read_hash {
  12.324 +	my ( $self, $hash, $indent, $lines ) = @_;
  12.325 +
  12.326 +	while (@$lines) {
  12.327 +
  12.328 +		# Check for a new document
  12.329 +		if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
  12.330 +			while ( @$lines and $lines->[0] !~ /^---/ ) {
  12.331 +				shift @$lines;
  12.332 +			}
  12.333 +			return 1;
  12.334 +		}
  12.335 +
  12.336 +		# Check the indent level
  12.337 +		$lines->[0] =~ /^(\s*)/;
  12.338 +		if ( length($1) < $indent->[-1] ) {
  12.339 +			return 1;
  12.340 +		} elsif ( length($1) > $indent->[-1] ) {
  12.341 +			croak("YAML::Tiny found bad indenting in line '$lines->[0]'");
  12.342 +		}
  12.343 +
  12.344 +		# Get the key
  12.345 +		unless ( $lines->[0] =~ s/^\s*([^\'\" ][^\n]*?)\s*:(\s+|$)// ) {
  12.346 +			if ( $lines->[0] =~ /^\s*[?\'\"]/ ) {
  12.347 +				croak(
  12.348 +"YAML::Tiny does not support a feature in line '$lines->[0]'"
  12.349 +				);
  12.350 +			}
  12.351 +			croak("YAML::Tiny failed to classify line '$lines->[0]'");
  12.352 +		}
  12.353 +		my $key = $1;
  12.354 +
  12.355 +		# Do we have a value?
  12.356 +		if ( length $lines->[0] ) {
  12.357 +
  12.358 +			# Yes
  12.359 +			$hash->{$key} =
  12.360 +			  $self->_read_scalar( shift(@$lines), [ @$indent, undef ],
  12.361 +				$lines );
  12.362 +		} else {
  12.363 +
  12.364 +			# An indent
  12.365 +			shift @$lines;
  12.366 +			unless (@$lines) {
  12.367 +				$hash->{$key} = undef;
  12.368 +				return 1;
  12.369 +			}
  12.370 +			if ( $lines->[0] =~ /^(\s*)-/ ) {
  12.371 +				$hash->{$key} = [];
  12.372 +				$self->_read_array( $hash->{$key}, [ @$indent, length($1) ],
  12.373 +					$lines );
  12.374 +			} elsif ( $lines->[0] =~ /^(\s*)./ ) {
  12.375 +				my $indent2 = length("$1");
  12.376 +				if ( $indent->[-1] >= $indent2 ) {
  12.377 +
  12.378 +					# Null hash entry
  12.379 +					$hash->{$key} = undef;
  12.380 +				} else {
  12.381 +					$hash->{$key} = {};
  12.382 +					$self->_read_hash( $hash->{$key},
  12.383 +						[ @$indent, length($1) ], $lines );
  12.384 +				}
  12.385 +			} ## end elsif ( $lines->[0] =~ /^(\s*)./)
  12.386 +		} ## end else [ if ( length $lines->[0...])]
  12.387 +	} ## end while (@$lines)
  12.388 +
  12.389 +	return 1;
  12.390 +} ## end sub _read_hash
  12.391 +
  12.392 +# Set error
  12.393 +sub _error {
  12.394 +	$YAML::Tiny::errstr = $_[1];
  12.395 +	undef;
  12.396 +}
  12.397 +
  12.398 +# Retrieve error
  12.399 +sub errstr {
  12.400 +	$YAML::Tiny::errstr;
  12.401 +}
  12.402 +
  12.403 +
  12.404 +
  12.405 +#####################################################################
  12.406 +# Use Scalar::Util if possible, otherwise emulate it
  12.407 +
  12.408 +BEGIN {
  12.409 +	eval { require Scalar::Util; };
  12.410 +	if ($@) {
  12.411 +
  12.412 +		# Failed to load Scalar::Util
  12.413 +		eval <<'END_PERL';
  12.414 +sub refaddr {
  12.415 +	my $pkg = ref($_[0]) or return undef;
  12.416 +	if (!!UNIVERSAL::can($_[0], 'can')) {
  12.417 +		bless $_[0], 'Scalar::Util::Fake';
  12.418 +	} else {
  12.419 +		$pkg = undef;
  12.420 +	}
  12.421 +	"$_[0]" =~ /0x(\w+)/;
  12.422 +	my $i = do { local $^W; hex $1 };
  12.423 +	bless $_[0], $pkg if defined $pkg;
  12.424 +	$i;
  12.425 +}
  12.426 +END_PERL
  12.427 +	} else {
  12.428 +		Scalar::Util->import('refaddr');
  12.429 +	}
  12.430 +} ## end BEGIN
  12.431 +
  12.432 +
  12.433 +#####################################################################
  12.434 +# main test
  12.435 +#####################################################################
  12.436 +
  12.437 +package main;
  12.438 +
  12.439 +BEGIN {
  12.440 +
  12.441 +   # Skip modules that either don't want to be loaded directly, such as
  12.442 +   # Module::Install, or that mess with the test count, such as the Test::*
  12.443 +   # modules listed here.
  12.444 +   #
  12.445 +   # Moose::Role conflicts if Moose is loaded as well, but Moose::Role is in
  12.446 +   # the Moose distribution and it's certain that someone who uses
  12.447 +   # Moose::Role also uses Moose somewhere, so if we disallow Moose::Role,
  12.448 +   # we'll still get the relevant version number.
  12.449 +
  12.450 +	my %skip = map { $_ => 1 } qw(
  12.451 +	  App::FatPacker
  12.452 +	  Class::Accessor::Classy
  12.453 +	  Module::Install
  12.454 +	  Moose::Role
  12.455 +	  Test::YAML::Meta
  12.456 +	  Test::Pod::Coverage
  12.457 +	  Test::Portability::Files
  12.458 +	  Test::Perl::Dist
  12.459 +	);
  12.460 +
  12.461 +	my $Test = Test::Builder->new;
  12.462 +
  12.463 +	$Test->plan( skip_all => "META.yml could not be found" )
  12.464 +	  unless -f 'META.yml' and -r _;
  12.465 +
  12.466 +	my $meta = ( Local::YAML::Tiny->read('META.yml') )->[0];
  12.467 +	my %requires;
  12.468 +	for my $require_key ( grep {/requires/} keys %$meta ) {
  12.469 +		my %h = %{ $meta->{$require_key} };
  12.470 +		$requires{$_}++ for keys %h;
  12.471 +	}
  12.472 +	delete $requires{perl};
  12.473 +
  12.474 +	diag("Testing with Perl $], $Config{archname}, $^X");
  12.475 +	for my $module ( sort keys %requires ) {
  12.476 +		if ( $skip{$module} ) {
  12.477 +			note "$module doesn't want to be loaded directly, skipping";
  12.478 +			next;
  12.479 +		}
  12.480 +		local $SIG{__WARN__} = sub { note "$module: $_[0]" };
  12.481 +		use_ok $module or BAIL_OUT("can't load $module");
  12.482 +		my $version = $module->VERSION;
  12.483 +		$version = 'undefined' unless defined $version;
  12.484 +		diag("    $module version is $version");
  12.485 +	}
  12.486 +	done_testing;
  12.487 +} ## end BEGIN
  12.488 +
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/share/csjewell/skel/t/compile.t	Wed Aug 11 23:15:51 2010 -0600
    13.3 @@ -0,0 +1,15 @@
    13.4 +use Test::More tests => 2;
    13.5 +{{
    13.6 +	$name = join('::', split(/-/, $dist->name));
    13.7 +	'';
    13.8 +}}
    13.9 +BEGIN {
   13.10 +	use strict;
   13.11 +	$^W = 1;
   13.12 +	$| = 1;
   13.13 +
   13.14 +    ok(($] > 5.008000), 'Perl version acceptable') or BAIL_OUT ('Perl version unacceptably old.');
   13.15 +    use_ok( '{{$name}}' );
   13.16 +    diag( "Testing {{$name}} ${{$name}}::VERSION" );
   13.17 +}
   13.18 +
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/share/csjewell/skel/xt/author/changes.t	Wed Aug 11 23:15:51 2010 -0600
    14.3 @@ -0,0 +1,28 @@
    14.4 +#!/usr/bin/perl
    14.5 +
    14.6 +# Test that the distribution's Changes file has been updated.
    14.7 +
    14.8 +use strict;
    14.9 +
   14.10 +BEGIN {
   14.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   14.12 +	use English qw(-no_match_vars);
   14.13 +	$OUTPUT_AUTOFLUSH = 1;
   14.14 +	$WARNING = 1;
   14.15 +}
   14.16 +
   14.17 +my @MODULES = (
   14.18 +	'Test::CheckChanges 0.14',
   14.19 +);
   14.20 +
   14.21 +# Load the testing modules
   14.22 +use Test::More;
   14.23 +foreach my $MODULE ( @MODULES ) {
   14.24 +	eval "use $MODULE";
   14.25 +	if ( $EVAL_ERROR ) {
   14.26 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" );
   14.27 +	}
   14.28 +}
   14.29 +
   14.30 +ok_changes(base => '..');
   14.31 +
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/share/csjewell/skel/xt/author/common_mistakes.t	Wed Aug 11 23:15:51 2010 -0600
    15.3 @@ -0,0 +1,29 @@
    15.4 +#!/usr/bin/perl
    15.5 +
    15.6 +# Test that all modules have no common misspellings.
    15.7 +
    15.8 +use strict;
    15.9 +
   15.10 +BEGIN {
   15.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   15.12 +	use English qw(-no_match_vars);
   15.13 +	$OUTPUT_AUTOFLUSH = 1;
   15.14 +	$WARNING = 1;
   15.15 +}
   15.16 +
   15.17 +my @MODULES = (
   15.18 +	'Pod::Spell::CommonMistakes 0.01',
   15.19 +	'Test::Pod::Spelling::CommonMistakes 0.01',
   15.20 +);
   15.21 +
   15.22 +# Load the testing modules
   15.23 +use Test::More;
   15.24 +foreach my $MODULE ( @MODULES ) {
   15.25 +	eval "use $MODULE";
   15.26 +	if ( $EVAL_ERROR ) {
   15.27 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" );
   15.28 +	}
   15.29 +}
   15.30 +
   15.31 +all_pod_files_ok();
   15.32 +
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/share/csjewell/skel/xt/author/fixme.t	Wed Aug 11 23:15:51 2010 -0600
    16.3 @@ -0,0 +1,35 @@
    16.4 +#!/usr/bin/perl
    16.5 +
    16.6 +# Test that all modules have nothing marked to do.
    16.7 +
    16.8 +use strict;
    16.9 +
   16.10 +BEGIN {
   16.11 +	use English qw(-no_match_vars);
   16.12 +	$OUTPUT_AUTOFLUSH = 1;
   16.13 +	$WARNING = 1;
   16.14 +}
   16.15 +
   16.16 +my @MODULES = (
   16.17 +	'Test::Fixme 0.04',
   16.18 +);
   16.19 +
   16.20 +# Load the testing modules
   16.21 +use Test::More;
   16.22 +foreach my $MODULE ( @MODULES ) {
   16.23 +	eval "use $MODULE";
   16.24 +	if ( $EVAL_ERROR ) {
   16.25 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" );
   16.26 +	}
   16.27 +}
   16.28 +
   16.29 +# To make this a todo test, remove the comments below, and the spaces
   16.30 +# between TO and DO in the next two lines.
   16.31 +#TO DO: {
   16.32 +#	local $TO DO = 'All modules are going to be fixed.';
   16.33 +
   16.34 +	run_tests(
   16.35 +		match    => 'TO' . 'DO',                # what to check for
   16.36 +	);
   16.37 +#}
   16.38 +
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/share/csjewell/skel/xt/author/manifest.t	Wed Aug 11 23:15:51 2010 -0600
    17.3 @@ -0,0 +1,31 @@
    17.4 +#!perl
    17.5 +
    17.6 +# Test that our MANIFEST describes the distribution
    17.7 +
    17.8 +use strict;
    17.9 +
   17.10 +BEGIN {
   17.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   17.12 +	use English qw(-no_match_vars);
   17.13 +	$OUTPUT_AUTOFLUSH = 1;
   17.14 +	$WARNING = 1;
   17.15 +}
   17.16 +
   17.17 +my @MODULES = (
   17.18 +	'Test::DistManifest 1.009',
   17.19 +);
   17.20 +
   17.21 +# Load the testing modules
   17.22 +use Test::More;
   17.23 +unless ( -e 'MANIFEST.SKIP' ) {
   17.24 +	plan( skip_all => "MANIFEST.SKIP does not exist, so cannot test this." );
   17.25 +}
   17.26 +foreach my $MODULE ( @MODULES ) {
   17.27 +	eval "use $MODULE";
   17.28 +	if ( $EVAL_ERROR ) {
   17.29 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" );
   17.30 +	}
   17.31 +}
   17.32 +
   17.33 +manifest_ok();
   17.34 +
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/share/csjewell/skel/xt/author/meta.t	Wed Aug 11 23:15:51 2010 -0600
    18.3 @@ -0,0 +1,29 @@
    18.4 +#!perl
    18.5 +
    18.6 +# Test that our META.yml file matches the specification
    18.7 +
    18.8 +use strict;
    18.9 +
   18.10 +BEGIN {
   18.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   18.12 +	use English qw(-no_match_vars);
   18.13 +	$OUTPUT_AUTOFLUSH = 1;
   18.14 +	$WARNING = 1;
   18.15 +}
   18.16 +
   18.17 +my @MODULES = (
   18.18 +    'Parse::CPAN::Meta 1.40',
   18.19 +	'Test::CPAN::Meta 0.17',
   18.20 +);
   18.21 +
   18.22 +# Load the testing modules
   18.23 +use Test::More;
   18.24 +foreach my $MODULE ( @MODULES ) {
   18.25 +	eval "use $MODULE";
   18.26 +	if ( $EVAL_ERROR ) {
   18.27 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" );
   18.28 +	}
   18.29 +}
   18.30 +
   18.31 +meta_yaml_ok();
   18.32 +
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/share/csjewell/skel/xt/author/minimumversion.t	Wed Aug 11 23:15:51 2010 -0600
    19.3 @@ -0,0 +1,30 @@
    19.4 +#!perl
    19.5 +
    19.6 +# Test that our declared minimum Perl version matches our syntax
    19.7 +
    19.8 +use strict;
    19.9 +
   19.10 +BEGIN {
   19.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   19.12 +	use English qw(-no_match_vars);
   19.13 +	$OUTPUT_AUTOFLUSH = 1;
   19.14 +	$WARNING = 1;
   19.15 +}
   19.16 +
   19.17 +my @MODULES = (
   19.18 +	'Perl::MinimumVersion 1.26',
   19.19 +	'Test::MinimumVersion 0.101080',
   19.20 +);
   19.21 +
   19.22 +
   19.23 +# Load the testing modules
   19.24 +use Test::More;
   19.25 +foreach my $MODULE ( @MODULES ) {
   19.26 +	eval "use $MODULE";
   19.27 +	if ( $EVAL_ERROR ) {
   19.28 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" )
   19.29 +	}
   19.30 +}
   19.31 +
   19.32 +all_minimum_version_from_metayml_ok();
   19.33 +
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/share/csjewell/skel/xt/author/perlcritic.t	Wed Aug 11 23:15:51 2010 -0600
    20.3 @@ -0,0 +1,56 @@
    20.4 +#!perl
    20.5 +
    20.6 +# Test that modules pass perlcritic and perltidy.
    20.7 +
    20.8 +use strict;
    20.9 +
   20.10 +BEGIN {
   20.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   20.12 +	use English qw(-no_match_vars);
   20.13 +	$OUTPUT_AUTOFLUSH = 1;
   20.14 +	$WARNING = 1;
   20.15 +}
   20.16 +
   20.17 +my @MODULES = (
   20.18 +	'Perl::Tidy',
   20.19 +	'Perl::Critic',
   20.20 +	'PPIx::Regexp',
   20.21 +	'PPIx::Utilities::Statement',
   20.22 +	'Email::Address',
   20.23 +	'Perl::Critic::Utils::Constants',
   20.24 +	'Perl::Critic::More',
   20.25 +	'Test::Perl::Critic',
   20.26 +);
   20.27 +
   20.28 +# Load the testing modules
   20.29 +use Test::More;
   20.30 +foreach my $MODULE ( @MODULES ) {
   20.31 +	eval "require $MODULE"; # Has to be require because we pass options to import.
   20.32 +	if ( $EVAL_ERROR ) {
   20.33 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" )
   20.34 +	}
   20.35 +}
   20.36 +
   20.37 +$Perl::Critic::VERSION =~ s/_//;
   20.38 +if ( 1.108 > eval { $Perl::Critic::VERSION } ) {
   20.39 +	plan( skip_all => 'Perl::Critic needs updated to 1.108' );
   20.40 +}
   20.41 +
   20.42 +if ( 20090616 > eval { $Perl::Tidy::VERSION } ) {
   20.43 +	plan( skip_all => "Perl::Tidy needs updated to 20090616" );
   20.44 +}
   20.45 +
   20.46 +use File::Spec::Functions qw(catfile);
   20.47 +Perl::Critic::Utils::Constants->import(':profile_strictness');
   20.48 +my $dummy = $Perl::Critic::Utils::Constants::PROFILE_STRICTNESS_QUIET;
   20.49 +
   20.50 +local $ENV{PERLTIDY} = catfile( 'xt', 'settings', 'perltidy.txt' );
   20.51 +
   20.52 +my $rcfile = catfile( 'xt', 'settings', 'perlcritic.txt' );
   20.53 +Test::Perl::Critic->import( 
   20.54 +	-profile            => $rcfile, 
   20.55 +	-severity           => 1, 
   20.56 +	-profile-strictness => $Perl::Critic::Utils::Constants::PROFILE_STRICTNESS_QUIET
   20.57 +);
   20.58 +all_critic_ok();
   20.59 +
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/share/csjewell/skel/xt/author/pod.t	Wed Aug 11 23:15:51 2010 -0600
    21.3 @@ -0,0 +1,31 @@
    21.4 +#!perl
    21.5 +
    21.6 +# Test that the syntax of our POD documentation is valid
    21.7 +
    21.8 +use strict;
    21.9 +
   21.10 +BEGIN {
   21.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   21.12 +	use English qw(-no_match_vars);
   21.13 +	$OUTPUT_AUTOFLUSH = 1;
   21.14 +	$WARNING = 1;
   21.15 +}
   21.16 +
   21.17 +my @MODULES = (
   21.18 +	'Pod::Simple 3.14',
   21.19 +	'Test::Pod 1.44',
   21.20 +);
   21.21 +
   21.22 +# Load the testing modules
   21.23 +use Test::More;
   21.24 +foreach my $MODULE ( @MODULES ) {
   21.25 +	eval "use $MODULE";
   21.26 +	if ( $EVAL_ERROR ) {
   21.27 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" )
   21.28 +	}
   21.29 +}
   21.30 +
   21.31 +my @files = sort { $a cmp $b } all_pod_files();
   21.32 +
   21.33 +all_pod_files_ok( @files );
   21.34 +
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/share/csjewell/skel/xt/author/pod_coverage.t	Wed Aug 11 23:15:51 2010 -0600
    22.3 @@ -0,0 +1,40 @@
    22.4 +#!perl
    22.5 +
    22.6 +# Test that modules are documented by their pod.
    22.7 +
    22.8 +use strict;
    22.9 +
   22.10 +BEGIN {
   22.11 +	use English qw(-no_match_vars);
   22.12 +	$OUTPUT_AUTOFLUSH = 1;
   22.13 +	$WARNING = 1;
   22.14 +}
   22.15 +
   22.16 +# If using Moose, uncomment the appropriate lines below.
   22.17 +my @MODULES = (
   22.18 +#	'Pod::Coverage::Moose 0.01',
   22.19 +	'Pod::Coverage 0.21',
   22.20 +	'Test::Pod::Coverage 1.08',
   22.21 +);
   22.22 +
   22.23 +# Load the testing modules
   22.24 +use Test::More;
   22.25 +foreach my $MODULE ( @MODULES ) {
   22.26 +	eval "use $MODULE";
   22.27 +	if ( $EVAL_ERROR ) {
   22.28 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" )
   22.29 +	}
   22.30 +}
   22.31 +
   22.32 +my @modules = all_modules();
   22.33 +my @modules_to_test = sort { $a cmp $b } @modules;
   22.34 +my $test_count = scalar @modules_to_test;
   22.35 +plan tests => $test_count;
   22.36 +
   22.37 +foreach my $module (@modules_to_test) {
   22.38 +	pod_coverage_ok($module, { 
   22.39 +#		coverage_class => 'Pod::Coverage::Moose', 
   22.40 +		also_private => [ qr/^[A-Z_]+$/ ],
   22.41 +	});
   22.42 +}
   22.43 +
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/share/csjewell/skel/xt/author/portability.t	Wed Aug 11 23:15:51 2010 -0600
    23.3 @@ -0,0 +1,28 @@
    23.4 +#!perl
    23.5 +
    23.6 +# Test that our files are portable across systems.
    23.7 +
    23.8 +use strict;
    23.9 +
   23.10 +BEGIN {
   23.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   23.12 +	use English qw(-no_match_vars);
   23.13 +	$OUTPUT_AUTOFLUSH = 1;
   23.14 +	$WARNING = 1;
   23.15 +}
   23.16 +
   23.17 +my @MODULES = (
   23.18 +	'Test::Portability::Files 0.05',
   23.19 +);
   23.20 +
   23.21 +# Load the testing modules
   23.22 +use Test::More;
   23.23 +foreach my $MODULE ( @MODULES ) {
   23.24 +	eval "use $MODULE";
   23.25 +	if ( $EVAL_ERROR ) {
   23.26 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" );
   23.27 +	}
   23.28 +}
   23.29 +
   23.30 +run_tests();
   23.31 +
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/share/csjewell/skel/xt/author/prereq.t	Wed Aug 11 23:15:51 2010 -0600
    24.3 @@ -0,0 +1,37 @@
    24.4 +#!perl
    24.5 +
    24.6 +# Test that all our prerequisites are defined in the Build.PL.
    24.7 +
    24.8 +use strict;
    24.9 +
   24.10 +BEGIN {
   24.11 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   24.12 +	use English qw(-no_match_vars);
   24.13 +	$OUTPUT_AUTOFLUSH = 1;
   24.14 +	$WARNING = 1;
   24.15 +}
   24.16 +
   24.17 +my @MODULES = (
   24.18 +	'Test::Prereq::Build 1.037',
   24.19 +);
   24.20 +
   24.21 +# Load the testing modules
   24.22 +use Test::More;
   24.23 +foreach my $MODULE ( @MODULES ) {
   24.24 +	eval "use $MODULE";
   24.25 +	if ( $EVAL_ERROR ) {
   24.26 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" )
   24.27 +	}
   24.28 +}
   24.29 +
   24.30 +local $ENV{PERL_MM_USE_DEFAULT} = 1;
   24.31 +
   24.32 +diag('Takes a few minutes...');
   24.33 +
   24.34 +my @modules_skip = (
   24.35 +# Modules needed for prerequisites, not for this module
   24.36 +    # List here if needed.
   24.37 +);
   24.38 +
   24.39 +prereq_ok(5.008001, 'Check prerequisites', \@modules_skip);
   24.40 +
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/share/csjewell/skel/xt/author/version.t	Wed Aug 11 23:15:51 2010 -0600
    25.3 @@ -0,0 +1,29 @@
    25.4 +
    25.5 +#!/usr/bin/perl
    25.6 +
    25.7 +# Test that all modules have a version number.
    25.8 +
    25.9 +use strict;
   25.10 +
   25.11 +BEGIN {
   25.12 +	BAIL_OUT ('Perl version unacceptably old.') if ($] < 5.008001);
   25.13 +	use English qw(-no_match_vars);
   25.14 +	$OUTPUT_AUTOFLUSH = 1;
   25.15 +	$WARNING = 1;
   25.16 +}
   25.17 +
   25.18 +my @MODULES = (
   25.19 +	'Test::HasVersion 0.012',
   25.20 +);
   25.21 +
   25.22 +# Load the testing modules
   25.23 +use Test::More;
   25.24 +foreach my $MODULE ( @MODULES ) {
   25.25 +	eval "use $MODULE";
   25.26 +	if ( $EVAL_ERROR ) {
   25.27 +		BAIL_OUT( "Failed to load required release-testing module $MODULE" );
   25.28 +	}
   25.29 +}
   25.30 +
   25.31 +all_pm_version_ok();
   25.32 +
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/share/csjewell/skel/xt/settings/perlcritic.txt	Wed Aug 11 23:15:51 2010 -0600
    26.3 @@ -0,0 +1,37 @@
    26.4 +verbose = %f:%l:%c:\n %p: %m\n
    26.5 +theme = (core || more)
    26.6 +
    26.7 +[ControlStructures::ProhibitPostfixControls]
    26.8 +flowcontrol = warn die carp croak cluck confess goto exit throw return next
    26.9 +
   26.10 +[RegularExpressions::RequireExtendedFormatting]
   26.11 +minimum_regex_length_to_complain_about = 7
   26.12 +
   26.13 +[InputOutput::RequireCheckedSyscalls]
   26.14 +functions = :builtins
   26.15 +exclude_functions = print
   26.16 +
   26.17 +[Modules::PerlMinimumVersion]
   26.18 +version = 5.008001
   26.19 +
   26.20 +[ValuesAndExpressions::ProhibitMagicNumbers]
   26.21 +allowed_values = -1 0 1 2
   26.22 +
   26.23 +# Excluded because Moose builder subroutines get hit by this.
   26.24 +[Subroutines::ProhibitUnusedPrivateSubroutines]
   26.25 +private_name_regex = _(?!build_)\w+
   26.26 +
   26.27 +# Exclusions
   26.28 +# This one can be removed if keywords are used.
   26.29 +[-Miscellanea::RequireRcsKeywords]
   26.30 +
   26.31 +# Excluded because we filter out development versions.
   26.32 +[-ValuesAndExpressions::RequireConstantVersion]
   26.33 +
   26.34 +# I like to set up my own pod.
   26.35 +[-Documentation::RequirePodAtEnd]
   26.36 +[-Documentation::RequirePodSections]
   26.37 +
   26.38 +# No Emacs!
   26.39 +[-Editor::RequireEmacsFileVariables]
   26.40 +
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/share/csjewell/skel/xt/settings/perltidy.txt	Wed Aug 11 23:15:51 2010 -0600
    27.3 @@ -0,0 +1,39 @@
    27.4 +--backup-and-modify-in-place
    27.5 +--warning-output
    27.6 +--maximum-line-length=76
    27.7 +--indent-columns=4
    27.8 +--entab-leading-whitespace=4
    27.9 +# --check-syntax
   27.10 +# -perl-syntax-check-flags=-c
   27.11 +--continuation-indentation=2
   27.12 +--outdent-long-quotes
   27.13 +--outdent-long-lines
   27.14 +--outdent-labels
   27.15 +--paren-tightness=1
   27.16 +--square-bracket-tightness=1
   27.17 +--block-brace-tightness=1
   27.18 +--space-for-semicolon
   27.19 +--add-semicolons
   27.20 +--delete-semicolons
   27.21 +--indent-spaced-block-comments
   27.22 +--minimum-space-to-comment=3
   27.23 +--fixed-position-side-comment=40
   27.24 +--closing-side-comments
   27.25 +--closing-side-comment-interval=12
   27.26 +--static-block-comments
   27.27 +# --static-block-comment-prefix=^#{2,}[^\s#]
   27.28 +--static-side-comments
   27.29 +--format-skipping
   27.30 +--cuddled-else
   27.31 +--no-opening-brace-on-new-line
   27.32 +--vertical-tightness=1
   27.33 +--stack-opening-tokens
   27.34 +--stack-closing-tokens
   27.35 +--maximum-fields-per-table=8
   27.36 +--comma-arrow-breakpoints=0
   27.37 +--blanks-before-comments
   27.38 +--blanks-before-subs
   27.39 +--blanks-before-blocks
   27.40 +--long-block-line-count=4
   27.41 +--maximum-consecutive-blank-lines=5
   27.42 +