The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Statocles::Store::File - A store made up of plain files

VERSION

version 0.032

DESCRIPTION

This store reads/writes files from the filesystem.

Frontmatter Document Format

Documents are formatted with a YAML document on top, and Markdown content on the bottom, like so:

    ---
    title: This is a title
    author: preaction
    ---
    # This is the markdown content
    
    This is a paragraph

ATTRIBUTES

path

The path to the directory containing the documents.

documents

All the documents currently read by this store.

METHODS

clear()

Clear the cached documents in this Store.

read_documents()

Read the directory path and create the document objects inside.

read_document( path )

Read a single document in Markdown with optional YAML frontmatter and return a datastructure suitable to be given to Statocles::Document.

write_document( $path, $doc )

Write a document to the store. Returns the full path to the newly-updated document.

The document is written in Frontmatter format.

read_file( $path )

Read the file from the given path.

has_file( $path )

Returns true if a file exists with the given path.

NOTE: This should not be used to check for directories, as not all stores have directories.

find_files()

Returns an iterator that, when called, produces a single path suitable to be passed to read_file.

open_file( $path )

Open the file with the given path. Returns a filehandle.

The filehandle opened is using raw bytes, not UTF-8 characters.

write_file( $path, $content )

Write the given content to the given path. This is mostly used to write out page objects.

content may be a simple string or a filehandle. If given a string, will write the string using UTF-8 characters. If given a filehandle, will write out the raw bytes read from it with no special encoding.

AUTHOR

Doug Bell <preaction@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Doug Bell.

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