Acme-Mitey-Cards
view release on metacpan or search on metacpan
lib/Acme/Mitey/Cards/Suit.pm.mite.pm view on Meta::CPAN
defined( $args->{"colour"} ) and do {
ref( \$args->{"colour"} ) eq 'SCALAR'
or ref( \( my $val = $args->{"colour"} ) ) eq 'SCALAR';
}
}
or croak "Type check failed in constructor: %s should be %s",
"colour", "Str";
$self->{"colour"} = $args->{"colour"};
# Call BUILD methods
$self->BUILDALL($args) if ( !$no_build and @{ $meta->{BUILD} || [] } );
# Unrecognized parameters
my @unknown = grep not(/\A(?:abbreviation|colour|name)\z/),
keys %{$args};
@unknown
and croak(
"Unexpected keys in constructor: " . join( q[, ], sort @unknown ) );
return $self;
}
# Used by constructor to call BUILD methods
sub BUILDALL {
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") };
# Accessors for abbreviation
# has declaration, file lib/Acme/Mitey/Cards/Suit.pm, line 19
sub abbreviation {
@_ == 1 or croak('Reader "abbreviation" usage: $self->abbreviation()');
(
exists( $_[0]{"abbreviation"} ) ? $_[0]{"abbreviation"} : (
$_[0]{"abbreviation"} = do {
my $default_value = $_[0]->_build_abbreviation;
do {
package Acme::Mitey::Cards::Mite;
defined($default_value) and do {
ref( \$default_value ) eq 'SCALAR'
or ref( \( my $val = $default_value ) ) eq
'SCALAR';
}
}
or croak( "Type check failed in default: %s should be %s",
"abbreviation", "Str" );
$default_value;
}
)
);
}
# Accessors for colour
# has declaration, file lib/Acme/Mitey/Cards/Suit.pm, line 21
if ($__XS) {
Class::XSAccessor->import(
chained => 1,
"getters" => { "colour" => "colour" },
);
}
else {
*colour = sub {
@_ == 1 or croak('Reader "colour" usage: $self->colour()');
$_[0]{"colour"};
};
}
# Accessors for name
# has declaration, file lib/Acme/Mitey/Cards/Suit.pm, line 9
if ($__XS) {
Class::XSAccessor->import(
chained => 1,
"getters" => { "name" => "name" },
);
}
else {
*name = sub {
@_ == 1 or croak('Reader "name" usage: $self->name()');
$_[0]{"name"};
};
}
# 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(@_);
}
# Method signatures
our %SIGNATURE_FOR;
$SIGNATURE_FOR{"clubs"} = sub {
my $__NEXT__ = shift;
( run in 1.567 second using v1.01-cache-2.11-cpan-5735350b133 )