---------- Forwarded message ----------
Date: Sat, 3 Apr 2010 08:40:29 -0700
From: Larry Marso <lma...@gmail.com>
To: auta...@urth.org
Subject: Moose Meta cookbook recipe 5 broken (attribute as metaclass trait)
    broken in Moose 1.01?

something about reader/writer methods changing?

fyi, with Moose 1.01, running your recipe 5 from moose meta cookbook I get:

    Can't locate object method "table" via package 
"Class::MOP::Class::__ANON__::SERIAL::1" at line 15.

code:

    package MyApp::Meta::Class::Trait::HasTable;
    use Moose::Role;

    has table => (
        is  => 'rw',
        isa => 'Str',
    );

    package Moose::Meta::Class::Custom::Trait::HasTable;
    sub register_implementation { 'MyApp::Meta::Class::Trait::HasTable' }

    package MyApp::User;
    use Moose -traits => 'HasTable';

    __PACKAGE__->meta->table('User');

something similar running shawn moore's code from YAPC:NA presentation:

  Can't locate object method "count" via package 
"Class::MOP::Class::__ANON__::SERIAL::1" at test.pl line 40.

code:

    #!/usr/bin/perl

    use strict;
    use warnings;
    use feature ':5.10';

    package HasCounter;
    use Moose::Role;

    has count => (
        is => 'rw',
        isa => 'Int',
        default => 0,
    );

    sub increment {
        my $self = shift;
        $self->count(
            $self->count + 1
        );
    }

    package CountInstances;
    use Moose::Role;
    with 'HasCounter';

    after new_object => sub {
        my $self = shift;
        $self->increment;
    };

    package Point::Dot;
    use Moose -traits => 'HasCounter';

    has x => (
        is => 'ro',
        isa => 'Int',
    );

    Point::Dot->meta->count; # 0
    Point::Dot->new;
    Point::Dot->meta->count; # 1
    Point::Dot->new for 1 .. 5;
    Point::Dot->meta->count; # 6

Reply via email to