NAME
App::Rssfilter::Feed::Storage - load and save RSS feeds as files
VERSION
version 0.07
SYNOPSIS
use App::Rssfilter::Feed::Storage;
my $fs = App::Rssfilter::Feed::Storage->new(
path => 'Hi-type feeds',
name => 'Hello',
);
print 'last update of feed was ', $fs->last_modified, "\n";
print 'what we got last time: ', $fs->load_existing, "\n";
$fs->save_feed( Mojo::DOM->new( "<hi>hello</hi>" ) );
print 'now it is: ', $fs->load_existing, "\n";
DESCRIPTION
This module saves and loads RSS feeds to and from files, where the file name is based on a group and feed name. It is the default implementation used by App::Rssfilter::Feed for storing & retreiving feeds.
It consumes the App::Rssfilter::Logger role.
ATTRIBUTES
logger
This is a object used for logging; it defaults to a Log::Any object. It is provided by the App::Rssfilter::Logger role.
path
This is the directory path to the stored feed file. If not specified, the current working directory will be used. It is coerced into a Path::Class::Dir object, if it is a string specifying an absolute or relative directory path, or an array or arrayref of directory names (which will be joined to form a directory path).
name
This is the name of the feed, and will be used as the filename to store the feed under.
last_modified
This is the last time the stored RSS feed was saved, as a HTTP date string suitable for use in a Last-Modified
header. If the feed has never been saved, returns Thu, 01 Jan 1970 00:00:00 GMT
. It cannot be set from the constructor.
METHODS
path_push
my $new_fs = $fs->path_push( @paths );
Returns a clone of this object whose path has had @paths
appended to it.
set_name
my $new_fs = $fs->set_name( $new_name );
Returns this object if its name is already $new_name
, else returns a clone of this object with its name set to $name
.
load_existing
print $fs->load_existing->to_xml;
Returns a Mojo::DOM object initialised with the content of the previously-saved feed. If the feed has never been saved, returns a Mojo::DOM object initialised with an empty string.
save_feed
$fs->save_feed( Mojo::DOM->new( '<rss> ... </rss>' ) );
Saves a Mojo::DOM object (or anything with a to_xml
method), and updates last_modified()
.
AUTHOR
Daniel Holz <dgholz@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Daniel Holz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.