Hi,

This was discussed about attribute options inheritance on IRC:

00:03 < tj> hi, any moose gurus around who could try explaining about the 
attribute options inheritance to a novice?
00:04 <@mst> start with which doc you've read and what wasn't clear
00:04 <@mst> we'll trade an explanation for a write-up for thre next guy :)
00:06 < tj> well i've read Moose::Manual::Attributes and read 
Moose::Meta::Attributes code
00:07 < tj> the docs and code states that you can only inherit a certain set of 
attributes defined in moose core
00:07 <@mst> yeah
00:07 < tj> why such an arbitrary limitation?
00:07 <+shadowpaste> "tj" at 217.168.144.84 pasted "sample code for question 
about @legal_options_for_inheritance" (21 lines) at 
http://scsys.co.uk:8001/33209
00:07 < tj> i'd like to do something like that
00:08 <@mst> hrm
00:08 <@mst> I wonder if the MXMD stuff gets to add entries
00:09 < tj> i was wondering why attribute metaclasses can't define additional 
attribute options that are valid for inheritance
00:09 <@doy> they can
00:09 <@doy> this one just doesn't, apparently
00:10 < tj> ah ok
00:10 <@mst> honestly
00:10 <@mst> I think I'd much rather have a deny list than an allow list
00:10 <@doy> yeah
00:10 <@mst> wonder if we can covnince stevan of that :)
00:10 < tj> would save some trouble for module writers
00:10 <@mst> sure
00:10 <@mst> it'd also make it easier to shoot yourself in the foot
00:10 <@doy> i think we did at one point, and then nobody did anything about it
00:11 <@doy> but i might be misremembering
00:11 < tj> heh
00:11 < tj> someone care pointing the docs how to do that, i could patch 
MooseX::MetaDescription::Meta::Attribute and send it to upstream
00:12 < tj> just override legal_options_for_inheritance() ?
00:12 <@doy> around legal_options_for_inheritance => sub {
00:12 <@doy> yeah
00:13 < tj> let me try
00:20 < tj> ah but in my case it won't ever work, of course
00:21 < tj> since 'bar' is just an instance of Moose::Meta::Attribute 
metaclass, it doesn't magically become MooseX::MetaDescription::Meta::Attribute 
even if a subclass redefines the metaclass option
00:21 <@perigrin> mst: stevan has already said "yes" for making it a deny list
00:22 <@perigrin> nobody has done the work yet.
00:22 <@perigrin> well volunteered.
00:25 <@mst> tj: so there you go
00:26 <@mst> tj: all you have to do is invert the implementation and tweak the 
tests
00:26 <@rjbs> tj: you will win the accolades of all
00:27 <@perigrin> tj: information on patching Moose is in 
Moose::Manual::Contribution
00:27 < tj> ok could take a look

So here's my try on this:
http://scm.solitudo.net/gitweb?p=Moose.git;a=commitdiff;h=topics/inversed-legal-attribute-option-inheritance

Feel free to merge/steal ideas from http://scm.solitudo.net/git/Moose.git
branch topics/inversed-legal-attribute-option-inheritance.

-- 
Tuomas Jormola <t...@solitudo.net>

Attachment: signature.asc
Description: Digital signature

Reply via email to