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 )