Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

# $Id$
use Moose;
use Google::Chart::Types qw(hash_coercion);
use Carp();
use constant parameter_name => 'chs';
coerce 'Google::Chart::Size'
=> from 'Str'
=> via {
if (! /^(\d+)x(\d+)$/) {
Carp::confess("Could not parse $_ as size");
}
return Google::Chart::Size->new(width => $1, height => $2);
}
;
coerce 'Google::Chart::Size'
=> from 'HashRef'
=> via {
my $h = $_;
my ($width, $height) = ($h->{args}) ?
($h->{args}->{width}, $h->{args}->{height}) :
($h->{width}, $h->{height})
;
return Google::Chart::Size->new( width => $width, height => $height );
}
;
has 'width' => (
is => 'rw',
isa => 'Int',
required => 1
);
has 'height' => (
is => 'rw',
isa => 'Int',
required => 1
);
__PACKAGE__->meta->make_immutable;
no Moose;
no Moose::Util::TypeConstraints;
sub parameter_value {
my $self = shift;
return join('x', $self->width, $self->height);
}
1;
__END__
=head1 NAME
Google::Chart::Size - Google::Chart Size Specification
=head1 SYNOPSIS
Google::Chart->new(
size => "400x300"
)
Google::Chart->new(
size => {
width => 400,
height => 300
}
)
=head1 METHODS
=head2 parameter_value
=cut