MooseX::Interface::Internals - the classes and traits used under the hood of MooseX::Interface
This role is applied to your interface's metarole object. If you want to get to know the internals of MooseX::Interface, this is the place to start.
As well as providing the following methods,
it also includes method modifiers for
add_required_methods (to deal with method signatures) and
apply (to trigger interface integrity checks).
Arrayref of MooseX::Interface::Meta::TestCase objects.
Boolean indicating whether the interface's integrity has been checked yet.
__PACKAGE__->meta->check_interface_integrity will happily check the interface integrity every single time,
but when a class implements an interface,
we don't want to have to keep rechecking.
Hashref of sub name to refaddr pairs of all "before" method modifiers that have been set up to implement required method signature checks.
Define a constant.
Accepts either a coderef+name pair, or a MooseX::Interface::Meta::TestCase object.
Tests an instance of an implementation of the interface.
Returns a list of Moose::Meta::Method objects judged to be problematic to the integrity of the interface.
All method modifiers are problematic, except those that implement method signature checks.
and croaks if either of them return any problems.
Trivial subclass of Moose::Meta::Role::Method.
Trivial subclass of Moose::Meta::Role::Method::Required.
Subclass of Moose::Meta::Role::Method::Required.
An arrayref of strings or Moose::Meta::TypeConstraint objects.
Given an arrayref of method arguments (not including the invocant), checks them against the signature. Returns false if the signature is violated.
Represents an embedded test case.
Class with much overloading,
TODO: these objects might want attributes to retrieve the object tested plus the interface metarole.
Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=MooseX-Interface.
Toby Inkster <email@example.com>.
This software is copyright (c) 2012 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.