Jesse Luehrs > MooseX-ABC-0.01 > MooseX::ABC

Download:
MooseX-ABC-0.01.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View Bugs
Report a bug
Module Version: 0.01   Source   Latest Release: MooseX-ABC-0.02

NAME ^

MooseX::ABC - abstract base classes for Moose

VERSION ^

version 0.01

SYNOPSIS ^

  package Shape;
  use Moose;
  use MooseX::ABC;

  requires 'draw';

  package Circle;
  use Moose;
  extends 'Shape';

  sub draw {
      # stuff
  }

  my $shape = Shape->new; # dies
  my $circle = Circle->new; # succeeds

  package Square;
  use Moose;
  extends 'Shape'; # dies, since draw is unimplemented

DESCRIPTION ^

This module adds basic abstract base class functionality to Moose. Doing use MooseX::ABC turns the using class into an abstract class - it cannot be instantiated. It also allows you to mark certain methods in the class as "required", meaning that if a class inherits from this class without implementing that method, it will die at compile time.

EXPORTS ^

requires METHOD_NAMES

Takes a list of methods that classes inheriting from this one must implement. If a class inherits from this class without implementing each method listed here, an error will be thrown when compiling the class.

TODO ^

Probably want a way to extend abstract classes without dying, making the inheriting class abstract.

BUGS ^

No known bugs.

Please report any bugs through RT: email bug-moosex-abc at rt.cpan.org, or browse to http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-ABC.

SEE ALSO ^

Moose, Moose::Role

SUPPORT ^

You can find this documentation for this module with the perldoc command.

    perldoc MooseX::ABC

You can also look for information at:

AUTHOR ^

  Jesse Luehrs <doy at tozt dot net>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2009 by Jesse Luehrs.

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