include a full app example

This commit is contained in:
Graham Ollis
2013-08-08 09:03:48 -04:00
parent 6386e0620e
commit e541ac92b7
13 changed files with 150 additions and 4 deletions
+35 -2
View File
@@ -14,7 +14,6 @@ L<Mojolicious::Lite> example:
use Mojolicious::Lite;
# Documentation browser under "/perldoc"
plugin 'tt_renderer';
get '/' => sub {
@@ -29,7 +28,7 @@ L<Mojolicious::Lite> example:
@@ index.html.tt
[%
WRAPPER 'layouts/default.html.tt'
title = 'default'
title = 'Welcome'
%]
<p>Welcome to the Mojolicious real-time web framework!</p>
<p>Welcome to the TtRenderer plugin!</p>
@@ -42,6 +41,40 @@ L<Mojolicious::Lite> example:
<body>[% content %]</body>
</html>
L<Mojolicious> example:
package MyApp;
use Mojo::Base 'Mojolicious';
# This method will run once at server start
sub startup {
my $self = shift;
$self->plugin('tt_renderer');
# Router
my $r = $self->routes;
# Normal route to controller
$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.ep" with message
$self->render(
message => 'Welcome to the Mojolicious real-time web framework!');
}
1;
=head1 DESCRIPTION
This plugin is a simple Template Toolkit renderer for L<Mojolicious>.
+3
View File
@@ -59,3 +59,6 @@ contributor = Árpád Szász
[Author::Plicease::Upload]
[InsertExample]
[MetaNoIndex]
directory = example
+8
View File
@@ -0,0 +1,8 @@
Included in this directory are two examples of how to use the Template Toolkit
Renderer.
myapp.pl - Mojolicious::Lite example
myapp/ - full Mojolicious application example
They were created as minor modifications of the applications generated
using the 'mojo generate' command.
+1 -2
View File
@@ -1,6 +1,5 @@
use Mojolicious::Lite;
# Documentation browser under "/perldoc"
plugin 'tt_renderer';
get '/' => sub {
@@ -15,7 +14,7 @@ __DATA__
@@ index.html.tt
[%
WRAPPER 'layouts/default.html.tt'
title = 'default'
title = 'Welcome'
%]
<p>Welcome to the Mojolicious real-time web framework!</p>
<p>Welcome to the TtRenderer plugin!</p>
+17
View File
@@ -0,0 +1,17 @@
package MyApp;
use Mojo::Base 'Mojolicious';
# This method will run once at server start
sub startup {
my $self = shift;
$self->plugin('tt_renderer');
# Router
my $r = $self->routes;
# Normal route to controller
$r->get('/')->to('example#welcome');
}
1;
+13
View File
@@ -0,0 +1,13 @@
package MyApp::Example;
use Mojo::Base 'Mojolicious::Controller';
# This action will render a template
sub welcome {
my $self = shift;
# Render template "example/welcome.html.ep" with message
$self->render(
message => 'Welcome to the Mojolicious real-time web framework!');
}
1;
+21
View File
@@ -0,0 +1,21 @@
[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).
+11
View File
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>Welcome to the Mojolicious real-time web framework!</title>
</head>
<body>
<h2>Welcome to the Mojolicious real-time web framework!</h2>
This is the static document "public/index.html",
<a href="/">click here</a> to get back to the start.
</body>
</html>
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env perl
use strict;
use warnings;
use FindBin;
BEGIN { unshift @INC, "$FindBin::Bin/../lib" }
# Start command line interface for application
require Mojolicious::Commands;
Mojolicious::Commands->start_app('MyApp');
+9
View File
@@ -0,0 +1,9 @@
use Mojo::Base -strict;
use Test::More;
use Test::Mojo;
my $t = Test::Mojo->new('MyApp');
$t->get_ok('/')->status_is(200)->content_like(qr/Mojolicious/i);
done_testing();
@@ -0,0 +1,10 @@
[%
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",
<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 %]
@@ -0,0 +1,5 @@
<!DOCTYPE html>
<html>
<head><title>[% title %]</title></head>
<body>[% content %]</body>
</html>
+6
View File
@@ -35,6 +35,12 @@ L<Mojolicious::Lite> example:
# EXAMPLE: example/myapp.pl
L<Mojolicious> example:
# EXAMPLE: example/myapp/lib/MyApp.pm
# EXAMPLE: example/myapp/lib/MyApp/Example.pm
=head1 DESCRIPTION
This plugin is a simple Template Toolkit renderer for L<Mojolicious>.