Jonathan Rockway > MooseX-MultiObject > MooseX::MultiObject::Meta::Method::MultiDelegation

Download:
MooseX-MultiObject-0.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.03   Source  

NAME ^

MooseX::MultiObject::Meta::Method::MultiDelegation - method that delegates to a set of objects

VERSION ^

version 0.03

SYNOPSIS ^

Given a class that has a set of objects:

    my $meta = Moose::Meta::Class->create( ... );
    $meta->add_attribute ( objects => (
        is => 'ro', isa => 'Set', handles => ['members'],
    );

Make a method foo to call foo on every element of the set:

    my $foo_metamethod = MooseX::MultiObject::Meta::Method::MultiDelegation->new(
        object_getter => 'members',
        delegate_to   => 'foo',
    );

    $meta->add_method( foo => $foo_metamethod );

Then you can write:

    my $class = $meta->name->new( objects => [ $a, $b ] );
    my @results = $class->foo;

Which is equivalent to:

    my $set = set($a, $b);
    my @results = map { $_->foo } $set->members;

DESCRIPTION ^

This is a Moose::Meta::Method and Class::MOP::Method::Generated that works like Moose::Meta::Method::Delegation, except it delegates to a collection of objects instead of just one.

INITARGS ^

curried_arguments

delegate_to

object_getter

AUTHOR ^

Jonathan Rockway <jrockway@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2011 by Jonathan Rockway.

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

syntax highlighting: