Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Moose::Meta::Class needs a package?

by Boldra (Deacon)
on Jul 11, 2011 at 06:43 UTC ( #913657=perlquestion: print w/ replies, xml ) Need Help??
Boldra has asked for the wisdom of the Perl Monks concerning the following question:

I'm using Moose::Meta::Class directly to test a plugin interface.

Plugin interface:

sub load_plugin { my $class = "My::Plugin::$_[0]"; eval "use $class" return $class->new }
Any my tests share the _make_fake_plugin sub:
package Emtpy; use Moose; package main; sub _make_fake_plugin { my $class = "My::Plugin::$_[0]"; $INC{"My/Plugin/$_[0].pm"} = 1; Moose::Meta::Class->create( $class => ( methods => { run => sub { push @FAKE_PLUGIN_LOG, \@_ } }, superclasses => [ qw<Empty> ], roles => [ qw<My::Plugin> ], ), ); }
Naturally there's quite a few checks in load_plugin which I'm not showing (and the role). Those are what I'm actually testing.

What I'm really curious about, is the need for the Empty package. If I substitute the Empty for Moose directly I get the error:

Can't locate object method "class_precedence_list" via package "Class: +:MOP::Package"
I stole this syntax from the Moose::Meta::Class tests, (the doc is a bit thin) but I don't understand it. Can anyone explain why this is needed? Is there a cleaner way?

thanks


- Boldra

Comment on Moose::Meta::Class needs a package?
Select or Download Code
Re: Moose::Meta::Class needs a package?
by stvn (Monsignor) on Jul 11, 2011 at 23:56 UTC
    What I'm really curious about, is the need for the Empty package. If I substitute the Empty for Moose directly I get the error:

    You want Moose::Object, not Moose.

    -stvn
      Thankyou! That is much cleaner now.


      - Boldra

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2015-07-06 00:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (68 votes), past polls