package WebService::ForecastIo::Alert; use Moose; use Moose::Util::TypeConstraints; use MooseX::Types::URI 'Uri'; use MooseX::Types::DateTime; class_type 'WebService::ForecastIo::Alert'; subtype 'WebService::ForecastIo::AlertArray', as 'ArrayRef[WebService::ForecastIo::Alert]'; coerce 'WebService::ForecastIo::Alert', from 'HashRef', via { WebService::ForecastIo::Alert->new($_) }; coerce 'WebService::ForecastIo::AlertArray', from 'ArrayRef[HashRef]', via { my $array = $_; [ map { WebService::ForecastIo::Alert->new($_) } @$array ] }; has title => ( is => 'ro', isa => 'Str', ); has expires => ( is => 'ro', isa => 'DateTime', coerce => 1, ); has uri => ( is => 'ro', isa => Uri, ); 1;