Как я могу использовать MooseX::ClassAttribute в роли?

Я хотел бы использовать MooseX::ClassAttribute в роли. То есть сделать что-то вроде

package Cachable;

use Moose::Role;
use MooseX::ClassAttribute;

class_has Cache => ( is => 'rw' );

1;

К сожалению, приведенный выше код не работает, так как глубокая магия MooseX::ClassAttribute предполагает вызов из объекта Moose, а не из Moose::Role.
Есть ли способ обойти это или это известное ограничение?


person Yanick    schedule 03.03.2009    source источник


Ответы (1)


Вы присылаете мне патч, который заставляет это работать. Это, безусловно, выполнимо, хотя внутреннее устройство Moose усложняет задачу из-за того, как роли обрабатывают атрибуты.

person Dave Rolsky    schedule 04.03.2009
comment
Справедливо. Думаю, пришло время взглянуть на мета-добро Муз. - person Yanick; 04.03.2009
comment
Было ли когда-нибудь обновление для этого? Я знаю, что столкнулся с тем же ограничением. - person Danny; 07.07.2009
comment
@Dave: было бы полезно явно указать это ограничение в документации. - person Ether; 27.10.2009