package WebService::ForecastIo::Response;
use Moose;
use WebService::ForecastIo::DataPoint;
use WebService::ForecastIo::DataBlock;
use WebService::ForecastIo::Alert;
use JSON;
has 'currently' => (
is => 'ro',
isa => 'WebService::ForecastIo::DataPoint',
coerce => 1,
);
has [qw(daily hourly minutely)] => (
is => 'ro',
isa => 'WebService::ForecastIo::DataBlock',
coerce => 1,
);
has [qw(latitude longitude)] => (
is => 'ro',
isa => 'Num',
);
has timezone => (
is => 'ro',
isa => 'Str',
);
has offset => (
is => 'ro',
isa => 'Num',
);
has alerts => (
is => 'ro',
isa => 'WebService::ForecastIo::AlertArray',
coerce => 1,
);
has flags => (
is => 'ro',
isa => 'HashRef',
);
around BUILDARGS => sub {
my ($orig,$class,@args) = @_;
if (@args==1 and !ref($args[0])) {
@args = decode_json($args[0]);
}
return $class->$orig(@args);
};
1;