Acme-Mitey-Cards
view release on metacpan or search on metacpan
lib/Acme/Mitey/Cards/Card.pm.mite.pm view on Meta::CPAN
my $class = ref( $_[0] );
my $meta = ( $Mite::META{$class} ||= $class->__META__ );
$_->(@_) for @{ $meta->{BUILD} || [] };
}
# Destructor should call DEMOLISH methods
sub DESTROY {
my $self = shift;
my $class = ref($self) || $self;
my $meta = ( $Mite::META{$class} ||= $class->__META__ );
my $in_global_destruction =
defined ${^GLOBAL_PHASE}
? ${^GLOBAL_PHASE} eq 'DESTRUCT'
: Devel::GlobalDestruction::in_global_destruction();
for my $demolisher ( @{ $meta->{DEMOLISH} || [] } ) {
my $e = do {
local ( $?, $@ );
eval { $demolisher->( $self, $in_global_destruction ) };
$@;
};
no warnings 'misc'; # avoid (in cleanup) warnings
die $e if $e; # rethrow
}
return;
}
my $__XS = !$ENV{PERL_ONLY}
&& eval { require Class::XSAccessor; Class::XSAccessor->VERSION("1.19") };
lib/Acme/Mitey/Cards/Mite.pm view on Meta::CPAN
use warnings;
no strict 'refs';
if ( $] < 5.009005 ) { require MRO::Compat; }
else { require mro; }
defined ${^GLOBAL_PHASE}
or eval { require Devel::GlobalDestruction; 1 }
or do {
carp( "WARNING: Devel::GlobalDestruction recommended!" );
*Devel::GlobalDestruction::in_global_destruction = sub { undef; };
};
# Constants
sub true () { !!1 } sub false () { !!0 }
sub ro () { 'ro' } sub rw () { 'rw' } sub rwp () { 'rwp' }
sub lazy () { 'lazy' } sub bare () { 'bare' }
# More complicated constants
BEGIN {
my @bool = ( \&false, \&true );
lib/Acme/Mitey/Cards/Set.pm.mite.pm view on Meta::CPAN
my $class = ref( $_[0] );
my $meta = ( $Mite::META{$class} ||= $class->__META__ );
$_->(@_) for @{ $meta->{BUILD} || [] };
}
# Destructor should call DEMOLISH methods
sub DESTROY {
my $self = shift;
my $class = ref($self) || $self;
my $meta = ( $Mite::META{$class} ||= $class->__META__ );
my $in_global_destruction =
defined ${^GLOBAL_PHASE}
? ${^GLOBAL_PHASE} eq 'DESTRUCT'
: Devel::GlobalDestruction::in_global_destruction();
for my $demolisher ( @{ $meta->{DEMOLISH} || [] } ) {
my $e = do {
local ( $?, $@ );
eval { $demolisher->( $self, $in_global_destruction ) };
$@;
};
no warnings 'misc'; # avoid (in cleanup) warnings
die $e if $e; # rethrow
}
return;
}
my $__XS = !$ENV{PERL_ONLY}
&& eval { require Class::XSAccessor; Class::XSAccessor->VERSION("1.19") };
lib/Acme/Mitey/Cards/Suit.pm.mite.pm view on Meta::CPAN
my $class = ref( $_[0] );
my $meta = ( $Mite::META{$class} ||= $class->__META__ );
$_->(@_) for @{ $meta->{BUILD} || [] };
}
# Destructor should call DEMOLISH methods
sub DESTROY {
my $self = shift;
my $class = ref($self) || $self;
my $meta = ( $Mite::META{$class} ||= $class->__META__ );
my $in_global_destruction =
defined ${^GLOBAL_PHASE}
? ${^GLOBAL_PHASE} eq 'DESTRUCT'
: Devel::GlobalDestruction::in_global_destruction();
for my $demolisher ( @{ $meta->{DEMOLISH} || [] } ) {
my $e = do {
local ( $?, $@ );
eval { $demolisher->( $self, $in_global_destruction ) };
$@;
};
no warnings 'misc'; # avoid (in cleanup) warnings
die $e if $e; # rethrow
}
return;
}
my $__XS = !$ENV{PERL_ONLY}
&& eval { require Class::XSAccessor; Class::XSAccessor->VERSION("1.19") };
lib/Acme/Mitey/Cards/Types.pm view on Meta::CPAN
sub is_ClassName ($) {
do { (sub {
no strict 'refs';
return !!0 if ref $_[0];
return !!0 if not $_[0];
return !!0 if ref(do { my $tmpstr = $_[0]; \$tmpstr }) ne 'SCALAR';
my $stash = \%{"$_[0]\::"};
return !!1 if exists($stash->{'ISA'}) && *{$stash->{'ISA'}}{ARRAY} && @{$_[0].'::ISA'};
return !!1 if exists($stash->{'VERSION'});
foreach my $globref (values %$stash) {
return !!1
if ref \$globref eq 'GLOB'
? *{$globref}{CODE}
: ref $globref; # const or sub ref
}
return !!0;
})->(do { my $tmp = $_[0] }) }
}
sub assert_ClassName ($) {
do { (sub {
no strict 'refs';
return !!0 if ref $_[0];
return !!0 if not $_[0];
return !!0 if ref(do { my $tmpstr = $_[0]; \$tmpstr }) ne 'SCALAR';
my $stash = \%{"$_[0]\::"};
return !!1 if exists($stash->{'ISA'}) && *{$stash->{'ISA'}}{ARRAY} && @{$_[0].'::ISA'};
return !!1 if exists($stash->{'VERSION'});
foreach my $globref (values %$stash) {
return !!1
if ref \$globref eq 'GLOB'
? *{$globref}{CODE}
: ref $globref; # const or sub ref
}
return !!0;
})->(do { my $tmp = $_[0] }) } ? $_[0] : ClassName->get_message( $_[0] );
}
$EXPORT_TAGS{"ClassName"} = [ qw( ClassName is_ClassName assert_ClassName ) ];
push @EXPORT_OK, @{ $EXPORT_TAGS{"ClassName"} };
push @{ $EXPORT_TAGS{"types"} }, "ClassName";
push @{ $EXPORT_TAGS{"is"} }, "is_ClassName";
push @{ $EXPORT_TAGS{"assert"} }, "assert_ClassName";
lib/Acme/Mitey/Cards/Types.pm view on Meta::CPAN
sub is_RoleName ($) {
do { (sub {
no strict 'refs';
return !!0 if ref $_[0];
return !!0 if not $_[0];
return !!0 if ref(do { my $tmpstr = $_[0]; \$tmpstr }) ne 'SCALAR';
my $stash = \%{"$_[0]\::"};
return !!1 if exists($stash->{'ISA'}) && *{$stash->{'ISA'}}{ARRAY} && @{$_[0].'::ISA'};
return !!1 if exists($stash->{'VERSION'});
foreach my $globref (values %$stash) {
return !!1
if ref \$globref eq 'GLOB'
? *{$globref}{CODE}
: ref $globref; # const or sub ref
}
return !!0;
})->(do { my $tmp = $_[0] }) and not $_[0]->can('new') }
}
sub assert_RoleName ($) {
do { (sub {
no strict 'refs';
return !!0 if ref $_[0];
return !!0 if not $_[0];
return !!0 if ref(do { my $tmpstr = $_[0]; \$tmpstr }) ne 'SCALAR';
my $stash = \%{"$_[0]\::"};
return !!1 if exists($stash->{'ISA'}) && *{$stash->{'ISA'}}{ARRAY} && @{$_[0].'::ISA'};
return !!1 if exists($stash->{'VERSION'});
foreach my $globref (values %$stash) {
return !!1
if ref \$globref eq 'GLOB'
? *{$globref}{CODE}
: ref $globref; # const or sub ref
}
return !!0;
})->(do { my $tmp = $_[0] }) and not $_[0]->can('new') } ? $_[0] : RoleName->get_message( $_[0] );
}
$EXPORT_TAGS{"RoleName"} = [ qw( RoleName is_RoleName assert_RoleName ) ];
push @EXPORT_OK, @{ $EXPORT_TAGS{"RoleName"} };
push @{ $EXPORT_TAGS{"types"} }, "RoleName";
push @{ $EXPORT_TAGS{"is"} }, "is_RoleName";
push @{ $EXPORT_TAGS{"assert"} }, "assert_RoleName";
( run in 0.525 second using v1.01-cache-2.11-cpan-49f99fa48dc )