MooseX::AttributeTree

Software skärmdump:
MooseX::AttributeTree
Mjukvaruinformation:
Version: 0.04
Ladda upp dagen: 14 Apr 15
Licens: Gratis
Popularitet: 70

Rating: 2.0/5 (Total Votes: 1)

Klasser kan ärva attribut från sina moderklasser. Men ibland vill ett attribut för att kunna ärva sitt värde från ett överordnat objekt. Till exempel, det är hur CSS stilar fungerar i HTML.
MooseX :: AttributeTree är ett Perl-modul som gör att du kan tillämpa TreeInherit drag till varje attribut i din klass. & Nbsp; Detta ändrar det sätt attributets åtkomstmetod fungerar. När man läser attributets värde, om inget värde har angetts för attributet i det här objektet kommer åtkomst returnera värdet från det överordnade objektet (som kan själv vara ärftlig).
Den överordnade objektet behöver inte vara av samma typ som barnet objekt, men det måste ha en metod med samma namn som attributets åtkomstmetod (såvida du levererar en fetch_method). (Förälderns metod kan vara ett attribut åtkomstmetod, men det behöver inte vara.) Om föräldern inte har rätt metod, du får ett runtime error om barnet försöker kalla det.
Som standard räknar MooseX :: AttributeTree att få det överordnade objektet genom att anropa objektets överordnade metod. Du kan dock använda någon metod för att hämta länken genom att lämna lämplig parent_link till TreeInherit drag:
& Nbsp; har förfader => (
& Nbsp; är => 'rw ",
& Nbsp; isa => 'Object ",
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; har värde => (
& Nbsp; är => 'ro',
& Nbsp; drag => [TreeInherit => {parent_link => 'förfader'}],
& Nbsp;);
Om metoden returnerar undef, sedan arv stannar och åtkomst kommer bete sig som en normal accessor. (Normalt parent_link blir namnet på ett attribut åtkomstmetod, men det behöver inte vara.)
Ibland är det inte bekvämt för det överordnade objektet för att ha en separat metod för varje attribut som ett underordnat objekt kanske vill ärva. I så fall kan du leverera en fetch_method till TreeInherit egenskap.
& Nbsp; har other_value => (
& Nbsp; är => 'ro',
& Nbsp; drag => [TreeInherit => {fetch_method => 'get_inherited "}],
& Nbsp;);
Med fetch_method kommer den ärvda värdet kommer från
& Nbsp; $ själv-> föräldra> get_inherited ("other_value ');
istället för den vanliga
& Nbsp; $ själv-> föräldra> other_value ();
Om din attribut har ett predikat metod, rapporterar den om attributet har ställts in på det objektet. Predikatet har ingen kännedom om något värde som kan ärvas från en förälder. Det innebär att $ objekt> has_value kan returnera false trots $ objekt> värde skulle återvända ett värde (ärvs från förälder).
På samma sätt skulle attributets tydligare metod (om någon) rensa attributet bara på detta objekt, och skulle aldrig påverka ett överordnat objekt.
SYNOPSIS
& Nbsp; paket MyClass;
& Nbsp; använd älg;
& Nbsp; använd MooseX :: AttributeTree ();
& Nbsp; har förälder => (
& Nbsp; är => 'rw ",
& Nbsp; isa => 'Object ",
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; har värde => (
& Nbsp; är => 'rw ",
& Nbsp; drag => [qw / TreeInherit /],
& Nbsp;);

Krav :

  • Perl

Liknande mjukvara

Benchmarker
Benchmarker

11 May 15

cpuburn
cpuburn

3 Jun 15

netperf
netperf

3 Jun 15

Annan programvara för utvecklare Christopher J. Madsen

VBinDiff
VBinDiff

2 Jun 15

mktime
mktime

2 Jun 15

Kommentarer till MooseX::AttributeTree

Kommentarer hittades inte
Kommentar
Slå på bilder!