Revision history for Storage-Abstract 0.008 - 2026-02-26 - Added '%opts' argument to is_stored method - is_stored method can now be used to check whether a directory exists - Added '%opts' argument to dispose method - dispose method can now be used to remove an empty directory - Added '$directory' and '%opts' arguments to list method - list method can now be used on a single directory, with extra options to control listing behavior - [Breaking change] list no longer returns recursive results by default - [Breaking change] memory driver no longer permits storing files and directories under the same name 0.007 - 2025-03-08 - Added 'refresh' method to Storage::Abstract and its drivers - Defined 'public_url' extension key in retrieve properties - Internal refactoring of drivers and driver roles - Metadrivers performance improvements 0.006 - 2024-10-19 - Added superpath driver 0.005 - 2024-10-19 - Added X::Readonly, used to throw exception on readonly instead of X::StorageError - Metadrivers no longer have readonly attribute, they now report the readonly status of their sources - Driver::Composite now throws an exception on set_readonly - Driver implementations should now consume one of the roles from Storage::Abstract::Role namespace 0.004 - 2024-10-18 - Added create_directory option to Directory driver - Documentation fixes 0.003 - 2024-10-14 - Added subpath driver - Improved constructor behavior with hash references and driver instances - Driver name can now be prefixed with + to force full custom namespace - Changed the behavior of Composite driver - no longer catches errors raised in its sources - will not fall back to other sources if one of the sources encounters a problem - errors field was removed - sources field was renamed to source - Removed Feature::Compat::Try dependency - Increased minimum Type::Tiny version to 2 0.002 - 2024-10-13 - Added 'size' to list of common properties - Added 'list' delegated method to Storage::Abstract 0.001 - 2024-10-13 - First version