Stevan Little > Moose-0.18 > Moose::Role

Download:
Moose-0.18.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  4
Open  9
View Bugs
Report a bug
Module Version: 0.07   Source   Latest Release: Moose-0.92

NAME ^

Moose::Role - The Moose Role

SYNOPSIS ^

  package Eq;
  use strict;
  use warnings;
  use Moose::Role;
  
  requires 'equal';
  
  sub no_equal { 
      my ($self, $other) = @_;
      !$self->equal($other);
  }
  
  # ... then in your classes
  
  package Currency;
  use strict;
  use warnings;
  use Moose;
  
  with 'Eq';
  
  sub equal {
      my ($self, $other) = @_;
      $self->as_float == $other->as_float;
  }

DESCRIPTION ^

Role support in Moose is pretty solid at this point. However, the best documentation is still the the test suite. It is fairly safe to assume Perl 6 style behavior and then either refer to the test suite, or ask questions on #moose if something doesn't quite do what you expect.

We are planning writing some more documentation in the near future, but nothing is ready yet, sorry.

EXPORTED FUNCTIONS ^

Currently Moose::Role supports all of the functions that Moose exports, but differs slightly in how some items are handled (see CAVEATS below for details).

Moose::Role also offers two role specific keyword exports:

requires (@method_names)

Roles can require that certain methods are implemented by any class which does the role.

excludes (@role_names)

Roles can exclude other roles, in effect saying "I can never be combined with these @role_names". This is a feature which should not be used lightly.

CAVEATS ^

The role support now has only a few caveats. They are as follows:

BUGS ^

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.

AUTHOR ^

Stevan Little <stevan@iinteractive.com>

Christian Hansen <chansen@cpan.org>

COPYRIGHT AND LICENSE ^

Copyright 2006, 2007 by Infinity Interactive, Inc.

http://www.iinteractive.com

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