MooseX::AttributeTree

Software screenshot:
MooseX::AttributeTree
Software informatie:
Versie: 0.04
Upload datum: 14 Apr 15
Ontwikkelaar: Christopher J. Madsen
Licentie: Gratis
Populariteit: 9

Rating: nan/5 (Total Votes: 0)

Klassen kunnen attributen uit hun ouder klassen erven. Maar soms wil je een attribuut in staat zijn om zijn waarde erven van een bovenliggend object. Bijvoorbeeld, dat is hoe CSS-stijlen werken in HTML.
MooseX :: AttributeTree is een Perl module die u toelaat om de TreeInherit eigenschap van toepassing op elke attribuut in je klas & nbsp;. Dit verandert de manier waarop accessormethode het attribuut's werkt. Bij het lezen van de waarde van het attribuut, als er geen waarde is ingesteld voor het attribuut in dit object, de accessor zal de waarde van het bovenliggende object (die misschien zelf worden overgenomen) terug.
Het bovenliggende object hoeft niet van hetzelfde type als het onderliggende object te zijn, maar het moet een methode te hebben met dezelfde naam als accessormethode het attribuut's (tenzij u levert een fetch_method). (Methode van de ouder kan een attribuut accessormethode zijn, maar het hoeft niet zo te zijn.) Als de ouder de juiste methode niet heeft, heb je een runtime error krijgen als het kind probeert te noemen.
Standaard MooseX :: AttributeTree verwacht de bovenliggende object te krijgen door te bellen naar bovenliggende methode van het object. U kunt echter elke methode gebruiken om de link op te halen door het passeren van de juiste parent_link aan de TreeInherit eigenschap:
& Nbsp; heeft voorouder => (
& Nbsp; is => 'rw',
& Nbsp; isa => 'Object',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; heeft waarde => (
& Nbsp; is => 'ro',
& Nbsp; traits => [TreeInherit => {parent_link => 'voorouder'}],
& Nbsp;);
Als de methode wordt undef, dan stopt de erfenis en de accessor zal gedragen als een normale accessor. (Normaal parent_link de naam van een attribuut accessormethode, maar het hoeft niet te zijn.)
Soms is het niet handig voor het bovenliggende object om een ​​aparte methode hebben voor elk attribuut dat een kind object zou willen erven. In dat geval kunt u een fetch_method de TreeInherit eigenschap leveren.
& Nbsp; heeft other_value => (
& Nbsp; is => 'ro',
& Nbsp; traits => [TreeInherit => {fetch_method => 'get_inherited'}],
& Nbsp;);
Met fetch_method, zal de geërfde waarde vandaan
& Nbsp; $ zelf-> ouder-> get_inherited ('other_value');
in plaats van de gebruikelijke
& Nbsp; $ zelf-> ouder-> other_value ();
Als uw attribuut heeft een predikaat methode, rapporteert het de vraag of het attribuut is ingesteld op dat object. Het predikaat heeft geen kennis van enige waarde die kunnen worden overgenomen van een ouder. Dit betekent dat $ object-> kan has_value return false ook al $ object-> waarde zou een waarde (overgenomen van het bovenliggende) terug.
Ook zou duidelijker methode van het attribuut (indien van toepassing) het attribuut alleen op dit object te wissen, en zou nooit een bovenliggend object beïnvloeden.
SYNOPSIS
& Nbsp; pakket MyClass;
& Nbsp; gebruiken Moose;
& Nbsp; gebruiken MooseX :: AttributeTree ();
& Nbsp; heeft moederbedrijf => (
& Nbsp; is => 'rw',
& Nbsp; isa => 'Object',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; heeft waarde => (
& Nbsp; is => 'rw',
& Nbsp; traits => [qw / TreeInherit /],
& Nbsp;);

Eisen

  • Perl

Vergelijkbare software

picocom
picocom

3 Jun 15

Netio
Netio

3 Jun 15

Lynis
Lynis

17 Feb 15

RUBiS
RUBiS

3 Jun 15

Andere software van ontwikkelaar Christopher J. Madsen

mktime
mktime

2 Jun 15

VBinDiff
VBinDiff

2 Jun 15

Reacties op MooseX::AttributeTree

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!