Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Installing role with Moose::Exporter

by stvn (Monsignor)
on May 03, 2011 at 01:46 UTC ( #902610=note: print w/ replies, xml ) Need Help??


in reply to Installing role with Moose::Exporter

I would try asking this question either on the Moose mailing list or #moose@irc.perl.org. I personally don't know the answer but people who hang out in those two places do. And unfortunately for you, I am really the only one of the Moose code team that hangs out here on Perlmonks.

-stvn


Comment on Re: Installing role with Moose::Exporter
Re^2: Installing role with Moose::Exporter
by tilly (Archbishop) on May 03, 2011 at 19:49 UTC
    Thanks. I finally figured it out. The trick is in when init_meta is called. This code works:
    package TestMooseExporter; use Data::Dumper; $Data::Dumper::Indent = 1; use Moose (); use Moose::Exporter; use Moose::Util::MetaRole; Moose::Exporter->setup_import_methods( with_meta => [qw( hello )], also => "Moose", ); sub hello { # print Dumper($_) for @_; print $_[0]->{package}; } sub init_meta { shift; my %args = @_; Moose->init_meta(%args); Moose::Util::MetaRole::apply_base_class_roles( for => $args{for_class}, roles => ['TestRole'], ); return $args{for_class}->meta; } 1;
    However in a class that uses this, the role is not applied until after the class compiles. So my test code which tried to call a function inside of the module failed to find the role applied. But if I wait and look for methods later, it all works.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://902610]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2014-08-23 05:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (172 votes), past polls