NAME

Gungho::Inline - Inline Your Providers And Handlers

SYNOPSIS

use Gungho::Inline;
use IO::Select;

Gungho::Inline->run(
   $config,
   {
      provider => sub {
         my ($provider, $c) = @_;
         while (IO::Select->new(STDIN)->can_read(0)) {
            return if STDIN->eof;
            my $url = STDIN->getline;
            chomp $url;
            $provider->add_request($c->prepare_request(Gungho::Request->new(GET => $url)));
          }
      },
      handler => sub {
         my ($handler, $c, $req, $res) = @_;
         print $res->code, ' ', $req->uri, "\n";
      }
  }
);

DESCRIPTION

Sometimes you don't need the full power of an independent Gungho Provider and or Handler. In those cases, Gungho::Inline saves you from creating separate packages

This module is still experimental. Feedback welcome

BACKWARDS COMPATIBILITY WITH VERSIONS < 0.08

From version 0.08 of Gungho::Inline, the parameter list passed to the handler and providers, as well as the run method has been changed. You can enable the old behavior if you do

env GUNGHO_INLINE_OLD_PARAMETER_LIST=1 gungho 

or, somewhere in your code, create a subroutine constant:

BEGIN
{
    sub Gungho::Inline::OLD_PARAMETER_LIST { 1 };
}
use Gungho::Inline;

CONSTANTS

OLD_PARAMETER_LIST

If true, uses the old-style parameter list

METHODS

setup({ provider => $callback, handler => $callback, %args })

Sets up Gungho::Inline with this set of providers

AUTHOR

Original code by Kazuho Oku.