NAME
   Dancer::Plugin::Cerberus - Include geo, time zone, user-agent and
   throttling from App::Cerberus

VERSION
   version 0.03

SYNOPSIS
       use Dancer::Plugin::Cerberus;

       get '/' => sub {
           my $time_zone = vars->{cerberus}{tz}{name};
       };

DESCRIPTION
   This plugin adds metadata from an App::Cerberus server to the vars
   before your route handlers are called.

   For instance:

   *   Geo-location

   *   Time zone

   *   User-agent info

   *   Are they a spider?

   *   Are they making too many requests? Should we throttle them?

   It can also be configured to throttle or ban IP address ranges with
   App::Cerberus::Plugin::Throttle.

CONFIG
   The basic configuration ("servers" and "timeout") are passed to "new()"
   in App::Cerberus::Client.

       plugins:
           Cerberus:
               servers:        http://localhost:5001/

   Or

       plugins:
           Cerberus:
               servers:
                -              http://host1:5001/
                -              http://host2:5001/
               timeout:        0.1

   If you are using the App::Cerberus::Plugin::Throttle plugin, then you
   can also configure:

       plugins:
           Cerberus:
               servers:        http://localhost:5001/
               throttle:
                   log_as:     info
                   enforce:    0 | 1

   If "log_as" is one of "core", "info", "warn", "debug" or "error", then
   Throttle messages will be logged at that level.

   If "enforce" is true, then banned IP addresses will receive a "403
   Forbidden" response and throttled users a "503 Service Unavailable"
   response, with a "Retry-After: $seconds" header.

ACCESSING CERBERUS INFO
   The "vars" available in any route handler will contain a key "cerberus"
   with any data that App::Cerberus has returned, for instance:

       get '/' => sub {
           my $geo_info   = vars->{cerberus}{geo};
           my $time_zone  = vars->{cerberus}{tz};
           my $user_agent = vars->{cerberus}{ua};
           my $throttle   = vars->{cerberus}{throttle};
       };

SEE ALSO
   *   App::Cerberus

   *   Plack::Middleware::Cerberus

SUPPORT
   You can find documentation for this module with the perldoc command.

       perldoc Dancer::Plugin::Cerberus

   You can also look for information at:

   *   GitHub

       <http://github.com/clintongormley/Dancer-Plugin-Cerberus>

   *   CPAN Ratings

       <http://cpanratings.perl.org/d/Dancer-Plugin-Cerberus>

   *   Search MetaCPAN

       <https://metacpan.org/module/Dancer::Plugin::Cerberus>

AUTHOR
   Clinton Gormley <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2012 by Clinton Gormley.

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