package WWW::Expand;
$WWW::Expand::VERSION = '0.1.5';
use strictures 1;
use Exporter qw/import/;
use LWP::UserAgent;
use HTTP::Request;
use Carp ();

# When version isn't specified, assume DEV.
our $VERSION ||= 'DEV';

our @EXPORT = our @EXPORT_OK = qw/expand/;

sub expand {
    my ($url, %options) = @_;

    # Get hash value and remove it
    my $agent = delete $options{agent};

    Carp::croak "Unknown options: ", join " ", keys %options if %options;

    unless (ref $agent && $agent->isa('LWP::UserAgent')) {
        my $text_agent = defined $agent ? $agent : $DEFAULT_USERAGENT;
        $agent = LWP::UserAgent->new(agent => $text_agent);
    $agent->request(HTTP::Request->new(HEAD => $url))->request->uri;

=head1 NAME

WWW::Expand - Expand any URL shortener link


    use 5.010;
    use strictures 1;
    use WWW::Expand;
    print expand '';


`expand()` is a function that expands any URL from URL shortener.

=head1 EXPORTS

All functions are exported using L<Exporter>. If you don't want this
(but why you would use this module then) try importing it using empty
list of functions.

    use WWW::Expand ();

=over 4

=item expand $url, %options

The only function in this module. It expands C<$url> from URL shortener.
It supports one option in C<%options>.

=over 4

=item agent

Can be either instance of L<LWP::UserAgent> or string containing user
agent name.



=head1 CAVEATS

This module tries to expand every URL, even if it isn't from URL
shortener. This could be what you want, but if not, try module such
as L<WWW::Lengthen>.

=head1 SEE ALSO

L<WWW::Lengthen>, L<WWW::Shorten>

=head1 AUTHOR
Konrad Borowski <>
This software is copyright (c) 2012 by Konrad Borowski.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.