/usr/local/CPAN/Class-Component/Class/Component/Component/Plaggerize/PluginLoader.pm
package Class::Component::Component::Plaggerize::PluginLoader;
use strict;
use warnings;
sub setup_config {
my $class = shift;
my $config = $class->NEXT( setup_config => @_ );
$config->{global} = {} unless $config->{global};
$config->{global}->{pluginloader} = {} unless $config->{global}->{pluginloader};
my $conf = $config->{global}->{pluginloader};
$conf->{plugin_list} ||= 'plugins';
$config;
}
sub setup_plugins {
my $self = shift;
my @plugins;
my $plugin_list = $self->conf->{global}->{pluginloader}->{plugin_list};
for my $plugin (@{ $self->conf->{$plugin_list} }) {
push @plugins, { module => $plugin->{module}, config => $plugin };
}
$self->load_plugins(@plugins);
$self->NEXT( setup_plugins => @_ );
}
1;