Author image Daniel Friesel
and 1 contributors

NAME

App::Slackeria::PluginLoader - Plugin wrapper for App::Slackeria

SYNOPSIS

    use App::Slackeria::PluginLoader;

    my $plugin = App::Slackeria::PluginLoader->new();
    my $result;

    $plugin->load('CPAN', %cpan_default_conf);

    $result->{slackeria}->{CPAN} = $plugin->run('CPAN', {
            name => 'App-Slackeria',
            # further slackeria-specific configuration (if needed)
    });

    # $result->{slackeria}->{CPAN} is like:
    # {
    #     ok => 1,
    #     data => 'v0.1',
    #     href => 'http://search.cpan.org/dist/App-Slackeria/'
    # }

VERSION

version 0.12

DESCRIPTION

App::Slackeria::PluginLoader loads and executes a number of slackeria plugins. It also makes sure that any errors in plugins are catched and do not affect the code using App::Slackeria::PluginLoader.

METHODS

$plugin = App::Slackeria::PluginLoader->new()

Returns a new App::Slackeria::PluginLoader object. Does not take any arguments.

$plugin->load(plugin, %conf)

Create an internal App::Slackeria::Plugin::plugin object by using it and calling App::Slackeria::Plugin::plugin->new(%conf). If plugin does not exist or fails during setup, load prints an error message to STDERR.

$plugin->list()

Returns an array containing the names of all loaded plugins.

$plugin->run(plugin, $conf_ref)

Calls the run method of plugin: $plugin_object->run($conf_ref).

If plugin exists and is loaded, it returns the output of the run method, otherwise undef.

DEPENDENCIES

None.

SEE ALSO

slackeria(1), App::Slackeria::Plugin(3pm).

AUTHOR

Copyright (C) 2011 by Daniel Friesel <derf@finalrewind.org>

LICENSE

  0. You just DO WHAT THE FUCK YOU WANT TO.