AXL-Client-Simple
view release on metacpan or search on metacpan
lib/AXL/Client/Simple/LineResultSet.pm view on Meta::CPAN
package AXL::Client::Simple::LineResultSet;
use Moose;
use MooseX::Iterator;
use AXL::Client::Simple::Line;
has items => (
is => 'ro',
isa => 'ArrayRef[AXL::Client::Simple::Line]',
required => 1,
);
sub BUILDARGS {
my ($class, @rest) = @_;
my $params = (scalar @rest == 1 ? $rest[0] : {@rest});
# promote hashes returned from CUCM into Line objects
$params->{items} = [ map { AXL::Client::Simple::Line->new($_) }
@{$params->{items}} ];
return $params;
}
sub count {
my $self = shift;
return scalar @{$self->items};
}
has iterator => (
is => 'ro',
isa => 'MooseX::Iterator::Array',
handles => [qw/
next
has_next
peek
reset
/],
lazy_build => 1,
);
sub _build_iterator {
my $self = shift;
return MooseX::Iterator::Array->new( collection => $self->items );
}
__PACKAGE__->meta->make_immutable;
no Moose;
1;
( run in 0.670 second using v1.01-cache-2.11-cpan-39bf76dae61 )