NAME

Cantella::Store::UUID::File - File represented by a UUID

A NOTE ABOUT EXTENSIONS

To make file location deterministic, files are stored under only their UUID, along with their respective meta file which is named $UUID.meta eg (DD5EB40A-164B-11DE-9893-5FA9AE3835A0.meta). The meta files may contain any number of attributes relevant to the file such as original name, extension, MIME typ, etc. Meta files are stored in JSON format.

ATTRIBUTES

Cantella::Store::UUID is a subclass of Moose::Object. It inherits the new object provided by Moose. All attributes can be set using the new constructor method, or their respecitive writer method, if applicable.

uuid

uuid - reader

Required, read-only Data::GUID object, will automatically coerce.

dir

dir - reader

Required, read-only Path::Class::File object representing the directory where this file is stored. Automatically coercing.

path

path - reader
has_path - predicate
_build_path - builder
clear_path - clearer

Lazy-building, read-only Path::Class::File object representing the file being stored under this UUID.

metadata

metadata - accessor
has_metadata - predicate
_build_metadata - builder
clear_metadata - clearer

Lazy_building, read-write hashref which contains the file's metadata. Setting it with the writer method will write the data to disk, modifying the hashref directly will not.

_meta_file

_meta_file - reader
_has_meta_file - predicate
_build__meta_file - builder
clear__meta_file - clearer

Lazy-building, read-only Path::Class::File object pointing at the meta file.

METHODS

new

arguments: \%arguments
return value: $object_instance

Constructor.

write_metadata

arguments: none
return value: none

Write the contents of metadata to the metadata file.

remove

arguments: none
return value: $bool_success

Removes the file and metadata file from the store. Returns true if both are removed successfully. An exception will be thrown if there is an error deleting the files.

exists

arguments: none
return value: $bool

Checks for existence of both the file and the metadata file. Returns true only if both exist.

SEE ALSO

Cantella::Store::UUID

AUTHOR

Guillermo Roditi (groditi) <groditi@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2009 by Guillermo Roditi.

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