Re: MooseX::FSA::Simple

[email protected] (Stevan Little)
Newsgroups perl.moose
Message-ID <[email protected]>
On Sep 19, 2011, at 1:13 PM, Dave Rolsky wrote:

> On Mon, 19 Sep 2011, [email protected] wrote:
> 
>> I have written a new module along the lines of FSA::Rules, only as a Moose Role.
>> 
>> Is it convention that Moose Roles are in the MooseX::Role namespace so I would call the module MooseX::Role::FSA::Simple, or can I call it MooseX::FSA::Simple?
> 
> I'd really prefer that MooseX _only_ be used for extensions to Moose (at the meta level).

So I /mostly/ agree with you on this one.

For MooseX:: itself, yes,.. should just be exactly that.

For MooseX::Role:: though, I think it is not so simple.

Take for instance MooseX::Role::WithOverloading or MooseX::Role::Parameterized, these fit you example well because they extends Moose::Role at the meta level. 

But then take MooseX::Role::TraitsConstructor, this doesn't extend the role API at all but is clearly very Moose specific and generically extends the functionality of Moose classes, though not at the meta-level at all.

Also MooseX::Role::Pluggable, which also is pretty Moose specific and provides an extension of functionality in that same "generic" manner.

Similarly other MooseX::Role modules such as:

- MooseX::Role::Listenable
- MooseX::Role::Matcher
- MooseX::Role::MissingMethodUtils
- MooseX::Role::BuildInstanceOf

All of these modules really add functionality to the individual classes they are applied to and not to the meta-level.

I think we have a fuzzy line here and honestly I am not sure it will be easy to clarify (at least not as simple as MooseX:: is).

- Stevan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.