include a full app example
This commit is contained in:
+35
-2
@@ -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>.
|
||||
|
||||
@@ -59,3 +59,6 @@ contributor = Árpád Szász
|
||||
[Author::Plicease::Upload]
|
||||
|
||||
[InsertExample]
|
||||
|
||||
[MetaNoIndex]
|
||||
directory = example
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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).
|
||||
@@ -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>
|
||||
Executable
+11
@@ -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');
|
||||
@@ -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>
|
||||
@@ -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>.
|
||||
|
||||
Reference in New Issue
Block a user