Compare commits

..

27 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
Graham Ollis
247e2251b3 v1.51
- extended diagnostics
        - documentation tweaks
        - fix non-lite app example (GH#41, uwisser)
2014-03-21 14:59:55 -04:00
Graham Ollis
1b1e8cb63e doco 2014-03-21 14:58:55 -04:00
Graham Ollis
6598b29c2c update release tests 2014-03-21 14:58:30 -04:00
Graham Ollis
b40a0f97ee spelling 2014-03-21 14:58:16 -04:00
Graham Ollis
a1f36d716f update diagnostic 2014-03-21 14:57:50 -04:00
Graham Ollis
af07f0f983 example dev log should not be included in git or cpan 2014-03-21 14:42:55 -04:00
Ulrich Wisser
14884dd82d Fix template names in text and variable name in heading 2014-03-21 10:24:25 +01:00
Graham Ollis
f029ad393f doco 2013-09-28 12:45:16 -04:00
Graham Ollis
3ca192cd4f new diagnostic 2013-09-28 12:36:00 -04:00
Graham Ollis
e955bb151a spacing 2013-09-28 12:26:19 -04:00
Graham Ollis
02696ed4a1 migrate to newer version of [@Author::Plicease] 2013-09-10 07:53:20 -04:00
25 changed files with 677 additions and 474 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
/Mojolicious-Plugin-TtRenderer-*
/.build
/example/myapp/log/development.log

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"

175
Changes
View File

@@ -2,186 +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)
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.

231
README.md Normal file
View File

@@ -0,0 +1,231 @@
# Mojolicious::Plugin::TtRenderer [![Build Status](https://secure.travis-ci.org/plicease/Mojolicious-Plugin-TtRenderer.png)](http://travis-ci.org/plicease/Mojolicious-Plugin-TtRenderer)
Template Renderer Plugin for Mojolicious
# SYNOPSIS
[Mojolicious::Lite](https://metacpan.org/pod/Mojolicious::Lite):
plugin 'tt_renderer';
[Mojolicious](https://metacpan.org/pod/Mojolicious)
$self->plugin('tt_renderer');
# DESCRIPTION
This plugin is a simple Template Toolkit renderer for [Mojolicious](https://metacpan.org/pod/Mojolicious).
Its defaults are usually reasonable, although for finer grain detail in
configuration you may want to use
[Mojolicious::Plugin::TtRenderer::Engine](https://metacpan.org/pod/Mojolicious::Plugin::TtRenderer::Engine) directly.
# OPTIONS
These are the options that can be passed in as arguments to this plugin.
## template\_options
Configuration hash passed into [Template](https://metacpan.org/pod/Template)'s constructor, see
[Template Toolkit's configuration summary](https://metacpan.org/pod/Template#CONFIGURATION-SUMMARY)
for details. Here is an example using the [Mojolicious::Lite](https://metacpan.org/pod/Mojolicious::Lite) form:
plugin 'tt_renderer' => {
template_options => {
PRE_CHOMP => 1,
POST_CHOMP => 1,
TRIM => 1,
},
};
Here is the same example using the full [Mojolicious](https://metacpan.org/pod/Mojolicious) app form:
package MyApp;
use Mojo::Base qw( Mojolicious );
sub startup {
my($self) = @_;
$self->plugin('tt_renderer' => {
template_options => {
PRE_CHOMP => 1,
POST_CHOMP => 1,
TRIM => 1,
},
}
...
}
These options will be used if you do not override them:
- INCLUDE\_PATH
Generated based on your application's renderer's configuration. It
will include all renderer paths, in addition to search files located
in the `__DATA__` section by the usual logic used by [Mojolicious](https://metacpan.org/pod/Mojolicious).
- COMPILE\_EXT
`.ttc`
- UNICODE
`1` (true)
- ENCODING
`utf-87`
- CACHE\_SIZE
`128`
- RELATIVE
`1` (true)
## cache\_dir
Specifies the directory in which compiled template files are
written. This:
plugin 'tt_renderer', { cache_dir => 'some/path' };
is equivalent to
plugin 'tt_renderer', { template_options { COMPILE_DIR => 'some/path' } };
except in the first example relative paths are relative to the [Mojolicious](https://metacpan.org/pod/Mojolicious)
app's home directory (`$app->home`).
# STASH
## h
Helpers are available via the `h` entry in the stash.
<a href="[% h.url_for('index') %]">go back to index</a>
## c
The current controller instance can be accessed as `c`.
I see you are requesting a document from [% c.req.headers.host %].
# EXAMPLES
[Mojolicious::Lite](https://metacpan.org/pod/Mojolicious::Lite) example:
use Mojolicious::Lite;
plugin 'tt_renderer';
get '/' => sub {
my $self = shift;
$self->render('index');
};
app->start;
__DATA__
@@ index.html.tt
[%
WRAPPER 'layouts/default.html.tt'
title = 'Welcome'
%]
<p>Welcome to the Mojolicious real-time web framework!</p>
<p>Welcome to the TtRenderer plugin!</p>
[% END %]
@@ layouts/default.html.tt
<!DOCTYPE html>
<html>
<head><title>[% title %]</title></head>
<body>[% content %]</body>
</html>
[Mojolicious](https://metacpan.org/pod/Mojolicious) example:
package MyApp;
use Mojo::Base 'Mojolicious';
sub startup {
my $self = shift;
$self->plugin('tt_renderer');
my $r = $self->routes;
$r->get('/')->to('example#welcome');
}
1;
package MyApp::Example;
use Mojo::Base 'Mojolicious::Controller';
# This action will render a template
sub welcome {
my $self = shift;
# Render template "example/welcome.html.tt" with message
$self->render(
message => 'Looks like your TtRenderer is working!');
}
1;
These are also included with the `Mojolicious::Plugin::TtRenderer`
distribution, including the support files required for the full
[Mojolicious](https://metacpan.org/pod/Mojolicious) app example.
# SEE ALSO
[Mojolicious::Plugin::TtRenderer::Engine](https://metacpan.org/pod/Mojolicious::Plugin::TtRenderer::Engine),
[Mojolicious](https://metacpan.org/pod/Mojolicious),
[Mojolicious::Guides](https://metacpan.org/pod/Mojolicious::Guides),
[http://mojolicious.org](http://mojolicious.org).
# AUTHOR
Original author: Ask Bjørn Hansen
Current maintainer: Graham Ollis <plicease@cpan.org>
Contributors:
vti
Marcus Ramberg
Matthias Bethke
Htbaa
Magnus Holm
Maxim Vuets
Rafael Kitover
giftnuss
Cosimo Streppone
Fayland Lam
Jason Crowther
spleenjack
Árpád Szász
Сергей Романов
uwisser
# COPYRIGHT AND LICENSE
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

@@ -1,246 +0,0 @@
=pod
=head1 NAME
Mojolicious::Plugin::TtRenderer - Template Renderer Plugin for Mojolicious
=head1 VERSION
version 1.50
=head1 SYNOPSIS
L<Mojolicious::Lite>:
plugin 'tt_renderer';
L<Mojolicious>
$self->plugin('tt_renderer');
=head1 DESCRIPTION
This plugin is a simple Template Toolkit renderer for L<Mojolicious>.
Its defaults are usually reasonable, although for finer grain detail in
configuration you may want to use
L<Mojolicious::Plugin::TtRenderer::Engine> directly.
=encoding utf-8
=for stopwords Bjørn
Szász
Árpád
=head1 OPTIONS
These are the options that can be passed in as arguments to this plugin.
=head2 template_options
Configuration hash passed into L<Template>'s constructor, see
L<Template Toolkit's configuration summary|Template#CONFIGURATION-SUMMARY>
for details. Here is an example using the L<Mojolicious::Lite> form:
plugin 'tt_renderer' => {
template_options => {
PRE_CHOMP => 1,
POST_CHOMP => 1,
TRIM => 1,
},
};
Here is the same example using the full L<Mojolicious> app form:
package MyApp;
use Mojo::Base qw( Mojolicious );
sub startup {
my($self) = @_;
$self->plugin('tt_renderer' => {
template_options => {
PRE_CHOMP => 1,
POST_CHOMP => 1,
TRIM => 1,
},
}
...
}
These options will be used if you do not override them:
=over 4
=item INCLUDE_PATH
Generated based on your application's renderer's configuration. It
will include all renderer paths, in addition to search files located
in the C<__DATA__> section by the usual logic used by L<Mojolicious>.
=item COMPILE_EXT
C<.ttc>
=item UNICODE
C<1> (true)
=item ENCODING
C<utf-87>
=item CACHE_SIZE
C<128>
=item RELATIVE
C<1> (true)
=back
=head2 cache_dir
Specifies the directory in which compiled template files are
written. This:
plugin 'tt_renderer', { cache_dir => 'some/path' };
is equivalent to
plugin 'tt_renderer', { template_options { COMPILE_DIR => 'some/path' } };
except in the first example relative paths are relative to the L<Mojolicious>
app's home directory (C<$app-E<gt>home>).
=head1 STASH
=head2 h
Helpers are available via the C<h> entry in the stash.
<a href="[% h.url_for('index') %]">go back to index</a>
=head2 c
The current controller instance can be accessed as C<c>.
I see you are requesting a document from [% c.req.headers.host %].
=head1 EXAMPLES
L<Mojolicious::Lite> example:
use Mojolicious::Lite;
plugin 'tt_renderer';
get '/' => sub {
my $self = shift;
$self->render('index');
};
app->start;
__DATA__
@@ index.html.tt
[%
WRAPPER 'layouts/default.html.tt'
title = 'Welcome'
%]
<p>Welcome to the Mojolicious real-time web framework!</p>
<p>Welcome to the TtRenderer plugin!</p>
[% END %]
@@ layouts/default.html.tt
<!DOCTYPE html>
<html>
<head><title>[% title %]</title></head>
<body>[% content %]</body>
</html>
L<Mojolicious> example:
package MyApp;
use Mojo::Base 'Mojolicious';
sub startup {
my $self = shift;
$self->plugin('tt_renderer');
my $r = $self->routes;
$r->get('/')->to('example#welcome');
}
1;
package MyApp::Example;
use Mojo::Base 'Mojolicious::Controller';
# This action will render a template
sub welcome {
my $self = shift;
# Render template "example/welcome.html.tt" with message
$self->render(
message => 'Looks like your TtRenderer is working!');
}
1;
These are also included with the C<Mojolicious::Plugin::TtRenderer>
distribution, including the support files required for the full
L<Mojolicious> app example.
=head1 SEE ALSO
L<Mojolicious::Plugin::TtRenderer::Engine>,
L<Mojolicious>,
L<Mojolicious::Guides>,
L<http://mojolicious.org>.
=head1 AUTHOR
original author: Ask Bjørn Hansen
current maintainer: Graham Ollis <plicease@cpan.org>
contributors:
vti
Marcus Ramberg
Matthias Bethke
Htbaa
Magnus Holm
Maxim Vuets
Rafael Kitover
giftnuss
Cosimo Streppone
Fayland Lam
Jason Crowther
spleenjack
Árpád Szász
Сергей Романов
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2013 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,41 +5,17 @@ license = Perl_5
copyright_holder = Ask Bjørn Hansen
# copyright_year = 2009
version = 1.50
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]
[ReadmeAnyFromPod]
type = text
filename = README
location = build
[ReadmeAnyFromPod / ReadMePodInRoot]
type = pod
filename = README.pod
location = root
[MinimumPerl]
[Author::Plicease::Thanks]
current = Graham Ollis <plicease@cpan.org>
original = Ask Bjørn Hansen
@@ -57,6 +33,7 @@ contributor = Jason Crowther
contributor = spleenjack
contributor = Árpád Szász
contributor = Сергей Романов
contributor = uwisser
[Author::Plicease::Upload]
@@ -64,3 +41,28 @@ contributor = Сергей Романов
[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

@@ -1,21 +0,0 @@
[Thu Aug 8 09:00:16 2013] [info] Listening at "http://*:3000".
[Thu Aug 8 09:00:20 2013] [debug] Your secret passphrase needs to be changed!!!
[Thu Aug 8 09:00:20 2013] [debug] GET "/".
[Thu Aug 8 09:00:20 2013] [debug] Routing to controller "MyApp::Example" and action "welcome".
[Thu Aug 8 09:00:20 2013] [error] parse error - example/welcome.html.tt line 8: unexpected end of input
[Thu Aug 8 09:00:20 2013] [debug] Template "exception.development.html.ep" not found.
[Thu Aug 8 09:00:20 2013] [debug] Template "exception.html.ep" not found.
[Thu Aug 8 09:00:20 2013] [debug] Rendering inline template.
[Thu Aug 8 09:00:20 2013] [debug] Rendering inline template.
[Thu Aug 8 09:00:20 2013] [debug] 500 Internal Server Error (0.061556s, 16.245/s).
[Thu Aug 8 09:00:41 2013] [info] Listening at "http://*:3000".
[Thu Aug 8 09:00:44 2013] [debug] Your secret passphrase needs to be changed!!!
[Thu Aug 8 09:00:44 2013] [debug] GET "/".
[Thu Aug 8 09:00:44 2013] [debug] Routing to controller "MyApp::Example" and action "welcome".
[Thu Aug 8 09:00:44 2013] [debug] 200 OK (0.032461s, 30.806/s).
[Thu Aug 8 09:00:47 2013] [debug] GET "/".
[Thu Aug 8 09:00:47 2013] [debug] Routing to controller "MyApp::Example" and action "welcome".
[Thu Aug 8 09:00:47 2013] [debug] 200 OK (0.001260s, 793.651/s).
[Thu Aug 8 09:00:52 2013] [debug] GET "/".
[Thu Aug 8 09:00:52 2013] [debug] Routing to controller "MyApp::Example" and action "welcome".
[Thu Aug 8 09:00:52 2013] [debug] 200 OK (0.001683s, 594.177/s).

View File

@@ -2,9 +2,9 @@
WRAPPER 'layouts/default.html.tt'
title = 'Welcome'
%]
<h2>[% $message %]</h2>
This page was generated from the template "templates/example/welcome.html.ep"
and the layout "templates/layouts/default.html.ep",
<h2>[% message %]</h2>
This page was generated from the template "templates/example/welcome.html.tt"
and the layout "templates/layouts/default.html.tt",
<a href="[% url_for %]">click here</a> to reload the page or
<a href="/index.html">here</a> to move forward to a static page.
[% END %]

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;
@@ -226,6 +225,14 @@ __END__
=encoding utf-8
=begin stopwords
Bjørn
Szász
Árpád
=end stopwords
=head1 SYNOPSIS
Add the handler:
@@ -254,6 +261,16 @@ Add the handler:
Template parameter are taken from C<$c-E<gt>stash>.
=head1 DESCRIPTION
See L<Mojolicious::Plugin::TtRenderer> for details on the plugin interface to this module.
This module provides an engine for the rendering of L<Template Toolkit|Template> templates
within a Mojolicious context. Templates may be, stored on the local file system, provided
inline by the controller or included in the C<__DATA__> section. Where possible this modules
attempts to provide a TT analogue interface to the L<Perlish templates|Mojo::Template> which
come with Mojolicious.
=head1 RENDERING
The template file for C<"example/welcome"> would be C<"templates/welcome.html.tt">.
@@ -306,7 +323,7 @@ templates. Will default to a temp-dir if not set.
=head1 SEE ALSO
L<Mojolicious::Plugin::TtRenderer::Engine>,
L<Mojolicious::Plugin::TtRenderer>,
L<Mojolicious>,
L<Mojolicious::Guides>,
L<http://mojolicious.org>.

View File

@@ -1,11 +1,13 @@
use strict;
use warnings;
use Test::More tests => 1;
use Test::More;
use Mojo::IOLoop;
our $format;
my $loop = eval { Mojo::IOLoop->singleton };
diag $@ if $@;
ok $loop;
diag ref eval { $loop->reactor };
diag sprintf $format, 'mojo io loop', ref eval { $loop->reactor };
diag $@ if $@;
1;

1
t/00_diag.pre.txt Normal file
View File

@@ -0,0 +1 @@
EV

91
t/00_diag.t Normal file
View File

@@ -0,0 +1,91 @@
use strict;
use warnings;
use Config;
use Test::More tests => 1;
BEGIN {
my @modules;
eval q{
require FindBin;
require File::Spec;
1;
} || die $@;
do {
my $fh;
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;
do {
my $fh;
open($fh, '<', File::Spec->catfile($FindBin::Bin, '00_diag.txt'));
@modules = <$fh>;
close $fh;
chomp @modules;
};
my $max = 1;
$max = $_ > $max ? $_ : $max for map { length $_ } @modules;
our $format = "%-${max}s %s";
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;
require(File::Spec->catfile($FindBin::Bin, '00_diag.pl'))
if -e File::Spec->catfile($FindBin::Bin, '00_diag.pl');
foreach my $module (@modules)
{
if(eval qq{ require $module; 1 })
{
my $ver = eval qq{ \$$module\::VERSION };
$ver = 'undef' unless defined $ver;
diag sprintf $format, $module, $ver;
}
else
{
diag sprintf $format, $module, '-';
}
}
spacer;

7
t/00_diag.txt Normal file
View File

@@ -0,0 +1,7 @@
EV
Module::Build
Mojolicious
POSIX
Template
Template::Provider
Test::More

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

View File

@@ -25,6 +25,8 @@ pod_spelling_system:
- renderer's
- Toolkit's
- Fayland
- TT
- uwisser
pod_coverage:
# format is "Class#method" or "Class", regex allowed

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);
}

36
xt/release/version.t Normal file
View File

@@ -0,0 +1,36 @@
use strict;
use warnings;
use Test::More;
use FindBin ();
BEGIN {
plan skip_all => "test requires Test::Version 1.001001"
unless eval q{ use Test::Version 1.001001 qw( version_all_ok ), { has_version => 1 }; 1 };
plan skip_all => "test requires Path::Class"
unless eval q{ use Path::Class qw( file dir ); 1 };
plan skip_all => 'test requires YAML'
unless eval q{ use YAML; 1; };
}
use YAML qw( LoadFile );
use FindBin;
use File::Spec;
plan skip_all => "test not built yet (run dzil test)"
unless -e dir( $FindBin::Bin)->parent->parent->file('Makefile.PL')
|| -e dir( $FindBin::Bin)->parent->parent->file('Build.PL');
my $config_filename = File::Spec->catfile(
$FindBin::Bin, 'release.yml'
);
my $config;
$config = LoadFile($config_filename)
if -r $config_filename;
if($config->{version}->{dir})
{
note "using dir " . $config->{version}->{dir}
}
version_all_ok($config->{version}->{dir} ? ($config->{version}->{dir}) : ());
done_testing;