1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
{
package Sub::HandlesVia::Toolkit::Mite;
use strict;
use warnings;
no warnings qw( once void );
our $USES_MITE = "Mite::Class";
our $MITE_SHIM = "Sub::HandlesVia::Mite";
our $MITE_VERSION = "0.013000";
# Mite keywords
BEGIN {
my ( $SHIM, $CALLER ) =
( "Sub::HandlesVia::Mite", "Sub::HandlesVia::Toolkit::Mite" );
(
*after, *around, *before, *extends, *field,
*has, *param, *signature_for, *with
)
= do {
package Sub::HandlesVia::Mite;
no warnings 'redefine';
(
sub { $SHIM->HANDLE_after( $CALLER, "class", @_ ) },
sub { $SHIM->HANDLE_around( $CALLER, "class", @_ ) },
sub { $SHIM->HANDLE_before( $CALLER, "class", @_ ) },
sub { },
sub { $SHIM->HANDLE_has( $CALLER, field => @_ ) },
sub { $SHIM->HANDLE_has( $CALLER, has => @_ ) },
sub { $SHIM->HANDLE_has( $CALLER, param => @_ ) },
sub { $SHIM->HANDLE_signature_for( $CALLER, "class", @_ ) },
sub { $SHIM->HANDLE_with( $CALLER, @_ ) },
);
};
}
# Mite imports
BEGIN {
require Scalar::Util;
*STRICT = \&Sub::HandlesVia::Mite::STRICT;
*bare = \&Sub::HandlesVia::Mite::bare;
*blessed = \&Scalar::Util::blessed;
*carp = \&Sub::HandlesVia::Mite::carp;
*confess = \&Sub::HandlesVia::Mite::confess;
*croak = \&Sub::HandlesVia::Mite::croak;
*false = \&Sub::HandlesVia::Mite::false;
*guard = \&Sub::HandlesVia::Mite::guard;
*lazy = \&Sub::HandlesVia::Mite::lazy;
*lock = \&Sub::HandlesVia::Mite::lock;
*ro = \&Sub::HandlesVia::Mite::ro;
*rw = \&Sub::HandlesVia::Mite::rw;
*rwp = \&Sub::HandlesVia::Mite::rwp;
*true = \&Sub::HandlesVia::Mite::true;
*unlock = \&Sub::HandlesVia::Mite::unlock;
}
BEGIN {
require Sub::HandlesVia::Toolkit;
use mro 'c3';
our @ISA;
push @ISA, "Sub::HandlesVia::Toolkit";
}
# See UNIVERSAL
sub DOES {
my ( $self, $role ) = @_;
our %DOES;
return $DOES{$role} if exists $DOES{$role};
return 1 if $role eq __PACKAGE__;
if ( $INC{'Moose/Util.pm'}
and my $meta = Moose::Util::find_meta( ref $self or $self ) )
{
$meta->can('does_role') and $meta->does_role($role) and return 1;
}
return $self->SUPER::DOES($role);
}
# Alias for Moose/Moo-compatibility
sub does {
shift->DOES(@_);
}
1;
}
|