NAME

File::Sticker::Scribe::Yaml - read, write and standardize meta-data from YAML file

VERSION

version 4.00

SYNOPSIS

use File::Sticker::Scribe::Yaml;

my $obj = File::Sticker::Scribe::Yaml->new(%args);

my %meta = $obj->read_meta($filename);

$obj->write_meta(%args);

DESCRIPTION

This will read and write meta-data from YAML files, and standardize it to a common nomenclature, such as "tags" for things called tags, or Keywords or Subject etc.

DEBUGGING

whoami

Used for debugging info

METHODS

priority

The priority of this scribe. Scribes with higher priority get tried first.

allowed_file

If this scribe can be used for the given file, then this returns true. File must be plain text and end with '.yml' Howwever, if the file DOES NOT EXIST, it CAN be WRITTEN TO, so return true then as well. This is the only case where the file doesn't need to exist beforehand. Note that if the file exists and is a directory, then it is not an allowed file! If the file exists and is empty, that's okay too.

allowed_fields

If this scribe can be used for the known and wanted fields, then this returns true. For YAML, this always returns true.

    if ($scribe->allowed_fields())
    {
	....
    }

known_fields

Returns the fields which this scribe knows about. This scribe has no limitations.

my $known_fields = $scribe->known_fields();

read_meta

Read the meta-data from the given file.

my $meta = $obj->read_meta($filename);

delete_field_from_file

Completely remove the given field. This does no checking for multi-valued fields, it just deletes the whole thing.

$scribe->delete_field_from_file(filename=>$filename,field=>$field);

replace_all_meta

Overwrite the existing meta-data with that given.

(This supercedes the parent method because we can do it more efficiently this way)

$scribe->replace_all_meta(filename=>$filename,meta=>\%meta);

Helper Functions

Private interface.

replace_one_field

Overwrite the given field. This does no checking.

$scribe->replace_one_field(filename=>$filename,field=>$field,value=>$value);

BUGS

Please report any bugs or feature requests to the author.