package Feed;
use Moose;
use namespace::autoclean;
use 5.016;
use MooseX::Types::URI 'Uri';
with 'MooseX::Traits';
use XML::Feed;
has '+_trait_namespace' => ( default => __PACKAGE__ );
has uri => (
is => 'ro',
isa => Uri,
coerce => 1,
required => 1,
);
has feed => (
is => 'ro',
isa => 'XML::Feed',
lazy_build => 1,
);
has _entries => (
is => 'ro',
isa => 'ArrayRef[XML::Feed::Entry]',
traits => [ 'Array' ],
lazy_build => 1,
handles => {
entries => 'elements',
count_entries => 'count',
},
);
sub process {
my ($self) = @_;
for my $entry ($self->entries) {
$self->process_entry($entry);
}
return;
}
sub _build_feed {
my ($self) = @_;
return XML::Feed->parse($self->uri)
or die XML::Feed->errstr;
}
sub _build__entries {
my ($self) = @_;
return [$self->feed->entries];
}
sub process_entry {
}
__PACKAGE__->meta->make_immutable;
1;