Jesse Luehrs > MooseX-Mangle-0.02 > MooseX::Mangle

Download:
MooseX-Mangle-0.02.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.02   Source  

NAME ^

MooseX::Mangle - mangle the argument list or return values of your methods

VERSION ^

version 0.02

SYNOPSIS ^

  package Foo;
  use Moose;

  sub foo { "FOO" }
  sub bar { shift; join '-', @_ }

  package Foo::Sub;
  use Moose;
  use MooseX::Mangle;
  extends 'Foo';

  mangle_return foo => sub {
      my $self = shift;
      my ($foo) = @_;
      return lc($foo) . 'BAR';
  };

  mangle_args bar => sub {
      my $self = shift;
      my ($a, $b, $c) = @_;
      return ($b, $c, $a);
  };

  my $foo = Foo::Sub->new->foo            # 'fooBAR'
  my $bar = Foo::Sub->new->bar(qw(a b c)) # 'b-c-a'

DESCRIPTION ^

MooseX::Mangle provides some simple sugar for common usages of around. Oftentimes all that is needed is to adjust the argument list or returned values of a method, but using around directly for this can be tedious. This module exports a few subroutines which make this a bit easier.

EXPORTS ^

mangle_args METHOD_NAME CODE

Applies an around method modifier to METHOD_NAME, using CODE to mangle the argument list. CODE is called as a method, and additionally receives the arguments passed to the method; it should return the list of arguments to actually pass to the method.

mangle_return METHOD_NAME CODE

Applies an around method modifier to METHOD_NAME, using CODE to mangle the returned values. CODE is called as a method, and additionally receives the values returned by the method; it should return the list of values to actually return.

guard METHOD_NAME CODE

Provides a requirement that must be satisfied in order for METHOD_NAME to be called. CODE is called as a method, receiving the arguments passed to the method. If CODE returns true, the method is called as normal, otherwise undef is returned without the original method being called at all.

BUGS ^

No known bugs.

Suggestions for more modifiers are always welcome, though.

Please report any bugs through RT: email bug-moosex-mangle at rt.cpan.org, or browse to http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-Mangle.

SEE ALSO ^

Moose

SUPPORT ^

You can find this documentation for this module with the perldoc command.

    perldoc MooseX::Mangle

You can also look for information at:

AUTHOR ^

  Jesse Luehrs <doy at tozt dot net>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2009 by Jesse Luehrs.

This is free software; you can redistribute it and/or modify it under the same terms as perl itself.

syntax highlighting: