--- trunk/lib/Frey/Feed.pm 2008/11/05 08:21:08 297 +++ trunk/lib/Frey/Feed.pm 2009/01/04 23:05:59 915 @@ -1,17 +1,20 @@ package Frey::Feed; use Moose; +extends 'Frey'; +with 'Frey::Storage'; + =head1 NAME -Frey::Feed - represent RSS/Atom feed using L +Frey::Feed - represent RSS/Atom feed using L =cut -use Data::Feed; use Frey::Types; -use Data::Dump qw/dump/; +use Frey::Mirror; -with 'Frey::Storage'; +use XML::FeedPP; +use Data::Dump qw/dump/; has uri => ( is => 'rw', @@ -25,17 +28,8 @@ lazy => 1, default => sub { my ($self) = @_; - my $path = 'var/feed/' . $self->uri->host . '/' . $self->uri->path; - my $data = $self->load( $path ); - if ( defined $data ) { - return $data; - } - - warn "parse ", $self->uri; - my $feed = Data::Feed->parse( $self->uri ); - - warn "# data ", dump( $feed ); - $self->store( $path, $feed ); + my $xml = Frey::Mirror->new( uri => $self->uri )->content; + XML::FeedPP->new( $xml ); }, ); @@ -45,11 +39,12 @@ default => sub { $_[0]->feed->title }, ); -sub entries { $_[0]->feed->entries } +sub entries { $_[0]->feed->get_item() } -sub data { +sub as_data { my ($self) = @_; - return $self->entries; + # data should return single element! + [ $self->entries ]; } 1;