package PITA::Guest;
# A complete abstraction of a Guest
use 5.008;
use strict;
use Process ();
use Process::YAML ();
use PITA::XML ();
our $VERSION = '0.60';
our @ISA = qw{
Process::YAML
Process
};
}
#####################################################################
# Constructor
sub new {
my $class = shift;
my $self = bless { @_ }, $class;
$self->_init;
$self;
}
sub _init {
my $self = shift;
# Load the Guest XML file
unless ( $self->filename and -f $self->filename ) {
Carp::croak('Missing or bad guest xml filename');
}
if ( _STRING($self->xml) ) {
$self->{guest} = PITA::XML::Guest->read($self->guest);
}
unless ( _INSTANCE($self->guest, 'PITA::XML::Guest') ) {
Carp::croak('Missing or invalid guest');
}
$self;
}
sub guest {
$_[0]->{guest};
}
sub discovered {
$_[0]->guest->discovered;
}
1;