Acme-Mitey-Cards
view release on metacpan or search on metacpan
lib/Acme/Mitey/Cards/Deck.pm.mite.pm view on Meta::CPAN
our @ISA;
push @ISA, "Acme::Mitey::Cards::Set";
}
# Standard Moose/Moo-style constructor
sub new {
my $class = ref( $_[0] ) ? ref(shift) : shift;
my $meta = ( $Mite::META{$class} ||= $class->__META__ );
my $self = bless {}, $class;
my $args =
$meta->{HAS_BUILDARGS}
? $class->BUILDARGS(@_)
: { ( @_ == 1 ) ? %{ $_[0] } : @_ };
my $no_build = delete $args->{__no_BUILD__};
# Attribute cards (type: CardArray)
# has declaration, file lib/Acme/Mitey/Cards/Set.pm, line 11
if ( exists $args->{"cards"} ) {
(
do {
package Acme::Mitey::Cards::Mite;
ref( $args->{"cards"} ) eq 'ARRAY';
}
and do {
my $ok = 1;
for my $i ( @{ $args->{"cards"} } ) {
( $ok = 0, last )
unless (
do {
use Scalar::Util ();
Scalar::Util::blessed($i)
and $i->isa(q[Acme::Mitey::Cards::Card]);
}
);
};
$ok;
}
)
or croak "Type check failed in constructor: %s should be %s",
"cards", "CardArray";
$self->{"cards"} = $args->{"cards"};
}
# Attribute reverse (type: NonEmptyStr)
# has declaration, file lib/Acme/Mitey/Cards/Deck.pm, line 17
do {
my $value =
exists( $args->{"reverse"} ) ? $args->{"reverse"} : "plain";
(
(
do {
package Acme::Mitey::Cards::Mite;
defined($value) and do {
ref( \$value ) eq 'SCALAR'
or ref( \( my $val = $value ) ) eq 'SCALAR';
}
}
)
&& ( length($value) > 0 )
)
or croak "Type check failed in constructor: %s should be %s",
"reverse", "NonEmptyStr";
$self->{"reverse"} = $value;
};
# Attribute original_cards (type: CardArray)
# has declaration, file lib/Acme/Mitey/Cards/Deck.pm, line 23
if ( exists $args->{"original_cards"} ) {
(
do {
package Acme::Mitey::Cards::Mite;
ref( $args->{"original_cards"} ) eq 'ARRAY';
}
and do {
my $ok = 1;
for my $i ( @{ $args->{"original_cards"} } ) {
( $ok = 0, last )
unless (
do {
use Scalar::Util ();
Scalar::Util::blessed($i)
and $i->isa(q[Acme::Mitey::Cards::Card]);
}
);
};
$ok;
}
)
or croak "Type check failed in constructor: %s should be %s",
"original_cards", "CardArray";
$self->{"original_cards"} = $args->{"original_cards"};
}
# Call BUILD methods
$self->BUILDALL($args) if ( !$no_build and @{ $meta->{BUILD} || [] } );
# Unrecognized parameters
my @unknown = grep not(/\A(?:cards|original_cards|reverse)\z/),
keys %{$args};
@unknown
and croak(
"Unexpected keys in constructor: " . join( q[, ], sort @unknown ) );
return $self;
}
my $__XS = !$ENV{PERL_ONLY}
&& eval { require Class::XSAccessor; Class::XSAccessor->VERSION("1.19") };
# Accessors for original_cards
# has declaration, file lib/Acme/Mitey/Cards/Deck.pm, line 23
sub original_cards {
@_ == 1
or croak('Reader "original_cards" usage: $self->original_cards()');
(
exists( $_[0]{"original_cards"} ) ? $_[0]{"original_cards"} : (
$_[0]{"original_cards"} = do {
my $default_value = $_[0]->_build_original_cards;
( run in 2.458 seconds using v1.01-cache-2.11-cpan-364913b4093 )