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

NAME

Squatting::On::Catalyst - embed a Squatting app into a Catalyst app

SYNOPSIS

Add these 4 lines to your Catalyst app's Root Controller to embed a Squatting App.

  use App 'On::Catalyst'
  App->init;
  App->relocate('/somewhere')
  sub somewhere : Local { App->catalyze($_[1]) }

DESCRIPTION

The purpose of this module is to allow Squatting apps to be embedded inside Catalyst apps. This is done by adding a catalyze method to the Squatting app that knows how to "translate" between Catalyst and Squatting. To use this module, pass the string 'On::Catalyst' to the use statement that loads your Squatting app.

API

All Your Framework Are Belong To Us

App->catalyze($c)

This method takes a Catalyst object, and uses the information it contains to let the Squatting app handle one HTTP request. First, it translates the Catalyst::Request object into terms Squatting can understand. Then it lets the Squatting app handle the request. Finally, it takes the Squatting app's output and populates the Catalyst::Response object. When this method is done, the Catalyst object should have everything it needs to send back a complete HTTP response.

NOTE: If you want to communicate something from the Catalyst app to the Squatting app, you can put data in $c->stash or $c->session before calling catalyze(). From inside a Squatting controller, these can be accessed via $self->v and $self->state. Squatting controllers also get access to Catalyst's logging object via $self->log.

In summary:

  Catalyst                              Squatting
  --------                              ---------
  $c->stash                             $self->v
  $c->session                           $self->state
  $c->log                               $self->log

SEE ALSO

Catalyst, Catalyst::Request, Catalyst::Response