NAME

App::Slackeria::Plugin - parent class for all slackeria plugins

SYNOPSIS

use parent 'App::Slackeria::Plugin';

sub check {
    my ($self) = @_;

    if (everything_ok()) {
        return {
            data => show_things(),
        };
    }
    else {
        die("not found\n");
    }
}

VERSION

version 0.12

DESCRIPTION

App::Slackeria::Plugin is not a plugin itself; it is meant to serve as a parent class for all other plugins.

METHODS

$plugin = App::Slackeria::Plugin::Something->new(%conf);

Returns a new object. A reference to %conf is stored in $self->{default}.

$plugin->run($conf)

Merges $self->{default} and $conf and saves the result in $self->{conf}. $conf takes precedence; $self->{default} and $conf are not touched in the process.

If $conf{enable} is set to 0, immediately returns { skip => 1 }.

It then calls the check function of App::Slackeria::Plugin::Something. If it fails (dies or returns undef), { ok => 0, data => $@} is returned.

The hashref returned by the check call is returned, with the additional key ok set to 1. Also, if $conf{href} is set, but check did not set a href key, href is set to $conf{href} with %s replaced by $conf{name}.

DEPENDENCIES

None.

SEE ALSO

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

AUTHOR

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

LICENSE

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