Compare commits

..

16 Commits

Author SHA1 Message Date
Graham Ollis
56599bf4f7 rm unnecessary returns 2015-03-19 13:45:03 -04:00
Graham Ollis
bba3793735 v1.55
- Mojo 6.x compat
2015-02-28 10:32:15 -05:00
Graham Ollis
ac65e8797e update changes 2015-02-28 10:31:34 -05:00
Graham Ollis
32f8daf9cd mojo 6.x compat 2015-02-28 10:31:27 -05:00
Graham Ollis
1025d74a36 v1.54
- cpantesters: do not report on older perls
2014-12-20 10:18:14 -05:00
Graham Ollis
4203effb6b update changes 2014-12-20 10:16:02 -05:00
Graham Ollis
c6276a8d78 update release tests and diagnostic 2014-12-20 10:15:34 -05:00
Graham Ollis
6dfa5560a8 do not report on older Perls 2014-12-20 10:14:21 -05:00
Graham Ollis
bca2f85fb3 update travis 2014-07-31 08:24:57 -04:00
Graham Ollis
5b364d31ac v1.53
- Mojolicious 5.0 support
2014-05-31 06:23:08 -04:00
Graham Ollis
f9bc6aa56a some house keeping 2014-05-31 06:20:50 -04:00
Graham Ollis
65e4bbf7c8 Mojolicious 5.0 support 2014-05-31 06:12:45 -04:00
Graham Ollis
5870c014c2 v1.52
- updated repository name
2014-05-08 19:27:10 -04:00
Graham Ollis
8dcb4147f7 updated repostiryo name 2014-05-08 19:25:32 -04:00
Graham Ollis
c489fbc86e update diagnostic and release tets 2014-05-08 19:25:20 -04:00
Graham Ollis
9699560925 clean up deps 2014-03-21 15:06:29 -04:00
16 changed files with 322 additions and 223 deletions

View File

@@ -4,7 +4,8 @@ install:
- cpanm -n Template
script: HARNESS_IS_VERBOSE=1 prove -v -Ilib t
perl:
- "5.19"
- "5.21"
- "5.20"
- "5.18"
- "5.16"
- "5.14"

176
Changes
View File

@@ -2,191 +2,203 @@ Revision history for Mojolicious::Plugin::TtRenderer
{{$NEXT}}
1.55 2015-02-28 10:31:58 -0500
- Mojo 6.x compat
1.54 2014-12-20 10:17:47 -0500
- cpantesters: do not report on older perls
1.53 2014-05-31 06:22:47 -0400
- Mojolicious 5.0 support
1.52 2014-05-08 19:26:47 -0400
- updated repository name
1.51 2014-03-21 14:59:39 -0400
- extended diagnostics
- documentation tweaks
- fix non-lite app example (GH#41, uwisser)
- extended diagnostics
- documentation tweaks
- fix non-lite app example (GH#41, uwisser)
1.50 2013-08-08T16:51:21-0400
- update Changes to follow spec (GH#39, Сергей Романов)
- minor documentation fixes
- update Changes to follow spec (GH#39, Сергей Романов)
- minor documentation fixes
1.49 2013-08-08T09:18:54-0400
- documentation
- documentation
1.48 2013-08-08T09:13:19-0400
- documentation
- documentation
1.47 2013-07-26T06:07:35-0400
- Template-Toolkit 2.25 compatability
- Template-Toolkit 2.25 compatability
1.46 2013-05-19
- Mojolicious 4.0 compatability
- Mojolicious 4.0 compatability
1.45 2013-04-26
- correctly support app->default->{layout} (GH#37, Fayland Lam)
- correctly support app->default->{layout} (GH#37, Fayland Lam)
1.44 2013-04-13
- promote development changes to production
- promote development changes to production
1.43_01 2013-04-11
- _template_modified returns value from super class instead of 1 if true (GH#36, Fayland Lam)
- _template_modified returns value from super class instead of 1 if true (GH#36, Fayland Lam)
1.43 2013-04-08
- promote development changes
- promote development changes
1.42_04 2013-04-06
- Updated meta for new github repo location
- Updated meta for new github repo location
1.42_03 2013-03-22
- Allow custom relative paths for cache_dir (GH#35, Jason Crowther)
- Allow custom relative paths for cache_dir (GH#35, Jason Crowther)
1.42_02 2013-02-26
- only create COMPILE_DIR based on UID if the user doesn't specify COMPILE_DIR
- only create COMPILE_DIR based on UID if the user doesn't specify COMPILE_DIR
1.42_01 2013-02-24
- set COMPILE_DIR based on UID so that multiple users can use TtRenderer with default config
- set COMPILE_DIR based on UID so that multiple users can use TtRenderer with default config
1.42 2013-02-24
- fix for test on solaris
- fix for test on solaris
1.41 2013-02-23
- Additional testing diagnostics
- Additional testing diagnostics
1.40 2013-02-20
- Added diagnostic for IO loop implementation in testing
- Added diagnostic for IO loop implementation in testing
1.39 2013-01-28
- Documentation updates.
- Documentation updates.
1.38 2013-01-27
- fixed but where DATA templates were not being rendered with empty renderer path
- fixed but where DATA templates were not being rendered with empty renderer path
1.37 2013-01-12
- fix default_template2.t to use temp directory for COMPILE_DIR
- fix default_template2.t to use temp directory for COMPILE_DIR
1.36 2013-01-09
- Use $provider->fetch to find templates (GH#34)
- Use $provider->fetch to find templates (GH#34)
1.35 2012-12-30
- Documentation fix
- Documentation fix
1.34 2012-12-29
- Include META.json in distribution.
- Include META.json in distribution.
1.33 2012-12-27
- Fix hang in t/deep_recursion.t on *BSD
- Fix hang in t/deep_recursion.t on *BSD
1.32 2012-12-27
- silenced a few annoying warnings during test
- use temp directory for COMPILE_DIR in tests to avoid failures if the
- silenced a few annoying warnings during test
- use temp directory for COMPILE_DIR in tests to avoid failures if the
default compile directory already exists and is owned by someone else.
1.31 2012-12-26
- Set locale "C" in tests that rely on it
- Set locale "C" in tests that rely on it
1.30 2012-12-22
- Don't rely on English locale in the test t/tt_plugin_lite_app.t
- Don't rely on English locale in the test t/tt_plugin_lite_app.t
1.29 2012-12-18
- support multiple renderer paths
- support multiple renderer paths
1.28 2012-10-11
- specify minimum perl version
- specify minimum perl version
1.27 2012-10-02
- documentation fixes and updates.
- documentation fixes and updates.
1.26 2012-08-31
- Windows compatability with Cwd::abs_path
- Windows compatability with Cwd::abs_path
1.25 2012-08-25
- Return 0 on not found, die on error (GH#30)
- Return 0 on not found, die on error (GH#30)
1.24 2012-08-23
- Compatibility with Mojolicious 3.33+
- Compatibility with Mojolicious 3.33+
1.23 2012-08-23
- Use die instead of render_exception (GH#29)
- Use die instead of render_exception (GH#29)
1.22 2012-08-21
- Compatibility with Mojolicious 3.05+ (GH#24)
- Avoid deep recursion when exception template dies (GH#25,GH26)
- Fixed test failures (GH#27,GH#28)
- Compatibility with Mojolicious 3.05+ (GH#24)
- Avoid deep recursion when exception template dies (GH#25,GH26)
- Fixed test failures (GH#27,GH#28)
1.21 2012-06-05
- Fixed double TT rendering on error (Matthias Bethke (GH#21))
- Cache templates in tmpdir by default (Marcus Ramberg)
- Require Mojolicious 2.51 to avoid memory leaks (GH#19)
- Document the 'c' stash variable (RT#70866, Matthias Bethke)
- Fix memory leaks, add tests for them (GH#18, Magnus Holm)
- Use app->renderer->paths to find template directories (GH#17)
- Fixed double TT rendering on error (Matthias Bethke (GH#21))
- Cache templates in tmpdir by default (Marcus Ramberg)
- Require Mojolicious 2.51 to avoid memory leaks (GH#19)
- Document the 'c' stash variable (RT#70866, Matthias Bethke)
- Fix memory leaks, add tests for them (GH#18, Magnus Holm)
- Use app->renderer->paths to find template directories (GH#17)
1.20 2011-08-01
- Drop use of MojoX namespace for Mojolicious::Plugin::TtRenderer::
- Drop use of MojoX namespace for Mojolicious::Plugin::TtRenderer::
(GH#12, Cosimo Streppone)
1.13 2011-06-07
- Compatibility with Mojolicious 1.3+
- Compatibility with Mojolicious 1.3+
1.12 2011-02-28
- Inline wrappers and includes now work on Windows
- Inline wrappers and includes now work on Windows
(GH#13, Christiaan Kras)
1.11 2011-02-06
- Change to use relative paths (Marcus Ramberg)
- Add exception template for tests
- Change to use relative paths (Marcus Ramberg)
- Add exception template for tests
1.10 2011-02-05
- Support Mojolicious 'layout'/'extends' (Maxim Vuets, Marcus
- Support Mojolicious 'layout'/'extends' (Maxim Vuets, Marcus
Ramberg)
- Fix Strawberry Perl tests (RT#65282, Christiaan Kras, Ask)
- Update bugtracker URL in META.yml
- Fix Strawberry Perl tests (RT#65282, Christiaan Kras, Ask)
- Update bugtracker URL in META.yml
1.0 2011-01-22
- Require (and be compatible with) Mojolicious 1.0+
- Added inline template support (Viacheslav Tykhanovskyi & Ask)
- Fix inline rendering and test failures (Marcus Ramberg)
- Fixed helper compatibility with Mojolicious 1.0 (Árpád Szász)
- Support new mojolicious error template (Marcus)
- Fix unicode test (Marcus & Spleenjack)
- Replaced deprecated Mojo dependence with Mojolicious (spleenjack)
- Require (and be compatible with) Mojolicious 1.0+
- Added inline template support (Viacheslav Tykhanovskyi & Ask)
- Fix inline rendering and test failures (Marcus Ramberg)
- Fixed helper compatibility with Mojolicious 1.0 (Árpád Szász)
- Support new mojolicious error template (Marcus)
- Fix unicode test (Marcus & Spleenjack)
- Replaced deprecated Mojo dependence with Mojolicious (spleenjack)
0.40 2010-08-02
- Updated for newer Mojo (Viacheslav Tykhanovskyi)
- Added helpers (Viacheslav Tykhanovskyi)
- Documentation updates
- Updated for newer Mojo (Viacheslav Tykhanovskyi)
- Added helpers (Viacheslav Tykhanovskyi)
- Documentation updates
0.31 2009-09-11
- Remove deprecated 'new' method
- Update MANIFEST (oops, thanks Sebastian)
- Remove deprecated 'new' method
- Update MANIFEST (oops, thanks Sebastian)
0.30 2009-09-09
- Revert the change of template_path stash key
- Reflect recent changes in mojo project (v0.991251) (Sebastian Knapp)
- One test with Mojolicious added (Sebastian Knapp)
- Revert the change of template_path stash key
- Reflect recent changes in mojo project (v0.991251) (Sebastian Knapp)
- One test with Mojolicious added (Sebastian Knapp)
0.21 2009-07-29
- Update stash key from 'template_path' to 'template' to
- Update stash key from 'template_path' to 'template' to
match mojo change (Sebastian Knapp)
0.20 2008-12-09
- Updates to work with Mojo 0.9
- Add default INCLUDE_PATH
- Made default compile dir not Unix specific (Viacheslav
- Updates to work with Mojo 0.9
- Add default INCLUDE_PATH
- Made default compile dir not Unix specific (Viacheslav
Tykhanovskyi)
0.10 2008-11-12
- Update to work with named parameters in new version of Mojo
- Instead of "tx" pass the context in the "c" variable
- Rename "new" to "build"
- Add real tests (Viacheslav Tykhanovskyi)
- Update to work with new error handling in Mojo
- Update to work with named parameters in new version of Mojo
- Instead of "tx" pass the context in the "c" variable
- Rename "new" to "build"
- Add real tests (Viacheslav Tykhanovskyi)
- Update to work with new error handling in Mojo
(Viacheslav Tykhanovskyi)
0.02 2008-11-10
- Add template_options parameter
- Fix Template dependency
- Add template_options parameter
- Fix Template dependency
0.01 2008-11-09
- First version, released on an unsuspecting world.
- First version, released on an unsuspecting world.

View File

@@ -187,11 +187,11 @@ distribution, including the support files required for the full
# AUTHOR
original author: Ask Bjørn Hansen
Original author: Ask Bjørn Hansen
current maintainer: Graham Ollis <plicease@cpan.org>
Current maintainer: Graham Ollis <plicease@cpan.org>
contributors:
Contributors:
vti
@@ -225,7 +225,7 @@ uwisser
# COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Ask Bjørn Hansen.
This software is copyright (c) 2015 by Ask Bjørn Hansen.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

View File

@@ -5,30 +5,17 @@ license = Perl_5
copyright_holder = Ask Bjørn Hansen
# copyright_year = 2009
version = 1.51
version = 1.55
[@Author::Plicease]
release_tests = 1
travis_status = 1
installer = ModuleBuild
[Prereqs]
Mojolicious = 3.33
Mojolicious = 5.81
Template = 2.18
[Prereqs / TestRequires ]
Test::More = 0
[MetaResources]
bugtracker.web = https://github.com/plicease/mojox-renderer-tt/issues
repository.web = http://github.com/plicease/mojox-renderer-tt
repository.url = git://github.com/plicease/mojox-renderer-tt.git
repository.type = git
[CheckChangeLog]
[Test::Compile]
[HasVersionTests]
[MetaTests]
[Author::Plicease::Thanks]
current = Graham Ollis <plicease@cpan.org>
original = Ask Bjørn Hansen
@@ -54,3 +41,28 @@ contributor = uwisser
[MetaNoIndex]
directory = example
[RemovePrereqs]
; comes with Perl
remove = warnings
remove = strict
remove = lib
remove = utf8
remove = base
remove = Carp
remove = Cwd
remove = File::Spec
remove = Scalar::Util
remove = File::Temp
remove = FindBin
remove = IO::Handle
; comes with Mojolicious
remove = Mojo::Base
remove = Mojo::ByteStream
remove = Mojolicious::Plugin
remove = Mojo::IOLoop
remove = Mojolicious::Lite
remove = Test::Mojo
[Author::Plicease::InstallerPerlVersion]

View File

@@ -21,7 +21,7 @@ sub build {
my $self = shift->SUPER::new(@_);
weaken($self->{app});
$self->_init(@_);
return sub { $self->_render(@_) }
sub { $self->_render(@_) }
}
sub _init {
@@ -68,7 +68,7 @@ sub _init {
$self->tt(Template->new(\%config))
or Carp::croak "Could not initialize Template object: $Template::ERROR";
return $self;
$self;
}
sub _render {
@@ -120,7 +120,7 @@ sub _render {
# Error
die $self->tt->error unless $ok;
return 1;
1;
}
1; # End of Mojolicious::Plugin::TtRenderer::Engine
@@ -150,7 +150,7 @@ sub AUTOLOAD {
die qq/Unknown helper: $method/ unless $self->ctx->app->renderer->helpers->{$method};
return $self->ctx->$method(@_);
$self->ctx->$method(@_);
}
1;
@@ -173,7 +173,7 @@ sub new {
my $self = $class->SUPER::new(%params);
$self->renderer($renderer);
weaken($self->{renderer});
return $self;
$self;
}
sub renderer { @_ > 1 ? $_[0]->{renderer} = $_[1] : $_[0]->{renderer} }
@@ -206,9 +206,8 @@ sub _template_content {
if(defined $options) {
$data = $self->renderer->get_data_template($options);
} else {
my $loader = Mojo::Loader->new;
foreach my $class (@{ $self->renderer->classes }) {
$data = $loader->data($class, $t);
$data = Mojo::Loader::data_section($class, $t);
last if $data;
}
}
@@ -217,7 +216,7 @@ sub _template_content {
$data = '';
$error = "$path: not found";
}
return wantarray ? ($data, $error, time) : $data;
wantarray ? ($data, $error, time) : $data;
}
1;

View File

@@ -1,5 +1,6 @@
use strict;
use warnings;
use Config;
use Test::More tests => 1;
BEGIN {
my @modules;
@@ -10,14 +11,23 @@ BEGIN {
} || die $@;
do {
my $fh;
open($fh, '<', File::Spec->catfile($FindBin::Bin, '00_diag.pre.txt'));
@modules = <$fh>;
close $fh;
chomp @modules;
if(open($fh, '<', File::Spec->catfile($FindBin::Bin, '00_diag.pre.txt')))
{
@modules = <$fh>;
close $fh;
chomp @modules;
}
};
eval qq{ require $_ } for @modules;
};
sub spacer ()
{
diag '';
diag '';
diag '';
}
pass 'okay';
my @modules;
@@ -33,9 +43,30 @@ my $max = 1;
$max = $_ > $max ? $_ : $max for map { length $_ } @modules;
our $format = "%-${max}s %s";
diag '';
diag '';
diag '';
spacer;
my @keys = sort grep /(MOJO|PERL|\A(LC|HARNESS)_|\A(SHELL|LANG)\Z)/i, keys %ENV;
if(@keys > 0)
{
diag "$_=$ENV{$_}" for @keys;
if($ENV{PERL5LIB})
{
spacer;
diag "PERL5LIB path";
diag $_ for split $Config{path_sep}, $ENV{PERL5LIB};
}
elsif($ENV{PERLLIB})
{
spacer;
diag "PERLLIB path";
diag $_ for split $Config{path_sep}, $ENV{PERLLIB};
}
spacer;
}
diag sprintf $format, 'perl ', $^V;
@@ -56,6 +87,5 @@ foreach my $module (@modules)
}
}
diag '';
diag '';
diag '';
spacer;

View File

@@ -1,24 +1,7 @@
Carp
Cwd
EV
ExtUtils::MakeMaker
File::Spec
File::Temp
FindBin
IO::Handle
IPC::Open3
Mojo::Base
Mojo::ByteStream
Mojo::IOLoop
Module::Build
Mojolicious
Mojolicious::Lite
Mojolicious::Plugin
POSIX
Scalar::Util
Template
Template::Provider
Test::CPAN::Meta
Test::Mojo
Test::More
lib
utf8

View File

@@ -1,69 +0,0 @@
#!/usr/bin/env perl
use strict;
use warnings;
#BEGIN { $ENV{MOJO_MODE}='testing'; };
use utf8;
use Test::More;
use Mojolicious::Lite;
use Test::Mojo;
use File::Temp qw( tempdir );
use File::Spec;
if($Mojolicious::VERSION >= 4.0)
{
plan skip_all => 'test broken in mojo 4.0';
}
else
{
plan tests => 3;
}
# Send log to tmp file so that it doesn't clutter up the screen.
app->log->level('fatal');
app->log->path(do {
File::Spec->catfile(tempdir(CLEANUP => 1), 'mojo.log');
});
plugin 'tt_renderer' => {template_options => { COMPILE_DIR => tempdir( CLEANUP => 1 ) }};
get '/exception' => sub { die };
#say app->mode;
#app->start;
#exit;
my $t = Test::Mojo->new;
$t->app->renderer->default_handler('tt');
my $deep_recursion = 0;
do {
local $SIG{__WARN__} = sub {
my $warning = shift;
if($warning =~ /Deep recursion/) {
$deep_recursion = 1;
die $warning;
}
};
$t->get_ok('/exception')
->status_is(500);
};
ok !$deep_recursion, 'no deep recursion';
__DATA__
@@ exception.development.html.tt
[% 1 + % %]
@@ exception.html.tt
[% 1 + % %]
@@ exception.testing.html.tt
[% 1 + % %]

12
t/pod.t
View File

@@ -1,12 +0,0 @@
#!perl -T
use strict;
use warnings;
use Test::More;
# 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();

View File

@@ -24,7 +24,7 @@ BEGIN { $ENV{MOJO_TMPDIR} ||= tempdir( CLEANUP => 1) }
# Make sure sockets are working
plan skip_all => 'working sockets required for this test!'
unless Mojo::IOLoop->new->generate_port;
unless Mojo::IOLoop::Server->new->generate_port;
plan tests => 6;
# Leela: OK, this has gotta stop. I'm going to remind Fry of his humanity the way only a woman can.

View File

@@ -5,5 +5,5 @@ use Test::More tests => 1;
SKIP: {
eval q{ use Dist::Zilla::PluginBundle::Author::Plicease };
skip '[@Plicease] is not installed', 1 if $@;
ok $Dist::Zilla::PluginBundle::Author::Plicease::VERSION >= 0.7, '[@Plicease] >= 0.7';
ok $Dist::Zilla::PluginBundle::Author::Plicease::VERSION >= 1.45, '[@Plicease] >= 1.45';
}

View File

@@ -3,7 +3,7 @@ use warnings;
use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Fixme'
unless eval q{ use Test::Fixme; 1 };
unless eval q{ use Test::Fixme 0.14; 1 };
};
use Test::Fixme 0.07;
use FindBin;
@@ -14,5 +14,6 @@ chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
run_tests(
match => qr/FIXME/,
where => [ grep { -e $_ } qw( bin lib t Makefile.PL )],
warn => 1,
);

View File

@@ -20,11 +20,16 @@ my $config;
$config = LoadFile($config_filename)
if -r $config_filename;
plan skip_all => 'disabled' if $config->{pod_coverage}->{skip};
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
my @private_classes;
my %private_methods;
push @{ $config->{pod_coverage}->{private} },
'Alien::.*::Install::Files#Inline';
foreach my $private (@{ $config->{pod_coverage}->{private} })
{
my($class,$method) = split /#/, $private;

View File

@@ -4,11 +4,23 @@ use Test::More;
BEGIN {
plan skip_all => 'test requires Test::Pod::Spelling::CommonMistakes'
unless eval q{ use Test::Pod::Spelling::CommonMistakes; 1 };
plan skip_all => 'test requires YAML'
unless eval q{ use YAML qw( LoadFile ); 1 };
};
use Test::Pod::Spelling::CommonMistakes;
use FindBin;
use File::Spec;
my $config_filename = File::Spec->catfile(
$FindBin::Bin, 'release.yml'
);
my $config;
$config = LoadFile($config_filename)
if -r $config_filename;
plan skip_all => 'disabled' if $config->{pod_spelling_common}->{skip};
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
# FIXME test files in bin too.

View File

@@ -20,6 +20,8 @@ my $config;
$config = LoadFile($config_filename)
if -r $config_filename;
plan skip_all => 'disabled' if $config->{pod_spelling_system}->{skip};
chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
add_stopwords(@{ $config->{pod_spelling_system}->{stopwords} });
@@ -29,6 +31,7 @@ all_pod_files_spelling_ok;
__DATA__
Plicease
stdout
stderr
stdin
subref
loopback
@@ -37,3 +40,62 @@ os
Ollis
Mojolicious
plicease
CPAN
reinstall
TODO
filename
filenames
login
callback
callbacks
standalone
VMS
hostname
hostnames
TCP
UDP
IP
API
MSWin32
OpenBSD
FreeBSD
NetBSD
unencrypted
WebSocket
WebSockets
timestamp
timestamps
poney
BackPAN
portably
RedHat
AIX
BSD
XS
FFI
perlish
optimizations
subdirectory
RESTful
SQLite
JavaScript
dir
plugins
munge
jQuery
namespace
PDF
PDFs
usernames
DBI
pluggable
APIs
SSL
JSON
YAML
uncommented
Solaris
OpenVMS
URI
URL
CGI

63
xt/release/unused_vars.t Normal file
View File

@@ -0,0 +1,63 @@
use strict;
use warnings;
use Test::More;
BEGIN { plan skip_all => 'test requires Test::Vars ' unless eval q{ use Test::Vars; 1 } }
BEGIN { plan skip_all => 'test requires Path::Class' unless eval q{ use Path::Class::Dir; 1 } }
BEGIN { plan skip_all => 'test requires YAML' unless eval q{ use YAML; 1 } }
my $dir = Path::Class::Dir->new(__FILE__)->parent->parent->parent;
my $config = YAML::LoadFile($dir->file(qw( xt release release.yml )));
plan skip_all => 'disabled' unless defined $config->{unused_vars}->{skip} && !$config->{unused_vars}->{skip};
my @modules;
recurse($dir->subdir('lib'));
sub recurse
{
my $dir = shift;
foreach my $child ($dir->children)
{
if($child->is_dir)
{
recurse($child);
}
else
{
push @modules, $child if $child->basename =~ /\.pm$/;
}
}
}
plan tests => scalar @modules;
my %global = (
ignore_vars => { map { $_ => 1 } @{ $config->{unused_vars}->{global}->{ignore_vars} } },
);
if(defined $config->{unused_vars}->{global}->{ignore_if})
{
$global{ignore_if} = eval $config->{unused_vars}->{global}->{ignore_if};
die $@ if $@;
}
foreach my $file (@modules)
{
my @mod = $file->components;
shift @mod; # get rid of '.';
shift @mod; # get rid of 'lib';
$mod[-1] =~ s/\.pm$//;
my $mod = join '::', @mod;
my %local = %global;
foreach my $ignore (@{ $config->{unused_vars}->{module}->{$mod}->{ignore_vars} || []})
{
$local{ignore_vars}->{$ignore} = 1;
}
if(defined $config->{unused_vars}->{module}->{$mod}->{ignore_if})
{
$local{ignore_if} = eval $config->{unused_vars}->{module}->{$mod}->{ignore_if};
die $@ if $@;
}
vars_ok($file, %local);
}