Zoidberg::Fish(3)     User Contributed Perl Documentation    Zoidberg::Fish(3)



NAME
       Zoidberg::Fish - Base class for loadable Zoidberg plugins

SYNOPSIS
         package My_Zoid_Plugin;
         use base 'Zoidberg::Fish';

         FIXME some example code

DESCRIPTION
       Once this base class is used your module smells like fish -- Zoidberg
       WILL eat it.  It supplies stub methods for hooks and has some routines
       to simplefy the interface to Zoidberg. One should realize that the
       bases of a plugin is not the module but the config file. Any module can
       be used as plugin as long as it's properly configged.  The developer
       manual should describe this in more detail.

       FIXME update the above text

METHODS
       "new($shell, $zoidname)"
           Simple constructor that bootstraps same attributes. When your
           module smells like fish Zoidberg will give it's constructor two
           arguments, a reference to itself and the name by which your module
           is identified. From this all other config can be deducted.

                   # Default attributes created by this constructor:

                   $self->{shell}     # a reference to the parent Zoidberg object
                   $self->{zoidname}  # name by which your module is identified
                   $self->{settings}  # reference to hash with global settings
                   $self->{config}    # hash with plugin specific config

       "init()"
           To be overloaded, will be called directly after the constructor.
           Do things you normally do in the constructor like loading files,
           opening sockets or setting defaults here.

       "config()"
       "shell()"
           These methods return a reference to the attributes by the same
           name.

       "plug()"
           A stub doing absolutely nothing, but by calling it from a dispatch
           table the plugin is loaded.

       "unplug()"
           Removes this plugin from the various dispatchtables, and deletes
           the object.

       "broadcast($event_name, @_)"
           Broadcast an event to whoever might be listening.

       "add_events({ event => sub { .. } })"
       "add_events(qw/event1 event2/)"
           Used to add new event hooks.  In the second form the events are
           hooked to call the likely named subroutine in the current object.

       "wipe_events(qw/event1 event2/)"
           Removes an event. Wipes the stacks for the named events of all
           routines belonging to this plugin.

       "add_commands({ command => sub { .. } })"
       "add_commands(qw/command1 command2/)"
           Used to add new builtin commands.  In the second form the commands
           are hooked to call the likely named subroutine in the current
           object.

       "wipe_commands(qw/command1 command2/)"
           Removes a command. Wipes the stacks for the named commands of all
           routines belonging to this plugin.

       "add_expansion(regex_ref =" sub { ... })>
           TODO

       "wipe_expansions()"
           TODO

       "add_context(%config)"
           See man zoiddevel(1) for the context configuration details.

       "ask($question, $default)"
           Get interactive input. The default is optional.  If the default is
           either 'Y' or 'N' a boolean value is returned.

       "round_up()"
           Is called when the plugin is unloaded or when a sudden DESTROY
           occurs.  To be overloaded, do things like saving files or closing
           sockets here.

AUTHOR
       R.L. Zwart, <rlzwart@cpan.org>

       Jaap Karssenberg || Pardus [Larus] <pardus@cpan.org>

       Copyright (c) 2002 Raoul L. Zwart. All rights reserved.  This program
       is free software; you can redistribute it and/or modify it under the
       same terms as Perl itself.

SEE ALSO
       Zoidberg, Zoidberg::Shell, Zoidberg::Utils,
       <http://zoidberg.sourceforge.net>



perl v5.12.2                      2012-08-17                 Zoidberg::Fish(3)
