package Nagios::Plugin::OverHTTP::Middleware;

use 5.008001;
use strict;
use warnings 'all';

###########################################################################
# METADATA
our $AUTHORITY = 'cpan:DOUGDUDE';
our $VERSION   = '0.15';

###########################################################################
# MOOSE ROLE
use Moose::Role 0.74;

###########################################################################
# ALL IMPORTS BEFORE THIS WILL BE ERASED
use namespace::clean 0.04 -except => [qw(meta)];

###########################################################################
# REQUIRED METHODS
requires qw(
	rewrite
);

1;

__END__

=head1 NAME

Nagios::Plugin::OverHTTP::Middleware - Moose role for response middleware

=head1 VERSION

This documentation refers to L<Nagios::Plugin::OverHTTP::Middleware> version
0.14

=head1 SYNOPSIS

  package My::Custom::Middleware;

  use Moose;

  with 'Nagios::Plugin::OverHTTP::Middleware'; # use the role (required)

  sub rewrite {
      my ($self, $response) = @_;

      # Do something with $response
      my $new_response = $response->clone( ... );

      return $new_response;
  };

  no Moose; # unimport Moose

  1;

=head1 DESCRIPTION

This module is a Moose role that defines the required API for middleware.

=head1 REQUIRED METHODS

=head2 rewrite

This must return a new instance of L<Nagios::Plugin::OverHTTP::Response>.
This will be called as a method with a single argument being a
L<Nagios::Plugin::OverHTTP::Response> object. For the most part this object has
read only attributes, and thus a new object needs to be returned.

  $response = $middleware->rewrite($response);

=head1 METHODS

This module has no methods.

=head1 DEPENDENCIES

This module is dependent on the following modules:

=over 4

=item * L<Moose::Role> 0.74

=item * L<namespace::clean> 0.04

=back

=head1 AUTHOR

Douglas Christopher Wilson, C<< <doug at somethingdoug.com> >>

=head1 BUGS AND LIMITATIONS

Please report any bugs or feature requests to
C<bug-nagios-plugin-overhttp at rt.cpan.org>, or through the web interface at
L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Nagios-Plugin-OverHTTP>. I
will be notified, and then you'll automatically be notified of progress on your
bug as I make changes.

=head1 LICENSE AND COPYRIGHT

Copyright 2010 Douglas Christopher Wilson, all rights reserved.

This program is free software; you can redistribute it and/or
modify it under the terms of either:

=over

=item * the GNU General Public License as published by the Free
Software Foundation; either version 1, or (at your option) any
later version, or

=item * the Artistic License version 2.0.

=back
