NAME

Jedi - Jedi Web Framework

VERSION

version 0.07

DESCRIPTION

Jedi is another Web Framework, build for easiness to maintain, easy to understand, and NO DSL !

A Jedi script will plug in roads, any Jedi::App you want.

Ex :

use Jedi;
my $jedi = Jedi->new

$jedi->road('/', 'MyApps');
$jedi->road('/admin', 'MyApps::Admin');

$jedi->start;

Then your Jedi Apps look likes :

package MyApps;
use Jedi::Apps;

sub jedi_apps {
	my ($jedi) = @_;

	$jedi->get('/', $jedi->can('index'));
	$jedi->get(qr{/env/.*}, $jedi->can('env'));
}

sub index {
	my ($jedi, $request, $response) = @_;
	$response->status(200);
	$response->body('Hello World !');
	return 1;
}

sub env {
	my ($jedi, $request, $response) = @_;
	my $env = substr($request->path, length("/env/"));
	$response->status(200);
	$response->body("The env : <$env>, has the value <". ($request->env->{$env} // "").">");
	return 1;
}

1;

You can also plug multiple time the same route or similar, the response will be fill by each routes.

A route can check the status to see if another route has already do something. Same think for the body.

You can for instance, create a role, with a before "jedi_apps", that init or add body content, and you route, add more stuff.

Or do an after, that add to the routes, additional content.

This is just a start, more will come.

METHODS

road

Add a based route to your Jedi Apps

$jedi->road('/', 'MyApps');
$jedi->road('/admin', 'MyApps::Admin');

response

Check the road available based on the current request and call the appropriate Jedi::App module

my $response = $jedi->response(\%ENV);

The response returned is a Jedi::Response, you can call the to_psgi method to get the status / headers / body

my ($status, $headers, $body) = $response->to_psgi

start

Start your jedi apps

At the end of your Jedi script, call the start method.

This feat the psgi format, and should be placed in your app.psgi script.

$jedi->start

SEE ALSO

Jedi::App

Jedi::Request

Jedi::Response

BUGS

Please report any bugs or feature requests on the bugtracker website https://tasks.celogeek.com/projects/perl-modules-jedi

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

celogeek <me@celogeek.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by celogeek <me@celogeek.com>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.