Acme-Mitey-Cards

 view release on metacpan or  search on metacpan

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

package Acme::Mitey::Cards::MOP;

use Moose ();
use Moose::Util ();
use Moose::Util::MetaRole ();
use Moose::Util::TypeConstraints ();
use constant { true => !!1, false => !!0 };

my $META_CLASS = do {
    package Acme::Mitey::Cards::MOP::Meta::Class;
    use Moose;
    extends 'Moose::Meta::Class';
    around _immutable_options => sub {
        my ( $next, $self, @args ) = ( shift, shift, @_ );
        return $self->$next( replace_constructor => 1, @args );
    };
    __PACKAGE__->meta->make_immutable;

    __PACKAGE__;
};

my $META_ROLE = do {
    package Acme::Mitey::Cards::MOP::Meta::Role;
    use Moose;
    extends 'Moose::Meta::Role';
    my $built_ins = qr/\A( DOES | does | __META__ | __FINALIZE_APPLICATION__ |
        CREATE_CLASS | APPLY_TO )\z/x;
    around get_method => sub {
        my ( $next, $self, $method_name ) = ( shift, shift, @_ );
        return if $method_name =~ $built_ins;
        return $self->$next( @_ );
    };
    around get_method_list => sub {
        my ( $next, $self ) = ( shift, shift );
        return grep !/$built_ins/, $self->$next( @_ );
    };
    around _get_local_methods => sub {
        my ( $next, $self ) = ( shift, shift );
        my %map = %{ $self->_full_method_map };
        return map $map{$_}, $self->get_method_list;
    };
    __PACKAGE__->meta->make_immutable;

    __PACKAGE__;
};

require "Acme/Mitey/Cards/Card.pm";

{
    my $PACKAGE = $META_CLASS->initialize( "Acme::Mitey::Cards::Card", package => "Acme::Mitey::Cards::Card" );
    my %ATTR;
    $ATTR{"deck"} = Moose::Meta::Attribute->new( "deck",
        __hack_no_process_options => true,
        associated_class => $PACKAGE,
        definition_context => { context => "has declaration", file => "lib/Acme/Mitey/Cards/Card.pm", line => "9", package => "Acme::Mitey::Cards::Card", toolkit => "Mite", type => "class" },
        is => "ro",
        weak_ref => true,
        init_arg => "deck",
        required => false,
        type_constraint => do { require Acme::Mitey::Cards::Types::Source; Acme::Mitey::Cards::Types::Source::Deck() },
        reader => "deck",
    );
    {
        my $ACCESSOR = Moose::Meta::Method::Accessor->new(
            accessor_type => 'reader',
            attribute => $ATTR{"deck"},
            name => "deck",
            body => \&Acme::Mitey::Cards::Card::deck,
            package_name => "Acme::Mitey::Cards::Card",
            definition_context => { context => "has declaration", description => "reader Acme::Mitey::Cards::Card::deck", file => "lib/Acme/Mitey/Cards/Card.pm", line => "9", package => "Acme::Mitey::Cards::Card", toolkit => "Mite", type => "class" }...
        );
        $ATTR{"deck"}->associate_method( $ACCESSOR );
        $PACKAGE->add_method( $ACCESSOR->name, $ACCESSOR );
    }
    do {
        no warnings 'redefine';
        local *Moose::Meta::Attribute::install_accessors = sub {};
        $PACKAGE->add_attribute( $ATTR{"deck"} );
    };
    $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/Card.pm", line => "19", package => "Acme::Mitey::Cards::Card", toolkit => "Mite", type => "class" },
        is => "ro",
        weak_ref => false,
        init_arg => "reverse",
        required => false,
        type_constraint => do { require Types::Standard; Types::Standard::Str() },
        reader => "reverse",
        builder => "_build_reverse",
        lazy => true,
    );
    {
        my $ACCESSOR = Moose::Meta::Method::Accessor->new(
            accessor_type => 'reader',
            attribute => $ATTR{"reverse"},
            name => "reverse",
            body => \&Acme::Mitey::Cards::Card::reverse,
            package_name => "Acme::Mitey::Cards::Card",
            definition_context => { context => "has declaration", description => "reader Acme::Mitey::Cards::Card::reverse", file => "lib/Acme/Mitey/Cards/Card.pm", line => "19", package => "Acme::Mitey::Cards::Card", toolkit => "Mite", type => "clas...



( run in 0.362 second using v1.01-cache-2.11-cpan-ceb78f64989 )