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.814 second using v1.01-cache-2.11-cpan-8780591d54d )