Apache-SWIT

 view release on metacpan or  search on metacpan

lib/Apache/SWIT/Maker/GeneratorsQueue.pm  view on Meta::CPAN

use strict;
use warnings FATAL => 'all';

package Apache::SWIT::Maker::GeneratorsQueue;
use base 'Class::Accessor';
__PACKAGE__->mk_accessors(qw(generators));

sub new {
	my ($class, $args) = @_;
	my $tree = Apache::SWIT::Maker::Config->instance;
	my $gclasses = $args->{generator_classes} ? 
			$args->{generator_classes} : $tree->{generators};
	my @gens;
	for my $c (@$gclasses) {
		eval "use $c";
		die "Unable to use $c : $@" if $@;
		push @gens, $c->new;
	}
	$args = { generators => \@gens };
OUT:	
	return $class->SUPER::new($args);
}

sub run {
	my ($self, $func, @args) = @_;
	my $res;
	for my $g (@{ $self->generators }) {
		next unless $g->can($func);
		$res = $g->$func($res, @args);
	}
	return $res;
}

1;



( run in 0.733 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )