NAME

App::Zapzi - store articles and publish them to read later

VERSION

version 0.004

DESCRIPTION

This class implements the application functions for Zapzi. See the page for the zapzi command for details on how to run it.

ATTRIBUTES

run

The current state of the application, -1 means nothing has been done, 0 OK, otherwise an error code. Used for exit code when the process terminates.

force

Option to force processing of the init command. Default is unset.

folder

Folder to work on. Default is 'Inbox'

zapzi_dir

The folder where Zapzi files are stored.

zapzi_ebook_dir

The folder where Zapzi published eBook files are stored.

database

The instance of App:Zapzi::Database used by the application.

test_database

If set, use an in-memory database. Used to speed up testing only.

METHODS

get_app =method BUILD

At construction time, a copy of the application object is stored and can be retrieved later via get_app.

process_args(@args)

Read the arguments @args (normally you'd pass in @ARGV and process them according to the command line specification for the application.

init

Creates the database. Will only do so if the database does not exist already or if the force attribute is set.

validate_folder

Determines if the folder specified exists.

list

Lists out the articles in folder.

list_folders

List a summary of folders in the database.

make_folder

Create one or more new folders. Will ignore any folders that already exist.

delete_folder

Remove one or more new folders. Will not allow removal of system folders ie Inbox and Archive, but will ignore removal of folders that do not exist.

delete_article

Remove an article from the database

add

Add an article to the database for later publication.

show

Outputs text of an article

publish

Publish a folder of articles to an eBook

help

Displays help text.

version

Displays version information.

AUTHOR

Rupert Lane <rupert@rupert-lane.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Rupert Lane.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.