The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.