NAME
    Module::Functions - Get function list from package.

SYNOPSIS
        package My::Class;
        use parent qw/Exporter/;
        use Module::Functions;
        our @EXPORT = get_public_functions();

DESCRIPTION
    Module::Functions is a library to get a public functions list from
    package. It is useful to create a exportable function list.

METHODS
  my @functions = get_public_functions()
  my @functions = get_public_functions($package)
    Get a public function list from the package.

    If you don't pass the $package parameter, the function use caller(0) as
    a source package.

    This function does not get a function, that imported from other package.

    For example:

        package Foo;
        use File::Spec::Functions qw/catfile/;
        sub foo { }

    In this case, return value of "get_public_functions('Foo')" does not
    contain 'catfile'. Return value is "('foo')".

   RULES
    This "get_public_functions" removes some function names.

    Rules are here:

    BEGIN, UNITCHECK, CHECK, INIT, and END are hidden.
    'import' method is hidden
    function name prefixed by '_' is hidden.

  my @functions = get_full_functions();
  my @functions = get_full_functions($package)
    This function get ALL functions. ALL means functions that were imported
    from other packages. And included specially named functions(BEGIN ,
    UNITCHECK , CHECK , INIT and END). Of course, included also private
    functions( ex. _foo ).

AUTHOR
    Tokuhiro Matsuno <tokuhirom AAJKLFJEF@ GMAIL COM>

SEE ALSO
    Exporter::Auto have same feature of this module, but it stands on very
    tricky thing.

    Class::Inspector finds the function list. But it does not check the
    function defined at here or imported from other package.

LICENSE
    Copyright (C) Tokuhiro Matsuno

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

