--- trunk/lib/Frey/Feed.pm 2008/11/05 08:21:06 295 +++ trunk/lib/Frey/Feed.pm 2008/11/28 22:22:07 606 @@ -1,16 +1,20 @@ package Frey::Feed; use Moose; +extends 'Frey'; +with 'Frey::Storage'; + =head1 NAME Frey::Feed - represent RSS/Atom feed using L =cut -use Data::Feed; use Frey::Types; +use Frey::Mirror; -with 'Frey::Storage'; +use Data::Feed; +use Data::Dump qw/dump/; has uri => ( is => 'rw', @@ -24,29 +28,23 @@ lazy => 1, default => sub { my ($self) = @_; - warn "parse ", $self->uri; - Data::Feed->parse( $self->uri ); + my $xml = Frey::Mirror->new( uri => $self->uri )->content; + Data::Feed->parse( \$xml ); }, ); has title => ( is => 'ro', lazy => 1, - default => sub { $_[0]->feed->title } + default => sub { $_[0]->feed->title }, ); -use Data::Dump qw/dump/; +sub entries { $_[0]->feed->entries } -sub data { +sub as_data { my ($self) = @_; - my $path = 'var/feed/' . $self->uri->host . '/' . $self->uri->path; - my $data = $self->load( $path ); - return $data if $data; - - warn "# fetch ",$self->uri; - warn "# data ", dump( $self->feed->entries ); - $self->store( $path, $self->feed->entries ); - return $self->feed->entries;; + # data should return single element! + [ $self->feed->entries ]; } 1;