Compare commits
13 Commits
release/1.
...
release/1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
01e6647cbf | ||
|
|
22eba8d3c5 | ||
|
|
f68a82f774 | ||
|
|
cb908430e5 | ||
|
|
7cd976ea79 | ||
|
|
1708622c49 | ||
|
|
380cea8aa2 | ||
|
|
9217818ad2 | ||
|
|
02fce2bfdd | ||
|
|
a7da6f3292 | ||
|
|
c736f2ed2d | ||
|
|
7bccefd01b | ||
|
|
cccf6078c1 |
17
Changes
17
Changes
@@ -1,6 +1,23 @@
|
||||
Revision history for Mojolicious::Plugin::TtRenderer
|
||||
|
||||
{{$NEXT}}
|
||||
|
||||
1.42_01 February 24, 2013
|
||||
- set COMPILE_DIR based on UID so that multiple users can use TtRenderer with default config
|
||||
|
||||
1.42 February 24, 2013
|
||||
- fix for test on solaris
|
||||
|
||||
1.41 February 23, 2013
|
||||
- Additional testing diagnostics
|
||||
|
||||
1.40 February 20, 2013
|
||||
- Added diagnostic for IO loop implementation in testing
|
||||
|
||||
1.39 January 28, 2013
|
||||
- Documentation updates.
|
||||
|
||||
1.38 January 27, 2013
|
||||
- fixed but where DATA templates were not being rendered with empty renderer path
|
||||
|
||||
1.37 January 12, 2013
|
||||
|
||||
23
README.pod
23
README.pod
@@ -6,13 +6,13 @@ Mojolicious::Plugin::TtRenderer - Template Renderer Plugin
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Mojolicious
|
||||
$self->plugin('tt_renderer');
|
||||
$self->plugin(tt_renderer => {template_options => {FILTERS => [ ... ]}});
|
||||
# Mojolicious
|
||||
$self->plugin('tt_renderer');
|
||||
$self->plugin(tt_renderer => {template_options => {FILTERS => [ ... ]}});
|
||||
|
||||
# Mojolicious::Lite
|
||||
plugin 'tt_renderer';
|
||||
plugin tt_renderer => {template_options => {FILTERS => [ ... ]}};
|
||||
# Mojolicious::Lite
|
||||
plugin 'tt_renderer';
|
||||
plugin tt_renderer => {template_options => {FILTERS => [ ... ]}};
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -26,7 +26,7 @@ L<Mojolicious::Plugin> and implements the following new ones.
|
||||
|
||||
=head2 C<register>
|
||||
|
||||
$plugin->register;
|
||||
$plugin->register;
|
||||
|
||||
Register renderer in L<Mojolicious> application.
|
||||
|
||||
@@ -34,11 +34,14 @@ Register renderer in L<Mojolicious> application.
|
||||
|
||||
The current controller instance can be accessed as C<c>.
|
||||
|
||||
[% c.req.headers.host %]
|
||||
[% c.req.headers.host %]
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<Mojolicious::Plugin::TtRenderer::Engine>, L<Mojolicious>, L<Mojolicious::Guides>, L<http://mojolicious.org>.
|
||||
L<Mojolicious::Plugin::TtRenderer::Engine>,
|
||||
L<Mojolicious>,
|
||||
L<Mojolicious::Guides>,
|
||||
L<http://mojolicious.org>.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
@@ -55,7 +58,7 @@ L<https://github.com/abh/mojox-renderer-tt/issues?state=open>.
|
||||
|
||||
You can find documentation for this module with the perldoc command.
|
||||
|
||||
perldoc Mojolicious::Plugin::TtRenderer
|
||||
perldoc Mojolicious::Plugin::TtRenderer
|
||||
|
||||
You can also look for information at:
|
||||
|
||||
|
||||
12
dist.ini
12
dist.ini
@@ -5,6 +5,8 @@ license = Perl_5
|
||||
copyright_holder = Ask Bjørn Hansen
|
||||
# copyright_year = 2009
|
||||
|
||||
version = 1.42_01
|
||||
|
||||
[Prereqs]
|
||||
Mojolicious = 3.33
|
||||
Template = 2.18
|
||||
@@ -12,6 +14,9 @@ Template = 2.18
|
||||
[Prereqs / TestRequires ]
|
||||
Test::More = 0
|
||||
|
||||
[NextRelease]
|
||||
format = %-7v %{MMMM d, yyyy}d
|
||||
|
||||
[@Git]
|
||||
tag_format = release/%v
|
||||
# push_to = all
|
||||
@@ -29,8 +34,8 @@ repository.type = git
|
||||
|
||||
[Homepage]
|
||||
|
||||
[BumpVersionFromGit]
|
||||
version_regexp = ^release/(.*)
|
||||
;[BumpVersionFromGit]
|
||||
;version_regexp = ^release/(.*)
|
||||
|
||||
[PkgVersion]
|
||||
|
||||
@@ -51,9 +56,6 @@ location = root
|
||||
|
||||
[Manifest]
|
||||
|
||||
[NextRelease]
|
||||
format = %-7v %{MMMM d, yyyy}d
|
||||
|
||||
[MinimumPerl]
|
||||
|
||||
[MetaJSON]
|
||||
|
||||
@@ -32,13 +32,13 @@ Mojolicious::Plugin::TtRenderer - Template Renderer Plugin
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Mojolicious
|
||||
$self->plugin('tt_renderer');
|
||||
$self->plugin(tt_renderer => {template_options => {FILTERS => [ ... ]}});
|
||||
# Mojolicious
|
||||
$self->plugin('tt_renderer');
|
||||
$self->plugin(tt_renderer => {template_options => {FILTERS => [ ... ]}});
|
||||
|
||||
# Mojolicious::Lite
|
||||
plugin 'tt_renderer';
|
||||
plugin tt_renderer => {template_options => {FILTERS => [ ... ]}};
|
||||
# Mojolicious::Lite
|
||||
plugin 'tt_renderer';
|
||||
plugin tt_renderer => {template_options => {FILTERS => [ ... ]}};
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -52,7 +52,7 @@ L<Mojolicious::Plugin> and implements the following new ones.
|
||||
|
||||
=head2 C<register>
|
||||
|
||||
$plugin->register;
|
||||
$plugin->register;
|
||||
|
||||
Register renderer in L<Mojolicious> application.
|
||||
|
||||
@@ -60,11 +60,14 @@ Register renderer in L<Mojolicious> application.
|
||||
|
||||
The current controller instance can be accessed as C<c>.
|
||||
|
||||
[% c.req.headers.host %]
|
||||
[% c.req.headers.host %]
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<Mojolicious::Plugin::TtRenderer::Engine>, L<Mojolicious>, L<Mojolicious::Guides>, L<http://mojolicious.org>.
|
||||
L<Mojolicious::Plugin::TtRenderer::Engine>,
|
||||
L<Mojolicious>,
|
||||
L<Mojolicious::Guides>,
|
||||
L<http://mojolicious.org>.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
@@ -81,7 +84,7 @@ L<https://github.com/abh/mojox-renderer-tt/issues?state=open>.
|
||||
|
||||
You can find documentation for this module with the perldoc command.
|
||||
|
||||
perldoc Mojolicious::Plugin::TtRenderer
|
||||
perldoc Mojolicious::Plugin::TtRenderer
|
||||
|
||||
You can also look for information at:
|
||||
|
||||
|
||||
@@ -42,18 +42,21 @@ sub _init {
|
||||
# take and process options :-)
|
||||
|
||||
my @renderer_paths = $app ? map { abs_path($_) } grep { -d $_ } @{ $app->renderer->paths } : ();
|
||||
push @renderer_paths, 'templates';
|
||||
|
||||
my %config = (
|
||||
( @renderer_paths > 0
|
||||
? (INCLUDE_PATH => [@renderer_paths, 'templates'])
|
||||
: (INCLUDE_PATH => ['templates'])
|
||||
),
|
||||
COMPILE_EXT => '.ttc',
|
||||
COMPILE_DIR => ($dir || abs_path(File::Spec->tmpdir)),
|
||||
UNICODE => 1,
|
||||
ENCODING => 'utf-8',
|
||||
CACHE_SIZE => 128,
|
||||
RELATIVE => 1,
|
||||
INCLUDE_PATH => \@renderer_paths,
|
||||
COMPILE_EXT => '.ttc',
|
||||
# TODO maybe this should be File::Spec->catdir(File::Spec->tmpdir, $<)
|
||||
COMPILE_DIR => ($dir || do {
|
||||
my $dir = File::Spec->catdir(File::Spec->tmpdir, "ttr$<");
|
||||
mkdir $dir;
|
||||
$dir;
|
||||
}),
|
||||
UNICODE => 1,
|
||||
ENCODING => 'utf-8',
|
||||
CACHE_SIZE => 128,
|
||||
RELATIVE => 1,
|
||||
%{$args{template_options} || {}},
|
||||
);
|
||||
|
||||
@@ -227,27 +230,27 @@ Mojolicious::Plugin::TtRenderer::Engine - Template Toolkit renderer for Mojo
|
||||
|
||||
Add the handler:
|
||||
|
||||
sub startup {
|
||||
...
|
||||
sub startup {
|
||||
...
|
||||
|
||||
# Via mojolicious plugin
|
||||
$self->plugin(tt_renderer => {template_options => {FILTERS => [ ... ]}});
|
||||
|
||||
# Or manually
|
||||
use Mojolicious::Plugin::TtRenderer::Engine;
|
||||
|
||||
my $tt = Mojolicious::Plugin::TtRenderer::Engine->build(
|
||||
mojo => $self,
|
||||
template_options => {
|
||||
PROCESS => 'tpl/wrapper',
|
||||
FILTERS => [ ... ],
|
||||
UNICODE => 1,
|
||||
ENCODING => 'UTF-8',
|
||||
}
|
||||
);
|
||||
|
||||
# Via mojolicious plugin
|
||||
$self->plugin(tt_renderer => {template_options => {FILTERS => [ ... ]}});
|
||||
|
||||
# Or manually
|
||||
use Mojolicious::Plugin::TtRenderer::Engine;
|
||||
|
||||
my $tt = Mojolicious::Plugin::TtRenderer::Engine->build(
|
||||
mojo => $self,
|
||||
template_options => {
|
||||
PROCESS => 'tpl/wrapper',
|
||||
FILTERS => [ ... ],
|
||||
UNICODE => 1,
|
||||
ENCODING => 'UTF-8',
|
||||
}
|
||||
);
|
||||
|
||||
$self->renderer->add_handler( tt => $tt );
|
||||
}
|
||||
$self->renderer->add_handler( tt => $tt );
|
||||
}
|
||||
|
||||
Template parameter are taken from C< $c->stash >.
|
||||
|
||||
@@ -257,20 +260,20 @@ The template file for C<"example/welcome"> would be C<"templates/welcome.html.tt
|
||||
|
||||
When template file is not available rendering from C<__DATA__> is attempted.
|
||||
|
||||
__DATA__
|
||||
__DATA__
|
||||
|
||||
@@ welcome.html.tt
|
||||
Welcome, [% user.name %]!
|
||||
@@ welcome.html.tt
|
||||
Welcome, [% user.name %]!
|
||||
|
||||
Inline template is also supported:
|
||||
|
||||
$self->render(inline => '[% 1 + 1 %]', handler => 'tt');
|
||||
$self->render(inline => '[% 1 + 1 %]', handler => 'tt');
|
||||
|
||||
=head1 HELPERS
|
||||
|
||||
Helpers are exported automatically under C<h> namespace.
|
||||
|
||||
[% h.url_for('index') %]
|
||||
[% h.url_for('index') %]
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
@@ -288,7 +291,11 @@ object. When used the INCLUDE_PATH will be set to
|
||||
|
||||
=item template_options
|
||||
|
||||
A hash reference of options that are passed to Template->new().
|
||||
A hash reference of options that are passed to Template->new(). Note that if you
|
||||
specify an C<INCLUDE_PATH> through this option it will remove the DATA section
|
||||
templates from your path. A better way to specify an C<INCLUDE_PATH> if you also
|
||||
want to use DATA section templates it by manipulting the L<Mojolicious::Renderer>
|
||||
path.
|
||||
|
||||
=item cache_dir
|
||||
|
||||
@@ -297,18 +304,19 @@ templates. Will default to a temp-dir if not set.
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<Mojolicious::Plugin::TtRenderer::Engine>,
|
||||
L<Mojolicious>,
|
||||
L<Mojolicious::Guides>,
|
||||
L<http://mojolicious.org>.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Current maintainer: Graham Ollis C<< <plicease@cpan.org> >>
|
||||
|
||||
Original author: Ask Bjørn Hansen, C<< <ask at develooper.com> >>
|
||||
|
||||
=head1 TODO
|
||||
|
||||
* Better support non-Mojolicious frameworks
|
||||
* Better way to pass parameters to the templates? (stash)
|
||||
* More sophisticated default search path?
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to the project's github issue tracker
|
||||
@@ -318,7 +326,7 @@ L<https://github.com/abh/mojox-renderer-tt/issues?state=open>.
|
||||
|
||||
You can find documentation for this module with the perldoc command.
|
||||
|
||||
perldoc Mojolicious::Plugin::TtRenderer::Engine
|
||||
perldoc Mojolicious::Plugin::TtRenderer::Engine
|
||||
|
||||
You can also look for information at:
|
||||
|
||||
|
||||
11
t/01-ioloop.t
Normal file
11
t/01-ioloop.t
Normal file
@@ -0,0 +1,11 @@
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 1;
|
||||
use Mojo::IOLoop;
|
||||
|
||||
my $loop = eval { Mojo::IOLoop->singleton };
|
||||
diag $@ if $@;
|
||||
ok $loop;
|
||||
diag ref eval { $loop->reactor };
|
||||
diag $@ if $@;
|
||||
|
||||
@@ -6,7 +6,7 @@ use Test::More tests => 6;
|
||||
use Test::Mojo;
|
||||
|
||||
use Mojolicious::Lite;
|
||||
plugin 'tt_renderer';
|
||||
plugin 'tt_renderer' => { template_options => { COMPILE_DIR => tempdir( CLEANUP => 1 ) } };
|
||||
app->renderer->default_handler('tt');
|
||||
|
||||
get '/' => sub {
|
||||
@@ -21,11 +21,14 @@ $t->get_ok('/')
|
||||
->status_is(500)
|
||||
->content_like(qr{foo});
|
||||
|
||||
$t->app->log->on(message => sub {
|
||||
my($log, $level, @lines) = @_;
|
||||
diag @lines if $level eq 'error';
|
||||
});
|
||||
|
||||
$t->get_ok('/bar')
|
||||
->status_is(200)
|
||||
->content_like(qr{bar});
|
||||
|
||||
#note $t->tx->res->to_string;
|
||||
->content_like(qr{sometimes, the bar,});
|
||||
|
||||
__DATA__
|
||||
|
||||
Reference in New Issue
Block a user