CPAN-Testers-Metabase-Feed
view release on metacpan or search on metacpan
lib/CPAN/Testers/Metabase/Feed.pm view on Meta::CPAN
}
return $feed;
}
sub as_xml {
my $self = shift;
return $self->_feed->as_xml;
}
sub save {
my ($self, $filename) = @_;
Carp::croak( "No filename argument provided to save()" ) unless $filename;
return write_file( $filename, { atomic => 1, binmode => ":utf8" }, $self->as_xml );
}
my %creator_fn;
sub _creator_name {
my ($self, $resource) = @_;
return $creator_fn{$resource} if exists $creator_fn{$resource};
my $creator = $self->ct_metabase->public_librarian->extract( $resource->guid );
my ($fn_fact) = grep { ref $_ eq 'Metabase::User::FullName' } $creator->facts;
die "Couldn't find FullName for $resource" unless $fn_fact;
return $creator_fn{$resource} = $fn_fact->content;
}
__PACKAGE__->meta->make_immutable;
1;
=pod
=head1 NAME
CPAN::Testers::Metabase::Feed - Generate Atom feed for CPAN Testers Reports
=head1 VERSION
version 0.001
=head1 SYNOPSIS
use CPAN::Testers::Metabase::Feed;
use CPAN::Testers::Metabase::AWS;
my $mb = CPAN::Testers::Metabase::AWS->new(
bucket => 'myS3bucket',
namespace => 'prod'
);
my $feed = CPAN::Testers::Metabase::Feed->new( ct_metabase => $mb );
$feed->save('recent.xml');
=head1 DESCRIPTION
This module creates a 'recent reports' feed from a CPAN Testers Metabase
in Atom format. Each entry has a title with summary information. The content
is HTML-encoded, but when decoded is just JSON text with report metadata.
=head1 ATTRIBUTES
=head2 ct_metabase (required)
A CPAN::Testers::Metabase subclass that will be used to generate
a feed of recent reports.
=head2 since
An ISO8601 date time string. The feed will contain all reports since the given
date. It defaults to "now" minus one hour.
=head1 METHODS
=head2 as_xml
$feed->as_xml;
Returns the feed as a string in XML format.
=head2 save
$feed->save( $filename );
Saves the feed as XML to the given file. If the file exists, it is replaced
atomically.
=for Pod::Coverage method_names_here
=head1 SEE ALSO
=over
=item *
L<CPAN::Testers::Metabase>
=back
=head1 AUTHOR
David Golden <dagolden@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2010 by David Golden.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
=cut
__END__
( run in 0.942 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )