Acme-Mitey-Cards
view release on metacpan or search on metacpan
lib/Acme/Mitey/Cards/Card.pm.mite.pm view on Meta::CPAN
};
}
# Accessors for reverse
# has declaration, file lib/Acme/Mitey/Cards/Card.pm, line 19
sub reverse {
@_ == 1 or croak('Reader "reverse" usage: $self->reverse()');
(
exists( $_[0]{"reverse"} ) ? $_[0]{"reverse"} : (
$_[0]{"reverse"} = do {
my $default_value = $_[0]->_build_reverse;
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",
"reverse", "Str" );
$default_value;
}
)
);
}
# See UNIVERSAL
sub DOES {
my ( $self, $role ) = @_;
our %DOES;
return $DOES{$role} if exists $DOES{$role};
lib/Acme/Mitey/Cards/Deck.pm view on Meta::CPAN
use Acme::Mitey::Cards::Suit;
use Acme::Mitey::Cards::Card::Numeric;
use Acme::Mitey::Cards::Card::Face;
use Acme::Mitey::Cards::Card::Joker;
use Acme::Mitey::Cards::Hand;
has reverse => (
is => ro,
isa => NonEmptyStr,
default => 'plain',
);
has original_cards => (
is => lazy,
isa => CardArray,
);
sub _build_cards {
my $self = shift;
lib/Acme/Mitey/Cards/Deck.pm view on Meta::CPAN
}
}
@{ $self->cards } = @rest;
return Acme::Mitey::Cards::Set->new( cards => \@jokers );
}
signature_for deal_hand => (
named => [
count => Int, { default => 7 },
args_for_hand => HashRef, { slurpy => true },
],
);
sub deal_hand {
my ( $self, $arg ) = @_;
croak "Not enough cards: wanted %d but only have %d", $arg->count, $self->count
if $arg->count > $self->count;
lib/Acme/Mitey/Cards/Deck.pm.mite.pm view on Meta::CPAN
&& 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;
do {
package Acme::Mitey::Cards::Mite;
( ref($default_value) eq 'ARRAY' ) and do {
my $ok = 1;
for my $i ( @{$default_value} ) {
( $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 default: %s should be %s",
"original_cards", "CardArray" );
$default_value;
}
)
);
}
# Accessors for reverse
# has declaration, file lib/Acme/Mitey/Cards/Deck.pm, line 17
if ($__XS) {
Class::XSAccessor->import(
chained => 1,
lib/Acme/Mitey/Cards/MOP.pm view on Meta::CPAN
$ATTR{"reverse"} = Moose::Meta::Attribute->new( "reverse",
__hack_no_process_options => true,
associated_class => $PACKAGE,
definition_context => { context => "has declaration", file => "lib/Acme/Mitey/Cards/Deck.pm", line => "17", package => "Acme::Mitey::Cards::Deck", toolkit => "Mite", type => "class" },
is => "ro",
weak_ref => false,
init_arg => "reverse",
required => false,
type_constraint => do { require Types::Common::String; Types::Common::String::NonEmptyStr() },
reader => "reverse",
default => "plain",
lazy => false,
);
{
my $ACCESSOR = Moose::Meta::Method::Accessor->new(
accessor_type => 'reader',
attribute => $ATTR{"reverse"},
name => "reverse",
body => \&Acme::Mitey::Cards::Deck::reverse,
package_name => "Acme::Mitey::Cards::Deck",
definition_context => { context => "has declaration", description => "reader Acme::Mitey::Cards::Deck::reverse", file => "lib/Acme/Mitey/Cards/Deck.pm", line => "17", package => "Acme::Mitey::Cards::Deck", toolkit => "Mite", type => "clas...
lib/Acme/Mitey/Cards/Mite.pm view on Meta::CPAN
defined $Mite::COMPILING and $Mite::COMPILING eq __PACKAGE__;
}
sub import {
my $me = shift;
my %arg = map +( lc($_) => true ), @_;
my ( $caller, $file ) = caller;
if( _is_compiling() ) {
require Mite::Project;
'Mite::Project'->default->inject_mite_functions(
'package' => $caller,
'file' => $file,
'arg' => \%arg,
'shim' => $me,
);
}
else {
# Try to determine original filename for caller, minus libdir.
# This would normally be in %INC but caller hasn't finished loading yet.
require File::Spec;
lib/Acme/Mitey/Cards/Mite.pm view on Meta::CPAN
}
}
return;
}
}
# Usage: $me, $caller, $keyword, @has_args
sub HANDLE_has {
my ( $me, $caller, $keyword, $names ) = ( shift, shift, shift, shift );
if ( @_ % 2 ) {
my $default = shift;
unshift @_, ( 'CODE' eq ref( $default ) )
? ( is => lazy, builder => $default )
: ( is => ro, default => $default );
}
my %spec = @_;
my $code;
for my $name ( ref($names) ? @$names : $names ) {
$name =~ s/^\+//;
'CODE' eq ref( $code = $spec{default} )
and ${"$caller\::__$name\_DEFAULT__"} = $code;
'CODE' eq ref( $code = $spec{builder} )
and *{"$caller\::_build_$name"} = $code;
'CODE' eq ref( $code = $spec{trigger} )
and *{"$caller\::_trigger_$name"} = $code;
'CODE' eq ref( $code = $spec{clone} )
and *{"$caller\::_clone_$name"} = $code;
}
return;
}
lib/Acme/Mitey/Cards/Set.pm.mite.pm view on Meta::CPAN
my $__XS = !$ENV{PERL_ONLY}
&& eval { require Class::XSAccessor; Class::XSAccessor->VERSION("1.19") };
# Accessors for cards
# has declaration, file lib/Acme/Mitey/Cards/Set.pm, line 11
sub cards {
@_ == 1 or croak('Reader "cards" usage: $self->cards()');
(
exists( $_[0]{"cards"} ) ? $_[0]{"cards"} : (
$_[0]{"cards"} = do {
my $default_value = $_[0]->_build_cards;
do {
package Acme::Mitey::Cards::Mite;
( ref($default_value) eq 'ARRAY' ) and do {
my $ok = 1;
for my $i ( @{$default_value} ) {
( $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 default: %s should be %s",
"cards", "CardArray" );
$default_value;
}
)
);
}
# See UNIVERSAL
sub DOES {
my ( $self, $role ) = @_;
our %DOES;
return $DOES{$role} if exists $DOES{$role};
lib/Acme/Mitey/Cards/Suit.pm.mite.pm view on Meta::CPAN
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,
( run in 0.371 second using v1.01-cache-2.11-cpan-0a6323c29d9 )