Dave Cross: Still Munging Data With Perl: Online event - Mar 17 Learn more

use strict;
-declare => [qw(
PositiveInt
ChartOFC2Labels
)];
use MooseX::Types::Moose qw( Int HashRef ArrayRef );
subtype PositiveInt,
as Int,
where { $_ > 0 };
class_type ChartOFC2Labels, { class => 'Chart::OFC2::Labels' };
coerce ChartOFC2Labels,
from HashRef,
via { Chart::OFC2::Labels->new($_) };
coerce ChartOFC2Labels,
from ArrayRef,
via { Chart::OFC2::Labels->new({'labels' => $_}) };
1;
=head1 NAME
Chart::OFC2::Types - constrainted types and coercions for Chart::OFC2
=head1 SYNOPSIS
package Chart::OFC2::Demo;
use Moose;
use Chart::OFC2::Types qw( PositiveInt ChartOFC2Labels );
has 'attribute1' => ( is => 'rw', isa => PositiveInt, );
has 'attribute2' => ( is => 'rw', isa => ChartOFC2Labels, coerce => 1 );
1;
use Chart::OFC2::Demo;
my $demo = Chart::OFC2::Demo->new({
attribute1 => 4,
attribute2 => {
labels => [ "Jan", "Feb", "Mar", "Apr", "May" ]
}
});
=head1 TYPES
=over 4
=item PositiveInt
An integer greater than 0
=item ChartOFC2Labels
subtype of Chart::OFC2::Labels
Coerces from HashRef via L<Chart::OFC2::Labels/new>
=back
=head1 AUTHOR
Jeff Tam
=cut