NAME
POE::Component::WWW::Shorten - A non-blocking wrapper around WWW::Shorten.
SYNOPSIS
use POE qw(Component::WWW::Shorten);
my $poco = POE::Component::WWW::Shorten->spawn( alias => 'shorten', type => 'Metamark' );
POE::Session->create(
package_states => [
'main' => [ qw(_start _shortened) ],
],
);
$poe_kernel->run();
exit 0;
sub _start {
my ($kernel,$heap) = @_[KERNEL,HEAP];
$kernel->post( 'shorten' => 'shorten' =>
{
url => 'http://reallyreallyreallyreally/long/url',
event => '_shortened',
_arbitary_value => 'whatever',
}
);
undef;
}
sub _shortened {
my ($kernel,$heap,$returned) = @_[KERNEL,HEAP,ARG0];
if ( $returned->{short} ) {
print STDOUT $returned->{short} . "\n";
}
print STDOUT $returned->{_arbitary_value} . "\n";
undef;
}
DESCRIPTION
POE::Component::WWW::Shorten is a POE component that provides a non-blocking wrapper around WWW::Shorten. It accepts 'shorten' events and will return a shortened url.
If the type of shortening to do is not specified it uses the WWW::Shorten default which is WWW::Shorten::Metamark.
CONSTRUCTOR
- spawn
-
Takes a number of arguments all are optional. Returns an object.
'alias', specify a POE Kernel alias for the component; 'options', a hashref of POE Session options to pass to the component's session; 'type', the WWW::Shorten sub module to use, default is 'Metamark';
METHODS
These are for the OO interface to the component.
- shorten
-
Requires a hashref as first argument. See 'shorten' event below for details.
- session_id
-
Takes no arguments. Returns the POE Session ID of the component.
- shutdown
-
Takes no arguments, terminates the component.
INPUT
What POE events our component will accept.
- shorten
-
Requires a hashref as first argument. The hashref should contain the following keyed values:
'url', the url that you want shortening. ( Mandatory ). 'event', the name of the event to send the reply to. ( Mandatory ). 'session', optional, an alternative session: alias, ref or ID that the response should be sent to, defaults to sending session;
You may also pass arbitary key/values in the hashref ( as demonstrated in the SYNOPSIS ). Arbitary keys should have an underscore prefix '_'.
- shutdown
-
Takes no arguments, terminates the component.
OUTPUT
Whether the OO or POE API is used the component passes responses back via a POE event. ARG0 will be a hashref with the following key/value pairs:
'url', the url that you wanted shortening.
'short', the shortened version. ( This will be undef if something went wrong ).
The hashref will also contain any arbitary key/values that were passed in the original query.
AUTHOR
Chris BinGOs
Williams <chris@bingosnet.co.uk>
LICENSE
Copyright (C) Chris Williams
This module may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details.