root/lang/perl/Data-Feed/trunk/lib/Data/Feed/Parser/RSS.pm @ 17137

Revision 17137, 0.7 kB (checked in by daisuke, 5 years ago)

complain loudly if no parser was found

  • Property svn:keywords set to Id
Line 
1# $Id$
2
3package Data::Feed::Parser::RSS;
4use Moose;
5use Data::Feed::RSS;
6
7our $PARSER_CLASS;
8
9BEGIN {
10    my @candidates = qw(XML::RSS::LibXML XML::RSS);
11
12    foreach my $module (@candidates) {
13        eval { Class::MOP::load_class($module) };
14        next if $@;
15
16        $PARSER_CLASS = $module;
17        last;
18    }
19
20    if (! $PARSER_CLASS) {
21        confess "Cannot find suitable parser class from @candidates";
22    }
23}
24
25with 'Data::Feed::Parser';
26
27__PACKAGE__->meta->make_immutable;
28
29no Moose;
30
31sub parse {
32    my ($self, $xmlref) = @_;
33
34    my $rss = $PARSER_CLASS->new();
35    $rss->parse($$xmlref);
36
37    return Data::Feed::RSS->new(feed => $rss);
38}
39
401;
41
42__END__
43
44=head1 NAME
45
46Data::Feed::Parser::RSS - Data::Feed RSS Parser
47
48=head1 METHODS
49
50=head2 parse
51
52=cut
Note: See TracBrowser for help on using the browser.