Toby Inkster > MooseX-Interface-0.007 > MooseX::Interface::Internals

Download:
MooseX-Interface-0.007.tar.gz

Annotate this POD

Website

View/Report Bugs
Source   Latest Release: MooseX-Interface-0.008

NAME ^

MooseX::Interface::Internals - the classes and traits used under the hood of MooseX::Interface

METAROLE TRAIT ^

MooseX::Interface::Trait::Role

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).

is_interface

Boolean attribute.

test_cases

Arrayref of MooseX::Interface::Meta::TestCase objects.

integrity_checked

Boolean indicating whether the interface's integrity has been checked yet. An explicit one or __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.

installed_modifiers

Hashref of sub name to refaddr pairs of all "before" method modifiers that have been set up to implement required method signature checks.

add_constant($name, $value)

Define a constant.

add_test_case($coderef, $name)
add_test_case($blessed_testcase)

Accepts either a coderef+name pair, or a MooseX::Interface::Meta::TestCase object.

test_implementation($object)

Tests an instance of an implementation of the interface.

find_problematic_methods

Returns a list of Moose::Meta::Method objects judged to be problematic to the integrity of the interface.

find_problematic_method_modifiers

All method modifiers are problematic, except those that implement method signature checks.

check_interface_integrity

Calls find_problematic_methods and find_problematic_method_modifiers, and croaks if either of them return any problems.

CLASSES ^

MooseX::Interface::Meta::Method::Constant

Trivial subclass of Moose::Meta::Role::Method.

MooseX::Interface::Meta::Method::Required

Trivial subclass of Moose::Meta::Role::Method::Required.

MooseX::Interface::Meta::Method::Required::WithSignature

Subclass of Moose::Meta::Role::Method::Required.

signature

An arrayref of strings or Moose::Meta::TypeConstraint objects.

check_signature($arglist)

Given an arrayref of method arguments (not including the invocant), checks them against the signature. Returns false if the signature is violated.

MooseX::Interface::Meta::TestCase

Represents an embedded test case.

name
code
associated_interface
test_instance($instance)

MooseX::Interface::Meta::TestReport

Class with much overloading, returned by test_implementation.

TODO: these objects might want attributes to retrieve the object tested plus the interface metarole.

passed

Arrayref of passing test cases.

failed

Arrayref of failing test cases.

BUGS ^

Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=MooseX-Interface.

SEE ALSO ^

MooseX::Interface.

AUTHOR ^

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE ^

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.

DISCLAIMER OF WARRANTIES ^

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.

syntax highlighting: