1.16 2005-12-03 16:34 Andrew Sterling Hanenkamp * t/07_layered.t: Added additional tests to reveal a bug that causes the root-level of the layered file systems to be treated as in the current directory during calls to children(), children_paths(), and has_children(). * lib/File/System/Layered.pm: Paths passed to lookup() are normalized as they should be. * lib/File/System/Layered.pm: Updated has_children(), children_paths(), children(), and child() so that they will treat layers besides the current properly. * lib/File/System/Object.pm: Updated has_content() and is_container() to make sure they always return a scalar. * lib/File/System/Test.pm: Improved the diagnostics messages of most methods in File::System::Test so that it is more obvious which part of a test failed. 1.15 2005-11-22 09:58 Andrew Sterling Hanenkamp * lib/File/System/Real.pm: Added more croaking when open() and opendir() failures occur to make errors a little more explicit. * lib/File/System/Object.pm: Fixed a bug where the glob() method would incorrectly call children_paths() on non-containers. This caused parts of the File::System::Table tests to fail since it depends upon the generic glob() implementation due to the improved error handling in File::System::Real. * lib/File/System/Real.pm: Removed a remaining call to File::Basename::dirname() that should have already been replaced with dirname_of_path(). * lib/File/System/Table.pm: Added better debugging information to the methods generated by an eval. * lib/File/System/Object.pm: Rearranged the module author documentation to make it more accessible and make the docs easier for non-module authors to read. * lib/File/System/Object.pm, lib/File/System.pm: Moved the section titled "FILE SYSTEM MODULE AUTHORS" out of File::System::Object and into File::System titled "VIRTUAL FILE SYSTEM" with some modifications. 1.14 2005-09-26 21:05 Andrew Sterling Hanenkamp * FIXED [cpan #14771] t/01_normalize_path.t, lib/File/System/Object.pm: Fixed a tiny off-by-one error that caused ".."'s to be mistreated by the normalize_path() method. * FIXED [cpan #13514] lib/File/System/Object.pm, lib/File/System/Table.pm, lib/File/System/Test.pm, lib/File/System/Real.pm: Removed basename/dirname calculations using the Perl File::Basename package. There's some controversy about the correct way to do this and the docs already specify that we do things the way Unix likes too anyway. That'll keep things consistent. Thanks to Zev Benjamin for the heads up. 1.13 2005-06-21 09:31 Andrew Sterling Hanenkamp * lib/File/System/Object.pm: Removed the Parse::RecDescent parser grammar that is used with the internal globber. * lib/File/System/Globber.PL: At build time this script generates a file named lib/File/System/Globber.pm containing the precompiled parser grammar, which ought to save a fraction of a second that was spend parsing the grammar and then compiling the Perl generated. Now, it just needs to compile the generated Perl. 1.12 2005-06-08 21:26 Andrew Sterling Hanenkamp * lib/File/System/Passthrough.pm: Updated the passthrough driver so that want subroutine passed to find() is passed objects of the same type as the current object, rather than objects of the wrapped type. This behavior is more consistent and allows a derivation to add new methods that the wrapped object may not have. 1.11 2005-05-19 09:37 Andrew Sterling Hanenkamp * lib/File/System/Layered.pm: Fixed find(), which was returning strange results in some of the layers did not contain an entry for a directory. 1.10 2005-05-18 20:53 Andrew Sterling Hanenkamp * t/03_real.t, t/04_table_basic.t, t/05_table_multimount.t, t/06_table_mount.t, t/07_layered.t, t/08_passthrough.t: Added tests for find() and glob() for directories within the root. * lib/File/System/Layered.pm: Fixed a bug that occurred when trying to glob a directory that existed in some, but not all roots. * lib/File/System/Object.pm: Corrected the way that glob() works so that it actually works. * lib/File/System/Test.pm: Corrected the test suite to allow for testing of glob() and find() not in the root. * lib/File/System/Real.pm: Altered glob() to use File::Glob::bsd_glob() which doesn't split globs on whitespace. 1.09 2005-05-18 08:50 Andrew Sterling Hanenkamp * lib/File/System/Layered.pm: Fixed a find() bug that caused it to fail to ever return when a path was passed (instead of using $self). * lib/File/System/Object.pm: Fixed a find() bug that caused it to fail to return anything when a path was passed (instead of using $self). * lib/File/System/Test.pm: Created additional tests within is_glob_and_find_consistent() to check that find() properly handles passed paths and that glob() works the same from the root as from a local object. 1.08 2005-05-08 21:39 Andrew Sterling Hanenkamp * lib/File/System.pm: This is repository fix because of a missed commit from 1.06. 1.07 2005-05-08 21:38 Andrew Sterling Hanenkamp * lib/File/System/Object.pm: Results of glob() and find() sorted. * lib/File/System/Real.pm: Results of glob() sorted. 1.06 2005-04-30 17:25 Andrew Sterling Hanenkamp * lib/File/System/Object.pm: Improved the "ne", "eq", and "cmp" operators through the use of some extra (and currently undocumented) methods. 1.05 2005-04-28 10:36 Andrew Sterling Hanenkamp * lib/File/System/Passthrough.pm: Added a passthrough driver that doesn't do anything on it's own. It's useful for subclassing. * t/08_passthrough.t: Copied the tests from t/03_real.t and modified the call to the constructor. 1.04 2005-04-23 09:39 Andrew Sterling Hanenkamp * Build.PL: Added support for Makefile.PL compatibility. 1.03 2005-04-16 23:17 Andrew Sterling Hanenkamp * ilb/File/System/Real.pm: Added an error check to the is_creatable() method. * lib/File/System/Layered.pm: Added the guts to File::System::Layered * t/07_layered.t: Added tests for File::System::Layered 1.03 2005-04-16 13:27 Andrew Sterling Hanenkamp * lib/File/System.pm: Fixed the POD abstract to meaningful for the whole File-System package. * lib/File/System/Table.pm: Fixed a documentation bug that refered to mkfile() still and replaeced it with a reference to create(). * lib/File/System/Layered.pm: Created a shell with documentation only. 1.02 2005-04-16 12:32 Andrew Sterling Hanenkamp * lib/File/System/Object.pm: Changed API again to add the create() method to replace the old (and inconsistent) mkdir/mfile methods. * lib/File/System/Object.pm: Added the is_creatable() method to the API. * lib/File/System/Real.pm: Removed the "special" methods mkdir() and mkfile() and replaced them with create() and added is_creatable(). * lib/File/System/Table.pm: Removed the mkdir() and mkfile() methods and replaced them with create() and added is_creatable(). * t/03_real.t: Altered tests for API changes. * t/04_table_basic.t: Altered tests for API changes. * t/05_table_multimount.t: Altered tests for API changes. * t/06_table_mount.t: Altered tests for API changes. * lib/File/System.pm: Updated the documentation. 1.02 2005-04-10 21:15 Andrew Sterling Hanenkamp * lib/File/System/Table: Altered the exists method to fit the new requirements. * t/04_table_basic.t: Altered this test to use the new test suite. * t/05_table_multimount.t: Added this test to test starting mounts. * t/06_table_mount.t: Added this test to test mount table changes. * *: Refactored the canonify method by renaming it to normalize_path. * *: Refactored the canonify_real method by renaming it to normalize_real_path. * t/01_canonify.t: Renamed to t/01_normalize_path.t 1.02 2005-04-08 08:46 Andrew Sterling Hanenkamp * lib/File/System/Test.pm: Finished the initial version of the test suite. * t/03_real.t: Altered this test to use the new test suite. * lib/File/System/Object.pm: Added a new requirement for module authors that the exists method should fallback to $self->path if none given. Added the necessary to the exists method to do that. * lib/File/System/Real.pm: Altered exists for new requirement. * lib/File/System/Object.pm: The canonify method complains if it is given undef for a path. * lib/File/System.pm: The factory method croaks better error messages. 1.02 2005-04-06 20:57 Andrew Sterling Hanenkamp * lib/File/System/Object.pm: Removed documentation for mkdir/mkfile API. We'll just pretend they don't exist for now. :) * lib/File/System/Real.pm: Added documentation for the special methods, mkdir and mkfile. * lib/File/System/Test.pm: Added a special test suite to help validate the creation of new file system drivers. 1.02 2005-03-28 07:47 Andrew Sterling Hanenkamp * lib/File/System.pm: Added comment about mkfile and mkdir API issue. * lib/File/System/Table.pm: Added a new file system object for mounting other file systems. 1.01 2005-03-26 16:01 Andrew Sterling Hanenkamp * README: Initial release. * lib/File/System/Object.pm: Contains an alpha version of the API. * lib/File/System/Real.pm: Initial implementation of a real FS.