Oryx::Parent - multiple inheritance meta-type for Oryx


Oryx documentation  | view source Contained in the Oryx distribution.

Index


NAME

Top

Oryx::Parent - multiple inheritance meta-type for Oryx

SYNOPSIS

Top

 package Fruit;
 use base qw(Oryx::Class);
 our $schema = {
     attributes => [{
         colour => 'String',
     }],
 }
 1;

 package Food;
 use base qw(Oryx::Class);
 our $schema = {
     attributes => [{
         energy => 'Float',
     }],
 }
 1;

 package Orange;
 use base qw(Fruit Food);
 our $schema = {
     attributes => [{
         segments => 'Integer',
     }]
 }
 1;

 use Orange;
 my $orange = Orange->create({
     segments => 10,
     energy   => 543.21,
     colour   => 'orange',
 });

 $orange->update;
 $orange->commit;

 my $id = $orange->id;
 undef $orange;

 my $retrieved = Orange->retrieve($id);
 print $retrieved->colour;        # prints 'orange'

 my $food_instance = $retrieved->PARENT('Food');
 print $food_instance->energy;    # prints 543.21

 $food_instance->energy(42.00);
 $food_instance->update;

 my $changed_orange = Orange->retrieve($id);
 print $changed_orange->energy;   # prints 42.00 (parent instance updated)

DESCRIPTION

Top

Oryx::Parent objects are constructed during Oryx::Class initialization by inspecting your class' @ISA array, so you get one of these hanging off your class for each superclass that is also an Oryx::Class derivative.


Oryx documentation  | view source Contained in the Oryx distribution.