/[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 1133 - (hide annotations)
Tue Jun 30 15:10:55 2009 UTC (14 years, 10 months ago) by dpavlin
File size: 790 byte(s)
make classes immutable and remove moose droppings to make Perl::Critic::Moose happy
1 dpavlin 282 package Frey::Feed;
2     use Moose;
3    
4 dpavlin 606 extends 'Frey';
5     with 'Frey::Storage';
6    
7 dpavlin 282 =head1 NAME
8    
9 dpavlin 915 Frey::Feed - represent RSS/Atom feed using L<XML::FeedPP>
10 dpavlin 282
11     =cut
12    
13 dpavlin 304 use Frey::Types;
14     use Frey::Mirror;
15    
16 dpavlin 915 use XML::FeedPP;
17 dpavlin 297 use Data::Dump qw/dump/;
18 dpavlin 282
19     has uri => (
20     is => 'rw',
21     isa => 'Uri', coerce => 1,
22     required => 1,
23 dpavlin 286 default => 'https://blog.rot13.org/index.xml',
24 dpavlin 282 );
25    
26     has feed => (
27     is => 'ro',
28     lazy => 1,
29     default => sub {
30     my ($self) = @_;
31 dpavlin 304 my $xml = Frey::Mirror->new( uri => $self->uri )->content;
32 dpavlin 915 XML::FeedPP->new( $xml );
33 dpavlin 282 },
34     );
35    
36     has title => (
37     is => 'ro',
38     lazy => 1,
39 dpavlin 296 default => sub { $_[0]->feed->title },
40 dpavlin 282 );
41    
42 dpavlin 915 sub entries { $_[0]->feed->get_item() }
43 dpavlin 296
44 dpavlin 455 sub as_data {
45 dpavlin 282 my ($self) = @_;
46 dpavlin 299 # data should return single element!
47 dpavlin 915 [ $self->entries ];
48 dpavlin 282 }
49    
50 dpavlin 1133 __PACKAGE__->meta->make_immutable;
51     no Moose;
52    
53 dpavlin 282 1;

  ViewVC Help
Powered by ViewVC 1.1.26