Acme-Mitey-Cards

 view release on metacpan or  search on metacpan

lib/Acme/Mitey/Cards/Types/Source.pm  view on Meta::CPAN

	-declare => qw(
		Card FaceCard JokerCard NumericCard Deck Hand Set Suit
		CardArray CardNumber Character
	);

use Type::Tiny::Class;
use Type::Utils ();

__PACKAGE__->add_type(
	name      => CardNumber,
	parent    => IntRange[ 1, 10 ],
);

CardNumber->coercion->add_type_coercions(
	Enum['A', 'a'], q{1},
);

__PACKAGE__->add_type(
	name      => Character,
	parent    => Enum[ 'Jack', 'Queen', 'King' ],
);

__PACKAGE__->add_type(
	'Type::Tiny::Class'->new(
		name      => Card,
		class     => 'Acme::Mitey::Cards::Card',
		library   => __PACKAGE__,
	)
);

Card->coercion->add_type_coercions(
	Str, q{'Acme::Mitey::Cards::Card'->from_string($_)},
);

__PACKAGE__->add_type(
	name      => CardArray,
	parent    => ArrayRef[Card],
	coercion  => 1,
);

__PACKAGE__->add_type(
	'Type::Tiny::Class'->new(
		name      => FaceCard,
		class     => 'Acme::Mitey::Cards::Card::Face',
		library   => __PACKAGE__,
	)
);



( run in 1.412 second using v1.01-cache-2.11-cpan-4d50c553e7e )