יובל קוג'מן (Yuval Kogman) > Object-Meta-Plugin-0.02_04 > Object::Meta::Plugin::Useful::Greedy

Download:
Object-Meta-Plugin-0.02_04.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.02   Source  

NAME ^

Object::Meta::Plugin::Useful::Greedy - A useful plugin base class which gobbles up reasonable parts of the symbol table at export time.

SYNOPSIS ^

        package Foo;

        use base 'Object::Meta::Plugin::Useful::Greedy';

        sub new {
                # ...
        }
        
        sub ppretty {
                # ...
        }

        sub ver_pretty {
                # ...
        }

        sub ugly { # will not be exported because of the pattern
                # ...
        }

        sub _filter {
                grep {/pretty/} @_;
        }

DESCRIPTION ^

This is a base class for a pretty standard, pretty easy plugin. When export is called it goes through the symbol table of the plugin's package, as per ref $self, and so forth through all the @ISAs it finds. The functions it finds along the way are collected, and filtered.

METHODS ^

exports

This rummages it's class's symbol table, and returns a list of method names as filtered by _filter.

_filter LIST

This takes a list of method names, and munges it into something. The current example will filter things that don't look pretty (don't start with an underscore), and that are probably undesired (new, init, exports, carp & croak).

You can define _filter in your class, if you want more control of the filtering process.

@_ passed to this method will consist of a duplicate free list of all the bareword method names found in all of the packages that the plugin's class @ISA contains, as determined by Class::ISA.

CAVEATS ^

BUGS ^

Peh! You must be kididgn!

TODO ^

Nothing right now.

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::Useful::Generic, Object::Meta::Plugin::Useful::Meta.

syntax highlighting: