The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 1.000000 - 2014-02-25

  • Moose has been replaced with Moo. As Moo is Moose compatible, Leyland apps can still continue using Moose if they so wish.
  • Calling forward() with no method now only forwards to GET routes, not to the first route matched.
  • The json attribute in Leyland::Context now holds a JSON object, not a JSON::Any object.
  • Leyland.pm now properly inherits Plack::Component, and has a to_app() method. The handle() method has been renamed to call() appropriately.
  • Changed the way setup() and config works. The setup() method is now used to set Leyland configuration options. It is expected to return a hash-ref with the configuration options. Application-specific configurations are still to be provided to the application class in the config attribute. This attribute is not used by Leyland at all, but available for the application as needed. With the setup() method now used for configuration purposes, any application initializations to perform should be moved to Moo(se)'s BUILD method.
  • Added the ability to set the default return MIME for routes instead of text/html.
  • Using Devel::Declare::Magic directly as per the deprecation from Devel::Declare.
  • The leyland command line utility has been removed, you should now scaffold manually.
  • Logging now comes from Plack middlewares. Leyland::Logger is now a simple wrapper around the middleware used (providing the same syntax as previous versions). A default logger that prints to standard output/error is provided.
  • The location of the views directory can now be changed by providing the "view_dir" configuration option.
  • Simple tests have been created.
  • Plain text exceptions are no longer returned with Dumper.
  • No more Wikipedia descriptions for HTTP status codes in exceptions.

Documentation

Manual for the Leyland web application framework
Leyland application structure and creation
Creating Leyland controllers
How to deploy Leyland applications
How to throw HTTP exceptions with Leyland
How to extend Leyland
Frequently asked questions about Leyland
Localizing Leyland applications
How to use a log in Leyland applications
How to use models in Leyland applications
How to serve static files from your application
Guide for upgrading Leyland for existing applications
Using Leyland view classes

Modules

RESTful web application framework based on Plack
The working environment of an HTTP request and Leyland response
Leyland controller base class
Throwable class for Leyland application exceptions
Wrapper for the Locale::Wolowitz localization system for Leyland apps
Wrapper around Plack's logging middlewares
Performs HTTP negotiations for Leyland requests
Provides the sweet REST syntax for Leyland controller routes
Parses route definitions in Leyland controllers
Leyland view base class
Tenjin view class for Leyland