NAME
Class::Meta::Method - Class::Meta class method introspection
SYNOPSIS
# Assuming MyApp::Thingy was generated by Class::Meta.
my $class = MyApp::Thingy->class;
my $thingy = MyApp::Thingy->new;
print "\nMethods:\n";
for my $meth ($class->methods) {
print " o ", $meth->name, $/;
$meth->call($thingy);
}
DESCRIPTION
This class provides an interface to the Class::Meta
objects that describe methods. It supports a simple description of the method, a label, and its visibility (private, protected, or public).
Class::Meta::Method objects are created by Class::Meta; they are never instantiated directly in client code. To access the method objects for a Class::Meta-generated class, simply call its class
method to retrieve its Class::Meta::Class object, and then call the methods()
method on the Class::Meta::Class object.
INTERFACE
Instance Methods
name
my $name = $meth->name;
Returns the method name.
package
my $package = $meth->package;
Returns the method package.
desc
my $desc = $meth->desc;
Returns the description of the method.
label
my $desc = $meth->label;
Returns label for the method.
view
my $view = $meth->view;
Returns the view of the method, reflecting its visibility. The possible values are defined by the following constants:
context
my $context = $meth->context;
Returns the context of the method, essentially whether it is a class or object method. The possible values are defined by the following constants:
call
my $ret = $meth->call($obj, @args);
Calls the method on the $obj
object, passing in any arguments. Note that it uses a goto
to execute the constructor, so the call to call()
itself will not appear in a call stack trace.
DISTRIBUTION INFORMATION
This file was packaged with the Class-Meta-0.13 distribution.
BUGS
Please report all bugs via the CPAN Request Tracker at http://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-Meta.
AUTHOR
David Wheeler <david@kineticode.com>
SEE ALSO
Other classes of interest within the Class::Meta distribution include:
COPYRIGHT AND LICENSE
Copyright (c) 2002-2004, David Wheeler. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.