NAME

Mojolicious::Plugin::Sticker - Stick apps together

VERSION

0.0.2

SYNOPSIS

A simple Mojolicious plugin inspired by Mojolicious::Plugin::Mount to join several small mojo apps into a single one.

Differently from Mojolicious::Plugin::Mount you won't provide a prefix. The small apps an their routes are just glued together "as is".

It is like a cat for mojo apps.

    # app foo.pl
    
    use Mojolicious::Lite -signarues;
    
    get '/foo' => sub($c) { $c->render( json => { foo => 123 } ) };
    
    app->start;

    ##################################################

    # app bar.pl
    
    use Mojolicious::Lite -signatures;
    
    get '/bar' => sub($c) { $c->render( json => { bar => 456 } ) };
    
    post '/baz' => sub($c) {
        my $baz  = $c->req->json->{baz} || 0;
    
        $c->render( json => { baz => $baz + 42 } );
    };
    
    app->start;
    
    ##################################################

    # app main.pl
    
    use Mojolicious::Lite;
    
    plugin Sticker => { app => 't/lib/apps/foo' };
    plugin Sticker => { app => 't/lib/apps/bar' };
    
    app->start;

    # main.pl does all that both foo.pl and bar.pl does

DESCRIPTION

Sometimes we have some small apps that we may want to glue together into a bigger one. This is pretty straightforward with Mojolicious.

Mojolicious::Plugin::Mount is a very nice tool to add small apps under a prefix into another app.

This plugin goes down to a slightly different approach. We just glue the apps together keeping its original routes.

This is exclty what this plugin does:

    use Mojolicious::Lite -signtures;

    my $embed = Mojo::Server->new->load_app('my-app');
    app->routes->add_child( $embed->routes );

METHODS

Mojolicious::Plugin::Sticker inherits all methods from Mojolicious::Plugin and implements the following new ones.

register

Mount an aplication and attach its routes as children of main app routes.

SEE ALSO

Mojolicious, Mojolicious::Plugin::Mount, Mojolicious::Guides, https://mojolicious.org.

AUTHOR

Blabos de Blebe, <blabos at cpan.org>