/[Frey]/branches/mojo/lib/Frey/Feed.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /branches/mojo/lib/Frey/Feed.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 261 - (show annotations)
Tue Nov 4 22:13:10 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 860 byte(s)
use Frey::Storage for cache
1 package Frey::Feed;
2 use Moose;
3
4 =head1 NAME
5
6 Frey::Feed - represent RSS/Atom feed using L<Data::Feed>
7
8 =cut
9
10 use Data::Feed;
11 use Frey::Types;
12
13 with 'Frey::Storage';
14
15 has uri => (
16 is => 'rw',
17 isa => 'Uri', coerce => 1,
18 required => 1,
19 default => 'http://blog.rot13.org/index.xml',
20 );
21
22 has feed => (
23 is => 'ro',
24 lazy => 1,
25 default => sub {
26 my ($self) = @_;
27 warn "parse ", $self->uri;
28 Data::Feed->parse( $self->uri );
29 },
30 );
31
32 has title => (
33 is => 'ro',
34 lazy => 1,
35 default => sub { $_[0]->feed->title }
36 );
37
38 use Data::Dump qw/dump/;
39
40 sub data {
41 my ($self) = @_;
42 my $path = 'var/feed/' . $self->uri->host . '/' . $self->uri->path;
43 my $data = $self->load( $path );
44 return $data if $data;
45
46 warn "# fetch ",$self->uri;
47 warn "# data ", dump( $self->feed->entries );
48 $self->store( $path, $self->feed->entries );
49 return $self->feed->entries;;
50 }
51
52 1;

  ViewVC Help
Powered by ViewVC 1.1.26