David E. Wheeler

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:

Class::Meta::PUBLIC
Class::Meta::PRIVATE
Class::Meta::PROTECTED

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:

Class::Meta::CLASS
Class::Meta::OBJECT

call

  my $ret = $meth->call($obj, @args);

Calls the method on the $obj object, passing in any arguments.

DISTRIBUTION INFORMATION

This file was packaged with the Class-Meta-0.11 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:

Class::Meta
Class::Meta::Class
Class::Meta::Constructor
Class::Meta::Attribute

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.