Perl6-Pugs
view release on metacpan or search on metacpan
misc/sixpan/JIB/lib/JIB/Alternative.pm view on Meta::CPAN
package JIB::Alternative;
use strict;
use warnings;
use JIB::Config;
use JIB::Utils;
use Params::Check qw[check];
use Log::Message::Simple qw[:STD];
use Data::Dumper;
use base 'Object::Accessor';
=head1 ACCESSORS
=head1 METHODS
=head2 $alt = JIB::Alternative->new_from_struct( struct => $struct );
=cut
sub new_from_struct {
my $class = shift;
my %hash = @_;
my $struct;
my $tmpl = {
struct => { required => 1, store => \$struct },
};
check( $tmpl, \%hash ) or ( error( Params::Check->last_error), return );
### XXX check validity of the struct
my $obj = $class->SUPER::new;
### XXX add a fields accessors for all the fields in the file
### so we can have other accessors for other meta data?
$obj->mk_accessors( keys %$struct );
$obj->$_( $struct->{$_} ) for keys %$struct;
return $obj;
}
### XXX c/p'd from meta.pm -- subclass/inherit
=head2 $struct = $alt->to_struct;
=cut
sub to_struct {
my $self = shift;
my %struct = map { $_ => $self->$_ } $self->ls_accessors;
return \%struct;
}
### XXX c/p'd this from JIB::Package -- subclass/inherit!
my $Package_re = qr/^(\w+) - # prefix
([\w-]+?) - # package name
([\d.]+) - # version
(\w+\+\S+) $ # authority
/smx;
=head2 prefix
=head2 name
=head2 version
( run in 3.122 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )