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.