/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 262 - (hide annotations)
Tue Nov 4 22:39:33 2008 UTC (15 years, 6 months ago) by dpavlin
File size: 896 byte(s)
added entries method
1 dpavlin 248 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 dpavlin 261 with 'Frey::Storage';
14    
15 dpavlin 248 has uri => (
16     is => 'rw',
17     isa => 'Uri', coerce => 1,
18     required => 1,
19 dpavlin 252 default => 'http://blog.rot13.org/index.xml',
20 dpavlin 248 );
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 dpavlin 262 default => sub { $_[0]->feed->title },
36 dpavlin 248 );
37    
38 dpavlin 262 sub entries { [ $_[0]->feed->entries ] }
39    
40 dpavlin 248 use Data::Dump qw/dump/;
41 dpavlin 261
42 dpavlin 248 sub data {
43     my ($self) = @_;
44 dpavlin 261 my $path = 'var/feed/' . $self->uri->host . '/' . $self->uri->path;
45     my $data = $self->load( $path );
46 dpavlin 262 return $data if defined $data;
47 dpavlin 261
48     warn "# fetch ",$self->uri;
49 dpavlin 262 warn "# data ", dump( $self->entries );
50     $self->store( $path, ( $self->entries ) );
51     return $self->entries;
52 dpavlin 248 }
53    
54     1;

  ViewVC Help
Powered by ViewVC 1.1.26