Chris Williams > POE-Component-WWW-Shorten-1.20 > POE::Component::WWW::Shorten

Download:
POE-Component-WWW-Shorten-1.20.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 1.20   Source  

NAME ^

POE::Component::WWW::Shorten - A non-blocking POE 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';
  'params', the parameter for the makeshortenlink call to WWW::Shorten;

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 © 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.

SEE ALSO ^

POE

WWW::Shorten

syntax highlighting: