AnyEvent::Subprocess::Role::WithDelegates::Manager - manage delegate shortcuts
version 1.102912
Creating an instance of a delegate to pass to AnyEvent::Subprocess's constructor is tedious. This module maps sugary names to builders of delegate objects, so that the user can say 'Foo' instead of AnyEvent::Subprocess::Job::Delegate::Foo->new.
AnyEvent::Subprocess
'Foo'
AnyEvent::Subprocess::Job::Delegate::Foo->new
If you are writing a delegate for AnyEvent::Subprocess, simply call register_delegate in your module. When the users uses your module, the sugary name will become available. And yeah, it's global, so be careful.
register_delegate
use
None by default, but you can request register_delegate and build_delegate.
build_delegate
Register $builder to build delegates named $name. $builder is a coderef that is eventually called with the key/value pairs supplied by the user. (The docs say this has to be a hashref, but it can actually be any scalar value. Checking is up to you.) The builder must return an instance of a class that does AnyEvent::Subprocess::Delegate, although this condition is not checked by this module. (You will get a type error when you are building the class that uses the delegate.)
$builder
$name
In the common case where the args should be passed directly to some class' constructor, you can just supply the class name as the $builder. new will be called with any args the user supplies.
new
You get a noisy warning if you reuse a $name. This is almost always an error, though; only the most recent name/builder pair is remembered.
Given a $spec, return an instance of the correct delegate. Dies if we don't know how to build a delegate according to $spec.
$spec
$spec can be a string naming the delegate to be built, or it can be a hashref or arrayref of name/args pair. Name is the same name passed to register_delegate, and the args should be a hashref.
AnyEvent::Subprocess::Delegate
AnyEvent::Subprocess::Role::WithDelegates
Jonathan Rockway <jrockway@cpan.org>
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.
To install AnyEvent::Subprocess, copy and paste the appropriate command in to your terminal.
cpanm
cpanm AnyEvent::Subprocess
CPAN shell
perl -MCPAN -e shell install AnyEvent::Subprocess
For more information on module installation, please visit the detailed CPAN module installation guide.