Stevan,

Thanks for the help.  I am getting the following exception:

Can't locate object method "excludes_role" via package "Class::MOP::Class"
at lib/Moose/Meta/Role/Application/ToClass.pm line 25.

I'm building a class from a YAML spec, and I want to add a trait to every
attribute I pull from the YAML file:

use YAML;
use Moose;
use My::Super;
use My::Trait;

my $file = shift @ARGV;
my $yaml = YAML::LoadFile($file);

my $rowclass = Moose::Meta::Class->create(
    "My::Class",
    superclasses => ['My::Super'],
);

my %columns = @{ $yaml->{columns} };
while (my ($name, $params) = each %columns) {
  my $attr = Moose::Meta::Attribute->new($name, %$params);
*  My::Trait->meta->apply($attr);
*  $rowclass->add_attribute($attr);
}

Am I doing something wrong?

On Mon, Jun 9, 2008 at 3:24 PM, Stevan Little <
[EMAIL PROTECTED]> wrote:

> Dan,
>
> Something like this maybe?
>
> My::Trait->meta->apply(My::Class->meta->get_attribute('foo'));
>
> - Stevan
>
>
> On Jun 9, 2008, at 4:21 PM, Dan Harbin wrote:
>
>  Is there a way to add a trait to an attribute at runtime?  I know it can
>> be
>> done through the "new" method of Moose::Meta::Attribute, but what about
>> adding one after it's been initialized?
>>
>> Thanks,
>> Dan
>>
>
>

Reply via email to