—package
Chart::OFC2::Types;
use
strict;
use
warnings;
use
MooseX::Types
-declare
=> [
qw(
PositiveInt
ChartOFC2Labels
)
];
use
Chart::OFC2::Labels;
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