Compare commits

...

13 Commits

Author SHA1 Message Date
Graham Ollis
01e6647cbf v1.42_01
- set COMPILE_DIR based on UID so that multiple users can use TtRenderer with default config
2013-02-24 23:13:00 -05:00
Graham Ollis
22eba8d3c5 include UID in default COMPILE_DIR 2013-02-24 23:12:05 -05:00
Graham Ollis
f68a82f774 v1.42
- fix for test on solaris
2013-02-24 22:59:45 -05:00
Graham Ollis
cb908430e5 fix it again. 2013-02-24 22:59:10 -05:00
Graham Ollis
7cd976ea79 v1.41
- Additional testing diagnostics
2013-02-23 03:06:21 -05:00
Graham Ollis
1708622c49 testing diagnostics 2013-02-23 03:05:25 -05:00
Graham Ollis
380cea8aa2 v1.40
- Added diagnostic for IO loop implementation in testing
2013-02-20 13:42:06 -05:00
Graham Ollis
9217818ad2 diagnostic for IO loop used during testing. 2013-02-20 13:41:16 -05:00
Graham Ollis
02fce2bfdd simplify 2013-01-28 11:51:38 -05:00
Graham Ollis
a7da6f3292 v1.39
- Documentation updates.
2013-01-28 09:28:26 -05:00
Graham Ollis
c736f2ed2d doco 2013-01-28 09:28:07 -05:00
Graham Ollis
7bccefd01b more descriptive test names 2013-01-28 09:20:17 -05:00
Graham Ollis
cccf6078c1 update changes 2013-01-28 09:15:13 -05:00
9 changed files with 119 additions and 72 deletions

17
Changes
View File

@@ -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

View File

@@ -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:

View File

@@ -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]

View File

@@ -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:

View File

@@ -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
View 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 $@;

View File

@@ -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__