NAME
   HTTP::Response::Stringable - Makes HTTP::Response objects stringable

VERSION
   version 0.0001

SYNOPSIS
       my $res = LWP::UserAgent->new->get('http://example.com');
       Role::Tiny->apply_roles_to_object($res, 'HTTP::Response::Stringable');
       print "$res";

DESCRIPTION
   This module is a role that can be applied to HTTP::Response objects to
   make them stringable.

   After applying this role to the response object, you can use it in
   string context. The resulting string will be of the form:

       $res->status_line . "\n" . $res->content

   My motivation for creating this module was that I wanted to throw
   "HTTP::Response" objects as exceptions, and exception objects should
   have a string representation so that they can be properly logged. Here
   is an example use case:

       package WidgetFactory;
       use Moo;
       use LWP::UserAgent;

       sub create_widget {
           my $res = LWP::UserAgent->new->post('http://widget-factory/widgets');
           if (not $res->is_success) {
               require Role::Tiny;
               Role::Tiny->apply_roles_to_object($res, 'HTTP::Response::Stringable');
               die $res;
           }
       }

       # ...

       package main;
       use WidgetFactory;
       use TryCatch;

       my $wf = WidgetFactory->new;
       try {
           $wf->create_widget();
       } catch (HTTP::Response $res) {
           debug "Creating widget failed: $res";
       }

AUTHOR
   Naveed Massjouni <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2014 by Naveed Massjouni.

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