Skip to content

Instantly share code, notes, and snippets.

View kraih's full-sized avatar

Sebastian Riedel kraih

View GitHub Profile
#!/usr/bin/env perl
use Mojolicious::Lite;
get '/' => {text => 'Hello Mojo!'};
app->start;
$ mkdir hellomojo
$ cd hellomojo
$ touch myapp.pl
$ chmod +x myapp.pl
$ touch Makefile.PL
$ touch Perloku
$ chmod +x Perloku
$ heroku login
...
package Test;
use Mojo::Base -base;
sub foo : lvalue { shift->{foo} }
package main;
use Mojo::Base -strict;
my $test = Test->new;
$test->foo = 'works!';
use Mojolicious::Lite;
use EV;
use AnyEvent;
use AnyEvent::Util;
get '/' => sub {
my $self = shift;
# Run Perl oneliner in separate process and capture STDOUT
fork_call {
use Mojolicious::Lite;
use EV;
use IO::Async::Process;
use IO::Async::Loop::EV;
my $loop = IO::Async::Loop::EV->new;
get '/' => sub {
my $self = shift;
package MyApp::Controller::Bar;
use Mojolicious::Lite;
get '/test' => sub {
my $self = shift;
$self->render('test');
};
1;
__DATA__
package Mojolicious::Command::files;
use Mojo::Base 'Mojo::Command';
use Mojo::Home;
has description => "List templates and static files.\n";
has usage => "usage: $0 files\n";
sub run {
my $self = shift;
# StreamingPSGI - Everything is streaming, no special cases
my $env = {
SERVER_NAME => 'localhost',
SERVER_PORT => 80,
SCRIPT_NAME => '',
REQUEST_METHOD => 'GET',
HTTP_CONTENT_LENGTH => 12,
version => 3,
url_scheme => 'http',
read => sub {...},
#!/usr/bin/env perl
use Mojolicious::Lite;
use Coro;
use Mojo::IOLoop;
Mojo::IOLoop->recurring(0 => sub {cede});
hook around_dispatch => sub {
my $next = shift;
async { $next->() };