/[Frey]/trunk/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 /trunk/lib/Frey/Feed.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 298 - (hide annotations)
Wed Nov 5 08:21:08 2008 UTC (15 years, 6 months ago) by dpavlin
File size: 838 byte(s)
 r3140@llin (orig r264):  dpavlin | 2008-11-05 00:10:05 +0100
 cleanup

1 dpavlin 282 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 dpavlin 297 use Data::Dump qw/dump/;
13 dpavlin 282
14 dpavlin 295 with 'Frey::Storage';
15    
16 dpavlin 282 has uri => (
17     is => 'rw',
18     isa => 'Uri', coerce => 1,
19     required => 1,
20 dpavlin 286 default => 'http://blog.rot13.org/index.xml',
21 dpavlin 282 );
22    
23     has feed => (
24     is => 'ro',
25     lazy => 1,
26     default => sub {
27     my ($self) = @_;
28 dpavlin 297 my $path = 'var/feed/' . $self->uri->host . '/' . $self->uri->path;
29     my $data = $self->load( $path );
30     if ( defined $data ) {
31     return $data;
32     }
33    
34 dpavlin 282 warn "parse ", $self->uri;
35 dpavlin 297 my $feed = Data::Feed->parse( $self->uri );
36     $self->store( $path, $feed );
37 dpavlin 298 $feed;
38 dpavlin 282 },
39     );
40    
41     has title => (
42     is => 'ro',
43     lazy => 1,
44 dpavlin 296 default => sub { $_[0]->feed->title },
45 dpavlin 282 );
46    
47 dpavlin 297 sub entries { $_[0]->feed->entries }
48 dpavlin 296
49 dpavlin 282 sub data {
50     my ($self) = @_;
51 dpavlin 298 $self->entries;
52 dpavlin 282 }
53    
54     1;

  ViewVC Help
Powered by ViewVC 1.1.26