The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Yeb - A simple structure for Web::Simple applications

VERSION

version 0.011

SYNOPSIS

  package MyApp::Web;
  use Yeb;

  BEGIN {
    plugin 'Session';
    plugin 'JSON';
  }

  r "/" => sub {
    session test => pa('test');
    text "root";
  };

  r "/blub" => sub {
    text "blub";
  };

  r "/test/..." => sub {
    st stash_var => 1;
    chain 'Test';
  };

  r "/blog/..." => sub {
    chain '+SomeOther::YebApp';
  };

  1;

  package MyApp::Web::Test;
  use MyApp::Web;

  r "/json" => sub {
    json {
      test => session('test'),
      stash_var => st('stash_var'),
    }
  };

  r "/" => sub {
    text " test = ".session('test')." and blub is ".st('stash_var');
  };

  1;

Can then be started like (see Web::Simple):

  plackup -Ilib -MMyApp::Web -e'MyApp::Web->run_if_script'

or use the yeb CLI tool which automatically also loads up ./lib as path for easy handling:

  yeb MyApp::Web

Additional parameters get dispatched towards plackup

Bigger Text::Xslate example:

  package MyApp::WebXslate;

  use Yeb;

  BEGIN {
    plugin 'Session';
    plugin 'JSON';
    plugin 'Xslate';
    plugin 'Static', default_root => root('htdocs');
  }

  xslate_path root('templates');

  static qr{^/};
  static_404 qr{^/images/}, root('htdocs_images');

  r "/" => sub {
    st page => 'root';
    xslate 'index';
  };

  r "/test" => sub {
    st page => 'test';
    xslate 'index/test', { extra_var => 'extra' };
  };

  1;

DESCRIPTION

WARNING

ALPHA This web framework is made to be used for YACT, a new version of the Act conference system. With the release of YACT the API will be stabilized. ALPHA

PLUGINS

For an example on how to make a simple plugin, which adds a new function and uses a Plack::Middleware, please see the source of Yeb::Plugin::Session.

FRAMEWORK FUNCTIONS

yeb

Gives back the Yeb::Application of the web application

chain

Return another class dispatcher chain, will be prepend with your main class name, this can be deactivated by using a + in front of the class name.

cfg

Access to the configuration hash

cc

Getting the current Yeb::Context of the request

env

Getting the Plack environment

req

Getting the current Plack::Request

root

Current directory or YEB_ROOT environment variable

cur

Current directory in the moment of start

plugin $yeb_plugin_name, { key => $value };

st

Access to the stash hash

pa

Access to the request parameters, gives back "" if is not set

pa_has

Check if some parameter is at all set

r

Adding a new dispatcher for this class (see Web::Simple)

middleware

Adding a Plack::Middleware to the flow

text

Make a simple text/plain response with the text given as parameter

SEE ALSO

Yeb::Plugin::Session

Session management via Plack::Middleware::Session

Yeb::Plugin::Static

Static files via Plack::Middleware::Static

Yeb::Plugin::Xslate

Template output via Text::Xslate

Yeb::Plugin::JSON

JSON output via JSON

SUPPORT

IRC

  Join #web-simple on irc.perl.org. Highlight Getty for fast reaction :).

Repository

  http://github.com/Getty/p5-yeb
  Pull request and additional contributors are welcome

Issue Tracker

  http://github.com/Getty/p5-yeb/issues

AUTHOR

Torsten Raudssus <torsten@raudss.us>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Torsten Raudssus.

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