package Feed::Data::CNN::Base; use strict; use warnings; use Rope; use Rope::Autoload; use Feed::Data; property url => ( initable => 1, enumerable => 1, writeable => 1, ); property feed => ( initable => 1, enumerable => 1, writeable => 1, builder => sub { for my $key (qw/render all count delete get pop insert is_empty title link description rss_channel/) { $_[0]->{properties}->{$key} = { enumerable => 1, index => ++$_[0]->{keys}, value => sub { my ($self, $param) = @_; $self->feed->$key($param) } }; } Feed::Data->new(); } ); function parse => sub { my ($self) = @_; $self->feed->parse($self->url); }; 1;