Take me over?
NAME
Object::Meta::Plugin::ExportList - an implementation of a very simple, string only export list.
SYNOPSIS
# the proper way
my
$plugin
= GoodPlugin->new();
$host
->plug(
$plugin
);
package
GoodPlugin;
# ...
sub
exports {
qw/some methods/
;
}
sub
init {
my
$self
=
shift
;
return
Object::Meta::Plugin::ExportList->new(
$self
};
}
# or if you prefer.... *drum roll*
# the naughty way
my
$plugin
= BadPlugin->new();
# doesn't need to be a plugin per se, since
# it's not verified by plug(). All it needs
# is to have a working can(). the export
# list is responsible for the rest.
# in short, this way init() needn't be defined.
my
$export
= Object::Meta::Plugin::ExportList->new(
$plugin
,
qw/foo bar/
);
$host
->register(
$export
);
DESCRIPTION
An export list is an object a plugin hands over to a host, stating what it is going to give it. This is a very basic implementation, providing only the bare minimum methods needed to register a plugin. Unregistering one requires even less.
METHODS
- new PLUGIN [ METHODS ... ]
-
Creates a new export list object. When passed only a plugin, and no method names as additional arguments,
- plugin
-
Returns the reference to the plugin object it represents.
- exists METHOD
-
Returns truth if the method stated is exported.
- list METHOD
-
Returns a list of exported method names.
- merge EXPORTLIST
-
Performs an OR with the methods of the argued export list.
- unmerge EXPORTLIST
-
Performs an AND of the COMPLEMENT of the argued export list.
CAVEATS
Relies on the plugin implementation to provide a non-mandatory extension - the
exports
method. This method is available in all the Object::Meta::Plugin::Useful variants, and since Object::Meta::Plugin is not usable on it's own this is probably ok.
BUGS
Not that I know of, for the while being at least.
COPYRIGHT & LICENSE
Copyright 2003 Yuval Kogman. All rights reserved.
This program is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.
AUTHOR
Yuval Kogman <nothingmuch@woobling.org>
SEE ALSO
Object::Meta::Plugin, Object::Meta::Plugin::Useful, Object::Meta::Plugin::Host