Blame Changes

Packit 0e0e0d
0.3.2   2017-01-13
Packit 0e0e0d
    - Made the version number consistent across the .pm files.
Packit 0e0e0d
        - https://bitbucket.org/shlomif/perl-file-find-object/issues/1/wrong-version-number
Packit 0e0e0d
        - Thanks to aer0 for the report.
Packit 0e0e0d
Packit 0e0e0d
0.3.1   2017-01-09
Packit 0e0e0d
    - Fixed an issue with tracking the depth of the inodes when detecting
Packit 0e0e0d
    a symlink loop.
Packit 0e0e0d
        - Detected by several cygwin reports.
Packit 0e0e0d
Packit 0e0e0d
0.3.0   2016-09-11
Packit 0e0e0d
    - Converted the build system to Dist-Zilla.
Packit 0e0e0d
        - Part of the impetus was removing the warning about
Packit 0e0e0d
        Test::TrailingSpace needed for the trailing whitespace tests
Packit 0e0e0d
        (which in turn requires this modules) which was reported to us as a
Packit 0e0e0d
        problem by someone (despite not being a real issue).
Packit 0e0e0d
Packit 0e0e0d
0.2.13  2015-04-07
Packit 0e0e0d
    - Clarified the documentation regarding the use/return of array
Packit 0e0e0d
    references.
Packit 0e0e0d
Packit 0e0e0d
0.2.12  2014-11-28
Packit 0e0e0d
    - Made sure no two t/*.t test scripts share temp paths.
Packit 0e0e0d
        - This caused failure with HARNESS_OPTIONS="j9".
Packit 0e0e0d
        - Thanks to ETHER for the report:
Packit 0e0e0d
            - http://www.cpantesters.org/cpan/report/2711a2ec-7401-11e4-8c78-d7697441a48b
Packit 0e0e0d
Packit 0e0e0d
0.2.11  2014-03-26
Packit 0e0e0d
    - Add $VERSION globally to all packages in lib/.
Packit 0e0e0d
        - This was done to silence some warnings from PAUSE.
Packit 0e0e0d
    - Add scripts/bump-version-number.pl to update it.
Packit 0e0e0d
Packit 0e0e0d
0.2.10  2014-03-26
Packit 0e0e0d
    - Correct a misspelling reported by dsteinbrunner.
Packit 0e0e0d
        - https://rt.cpan.org/Ticket/Display.html?id=94206
Packit 0e0e0d
    - Fix Build.PL by excluding the 'license' URL from the resources.
Packit 0e0e0d
        - New versions of Module::Build add it automatically.
Packit 0e0e0d
Packit 0e0e0d
0.2.9   2014-01-29
Packit 0e0e0d
    - Convert from "use base" to the more modern "use parent".
Packit 0e0e0d
    - Minimal version on perl-5.008 (CPANTS Kwalitee).
Packit 0e0e0d
    - Add the LICENSE file - CPANTS Kwalitee.
Packit 0e0e0d
Packit 0e0e0d
0.2.8   2013-08-17
Packit 0e0e0d
    - Fix https://rt.cpan.org/Ticket/Display.html?id=87901
Packit 0e0e0d
        - repository metadata duplication.
Packit 0e0e0d
Packit 0e0e0d
0.2.7   2013-05-21
Packit 0e0e0d
    - Convert this file to t/cpan-changes.t .
Packit 0e0e0d
Packit 0e0e0d
0.2.6   2012-11-25
Packit 0e0e0d
    - Correct a typo:
Packit 0e0e0d
        - see https://rt.cpan.org/Ticket/Display.html?id=81428
Packit 0e0e0d
        - Thanks to Xavier Guimard for the report.
Packit 0e0e0d
    - Remove trailing space.
Packit 0e0e0d
Packit 0e0e0d
0.2.5   2012-07-12
Packit 0e0e0d
    - Add the scripts/tag-release.pl script to tag a release in the
Packit 0e0e0d
    Mercurial repository.
Packit 0e0e0d
        - The problem is that I'm using different conventions for the
Packit 0e0e0d
        names of the tags in different repositories and wish to introduce
Packit 0e0e0d
        some consistency.
Packit 0e0e0d
Packit 0e0e0d
0.2.4   2012-07-12
Packit 0e0e0d
    - Update the link to the new repository at bitbucket.org.
Packit 0e0e0d
    - Add cleanup for a temporary directory in the tests.
Packit 0e0e0d
Packit 0e0e0d
0.2.3   2009-07-30
Packit 0e0e0d
    - 0.2.2 seems to have been deleted. Re-uploading.
Packit 0e0e0d
        - thanks to lwpetre
Packit 0e0e0d
Packit 0e0e0d
0.2.2   2009-06-25
Packit 0e0e0d
    - added some META.yml resources.
Packit 0e0e0d
        - added META.yml keywords.
Packit 0e0e0d
Packit 0e0e0d
0.2.1   2009-06-18
Packit 0e0e0d
    - Optimization: removed the _dir field of File::Find::Object::PathComp
Packit 0e0e0d
    and its _dir_copy copy-accessor, and replaced them all with passing
Packit 0e0e0d
    the $dir_str explicitly. This reduced the code considerably, and
Packit 0e0e0d
    eliminated a similar symptom to this one:
Packit 0e0e0d
        - http://en.wikipedia.org/wiki/Schlemiel_the_painter%27s_Algorithm
Packit 0e0e0d
    - Added the ->is_file() method to ::Result.
Packit 0e0e0d
    - Converted ::Result->is_dir() to use -d _
Packit 0e0e0d
    - Added ::Result->is_link().
Packit 0e0e0d
Packit 0e0e0d
0.2.0   2009-02-22
Packit 0e0e0d
    - Optimization: now not checking for the existence of the callback() after
Packit 0e0e0d
    every iteration, in case it doesn't exist. Instead, the default_actions
Packit 0e0e0d
    is calculated according to its existence when the tree traverser
Packit 0e0e0d
    is initialized.
Packit 0e0e0d
    - Refactoring/Optimization: avoided having two _set_obj() methds by
Packit 0e0e0d
    calling _set_obj() from _run_cb().
Packit 0e0e0d
Packit 0e0e0d
0.1.9   2009-02-10
Packit 0e0e0d
    - Added use integer to the modules, because they don't make use
Packit 0e0e0d
    of floating-point calculation. It may be a minor optimization, but then
Packit 0e0e0d
    again it may be not.
Packit 0e0e0d
    - Optimization: optimized the loop detection by having a hash lookup
Packit 0e0e0d
    of inodes in each path component, that are built incrementally and checked
Packit 0e0e0d
    for every subsequent node.
Packit 0e0e0d
    - Optimization: replaced the _top_it() of _me_die() with a normal method
Packit 0e0e0d
    with a conditional, as it was the only place where _top_it() was still
Packit 0e0e0d
    used.
Packit 0e0e0d
    - Optimization/Cleanup: _set_inodes() in ::DeepPath.
Packit 0e0e0d
    - Clarified the licensing blurbs of the .pm files.
Packit 0e0e0d
Packit 0e0e0d
0.1.8   2009-01-19
Packit 0e0e0d
    - Optimization/Refactoring: replaced the last call to ->_father with a
Packit 0e0e0d
    call to _current_father(). Removed ->_father and optimized
Packit 0e0e0d
    _current_father() .
Packit 0e0e0d
    - Optimization/Refactoring: refactored _become_default() to remove
Packit 0e0e0d
    the execessive use of $father and $father->idx(). Now ->idx() is
Packit 0e0e0d
    no longer needed and will be removed next.
Packit 0e0e0d
    - Optimization/Refactoring: removed the ->idx() method as it
Packit 0e0e0d
    was no longer used and needed.
Packit 0e0e0d
    - Optimization: instead of calling File::Find::Object::Result->new()
Packit 0e0e0d
    just bless to it.
Packit 0e0e0d
    - Optimization: now caching the filesystem device at
Packit 0e0e0d
    the top for nocrossfs().
Packit 0e0e0d
        - Plus: rearranged the order of the checks in
Packit 0e0e0d
        _non_top__check_subdir_helper
Packit 0e0e0d
    - Optimization/Refactoring: made the _top_it method names saner,
Packit 0e0e0d
    and removed an unused one.
Packit 0e0e0d
    - Refactoring: refactored _check_subdir_helper_d() to make
Packit 0e0e0d
    the conditions clearer.
Packit 0e0e0d
    - Optimization: now compiling the _check_subdir_helper function
Packit 0e0e0d
    by eval ""'ing it because it contains many conditions that depend
Packit 0e0e0d
    on instance-wide and constant parameters.
Packit 0e0e0d
    - Cleanup: moved some POD'ed out functions to under rejects/ .
Packit 0e0e0d
    - Optimization: renamed _calc_next_obj() to next_obj(), as next_obj()
Packit 0e0e0d
    just called it directly. Cleaned up the rest of the logic in next_obj().
Packit 0e0e0d
    - Bug fix: the nocrossfs option was fixed. Previously it used an undefined
Packit 0e0e0d
    method.
Packit 0e0e0d
Packit 0e0e0d
0.1.7   2009-01-15
Packit 0e0e0d
    - Fixed the check-for-link and for directory semantics on Windows
Packit 0e0e0d
    and other systems. Converted to "perldoc -f lstat" instead of
Packit 0e0e0d
    "perldoc -f stat", and using stat only for symbolic links to check
Packit 0e0e0d
    if they are directories. Now added a test for that.
Packit 0e0e0d
        - Fixed t/01ffo.t to check for the warning.
Packit 0e0e0d
        - Also see: http://www.nntp.perl.org/group/perl.perl5.porters/2009/01/msg143399.html
Packit 0e0e0d
    - Small optimization: converted a loop with:
Packit 0e0e0d
    while($ptr) { ... } continue { $ptr = $self->_father($ptr); }
Packit 0e0e0d
    to List::Util::first.
Packit 0e0e0d
    - Added more dependencies to Build.PL / Makefile.PL including
Packit 0e0e0d
    List::Util.
Packit 0e0e0d
Packit 0e0e0d
0.1.6   2009-01-09
Packit 0e0e0d
    - Converted the accessor generator to Class::XSAccessor instead
Packit 0e0e0d
    of Class::Accessor. After consulting Devel::NYTProf, it seemed that
Packit 0e0e0d
    the majority of the time of a simple File-Find-Object scan was spent
Packit 0e0e0d
    in Class::Accessor. Hopefully, this will make F-F-O run faster.
Packit 0e0e0d
    - A small optimization - added a flag to $self with whether the stack
Packit 0e0e0d
    is full or not. This is used inside _top_it() and _is_top().
Packit 0e0e0d
    - A small optimization - implemented _current directly instead of
Packit 0e0e0d
    a _top / _non_top version - saved 2.5 seconds of runtime.
Packit 0e0e0d
    - A small optimization - got rid of _current_components_copy() (which
Packit 0e0e0d
    was useless because _current_components already returns a dynamic
Packit 0e0e0d
    reference) and replaced all calls with calls to _current_components().
Packit 0e0e0d
    - A small optimization - ->dir() instead of ->_dir_copy() for
Packit 0e0e0d
    a function whose return value is dereferenced and flatted.
Packit 0e0e0d
    - A small optimization - now caching the results of _current_components
Packit 0e0e0d
    inside an accessor and updating it upon every change.
Packit 0e0e0d
    - A small optimization - now caching the results of _current_path()
Packit 0e0e0d
    upon every modification of _current_components, so File::Spec->catfile()
Packit 0e0e0d
    won't be called excessively.
Packit 0e0e0d
    - Optimization/Refactoring - changed the actions() handling so instead
Packit 0e0e0d
    of having the indices, we calculate an array of master actions at
Packit 0e0e0d
    start that correspond with the depth() parameter, and then assign it for
Packit 0e0e0d
    each PathComponent object in turn based on $top. This is instead of
Packit 0e0e0d
    the indexes and explicit calculations etc., which was both messier
Packit 0e0e0d
    and slower.
Packit 0e0e0d
    - Optimization/Refactoring - renamed _current_components() to
Packit 0e0e0d
    _curr_comps() and _current_path to _curr_path() to make them
Packit 0e0e0d
    shorter and faster. Added a comment explaining what they are.
Packit 0e0e0d
    - Optimization/Refactoring - optimized _calc_current_item_obj.
Packit 0e0e0d
    - Optimization - removed an _is_top() conditional in _recurse() that
Packit 0e0e0d
    was likely not to be evaluated, by re-arranging the order of _mystat
Packit 0e0e0d
    call. Now _mystat is not an action, but rather called explicitly.
Packit 0e0e0d
    _is_top() is now PODded-out because it's not used.
Packit 0e0e0d
    - Refactoring - made the top path component-handling object a separate
Packit 0e0e0d
    object (::PathTop) instead of $top/$tree . Hopefully, this will later
Packit 0e0e0d
    allow caching _current(), and having a unified directory stack.
Packit 0e0e0d
    - Refactoring - created a base class for Path-Components (i.e: ::PathTop
Packit 0e0e0d
    and ::PathComponent). Most of the methods out of ::Base belong there
Packit 0e0e0d
    so they were moved. This class inherits from ::Base, but there's not
Packit 0e0e0d
    a lot there anymore.
Packit 0e0e0d
    - Refactoring - renamed ::PathComponent as ::DeepPath and ::PathTop
Packit 0e0e0d
    as ::TopPath. Otherwise they could be confused with ::PathComp.
Packit 0e0e0d
    - Refactoring - made the first ::PathTop component the first element
Packit 0e0e0d
    in _dir_stack() so we won't need to keep in a distinct reference. All
Packit 0e0e0d
    the other elements moved 1 level down the stack.
Packit 0e0e0d
    - Optimization - now caching $top->_dir_stack()->[-1] into
Packit 0e0e0d
    $top->_current() as an accessor.
Packit 0e0e0d
Packit 0e0e0d
0.1.5   2009-01-03
Packit 0e0e0d
    - Unified the two calls to stat() (and several calls to other file
Packit 0e0e0d
    operators) in order to reduce the number of system calls/disk accesses
Packit 0e0e0d
    issued by File::Find::Object.
Packit 0e0e0d
    - Refactored the code from the last change and added
Packit 0e0e0d
    File::Find::Object::Result->stat_ret() for the return value of stat().
Packit 0e0e0d
Packit 0e0e0d
0.1.4   2008-12-25
Packit 0e0e0d
    - Bug fix: made sure ->item_obj() is available on the first call
Packit 0e0e0d
    to the callback() and is properly synchronized with it.
Packit 0e0e0d
Packit 0e0e0d
0.1.3   2008-11-12
Packit 0e0e0d
    - Refactoring: converted _movenext() from pseudo-conditionals
Packit 0e0e0d
    to polymorphism by making it a method of ->_current().
Packit 0e0e0d
    - Refactoring: extracted the _next_traverse_to() method.
Packit 0e0e0d
    - Bug fix (with possible correctness/SECURITY implications):
Packit 0e0e0d
        - now correctly handling files and directories whose filenames
Packit 0e0e0d
        are false in Perl - most notable "0".
Packit 0e0e0d
Packit 0e0e0d
0.1.2   2008-10-26
Packit 0e0e0d
    - Corrected the README.
Packit 0e0e0d
    - Now checking for inodes that are 0, when checking for cyclical trees,
Packit 0e0e0d
    as a fix for stat() calls on systems that do not support them. This should
Packit 0e0e0d
    fix Win32 test failures (and bad behaviour in general) like the following:          - http://nntp.x.perl.org/group/perl.cpan.testers/2479582
Packit 0e0e0d
Packit 0e0e0d
0.1.1   2008-10-22
Packit 0e0e0d
    - Potential Security Fix!!! No longer passing a filename directly to
Packit 0e0e0d
    the format in <<printf (STDERR)>> when warning on a loop.
Packit 0e0e0d
    - Bug fix - the check for a loop was broken.
Packit 0e0e0d
    - New Feature - Added the ->next_obj() and ->item_obj() methods
Packit 0e0e0d
    to return a File::Find::Object::Result object instead of a plain
Packit 0e0e0d
    path.
Packit 0e0e0d
    - Refactoring:
Packit 0e0e0d
        - No longer passing $current explicitly from one method to another
Packit 0e0e0d
        (hello EEK!). Instead, we reference $self->_current()
Packit 0e0e0d
        - Remmed out the DESTROY method as it was empty.
Packit 0e0e0d
        - Revamped the _action handling - an array instead of a hash.
Packit 0e0e0d
        - Created _top and _non_top methods delegated by _is_top using
Packit 0e0e0d
            _top_it()
Packit 0e0e0d
        - _current_idx() was eliminated - now it's just $#dir_stack.
Packit 0e0e0d
        - Created a _copy methods to create flat copies of array references.
Packit 0e0e0d
        - Extracted many methods.
Packit 0e0e0d
    - Switched Build.PL to inc/Test/Run/Builder.pm - that gives us:
Packit 0e0e0d
        - ./Build runtest
Packit 0e0e0d
        - ./Build distruntest
Packit 0e0e0d
        - ./Build tags
Packit 0e0e0d
Packit 0e0e0d
0.1.0   2008-03-05
Packit 0e0e0d
    - Now handling directories that cannot be opendir()'ed in a graceful
Packit 0e0e0d
    manner - just not traversing them further.
Packit 0e0e0d
Packit 0e0e0d
0.0.9   2008-02-22
Packit 0e0e0d
    - Now running canonpath() on the targets in the call to
Packit 0e0e0d
      File::Find::Object->new. That way, trailing slashes are omitted in
Packit 0e0e0d
      the results.
Packit 0e0e0d
    - Allow File::Find::Object to properly accept paths to regular
Packit 0e0e0d
      files as input paths. Fixes:
Packit 0e0e0d
        http://rt.cpan.org/Public/Bug/Display.html?id=33453
Packit 0e0e0d
      Thanks to Sergey V Panteleev for reporting the bug.
Packit 0e0e0d
    - TODO : check behavior on traversing non-existant paths.
Packit 0e0e0d
        - Done.
Packit 0e0e0d
    - Now skipping non-existant files.
Packit 0e0e0d
        - Added a test for it in t/03traverse.t
Packit 0e0e0d
Packit 0e0e0d
0.0.8   2007-07-31
Packit 0e0e0d
    - added the empty PL_FILES key to the Makefile.PL to avoid running
Packit 0e0e0d
    Build.PL on older versions of EU::MM.
Packit 0e0e0d
Packit 0e0e0d
0.0.7   2007-02-02
Packit 0e0e0d
    - moved the tree script under the examples directory.
Packit 0e0e0d
    - added the LICENSE section to the POD.
Packit 0e0e0d
    - added t/pod.t and t/pod-coverage.t and made sure the module
Packit 0e0e0d
      has full POD coverage.
Packit 0e0e0d
    - added a Build.PL build script to generate a better META.yml file.
Packit 0e0e0d
    - all of these are Kwalitee improvements.
Packit 0e0e0d
      ( http://cpants.perl.org/dist/File-Find-Object )
Packit 0e0e0d
    - Added some links to the main POD documentation for similar modules
Packit 0e0e0d
      and for the Perl Advent article.
Packit 0e0e0d
Packit 0e0e0d
0.0.6   2006-11-28
Packit 0e0e0d
    - Added the following new interface methods:
Packit 0e0e0d
        - set_traverse_to
Packit 0e0e0d
        - get_traverse_to
Packit 0e0e0d
        - get_current_node_files_list
Packit 0e0e0d
        - prune
Packit 0e0e0d
    - Some changes to the internals to accomodate for them.
Packit 0e0e0d
Packit 0e0e0d
0.0.5   2006-09-03
Packit 0e0e0d
    - Eliminated the F-F-O-internal isa F-F-O relationship.
Packit 0e0e0d
    - Created accessors for everything - now based on Class::Accessor
Packit 0e0e0d
    - F-F-O-internal is now named File::Find::Object::PathComponent
Packit 0e0e0d
    - Some smaller refactorings.
Packit 0e0e0d
Packit 0e0e0d
0.0.4   2006-08-23
Packit 0e0e0d
    - Eliminated circular references. (Hopefully)
Packit 0e0e0d
        - Still have an isa relationship between File::Find::Object and
Packit 0e0e0d
        File::Find::Object::internal, which is what handles each recursed to
Packit 0e0e0d
        directory.
Packit 0e0e0d
    - Created some accessor functions instead of direct hash accesses.
Packit 0e0e0d
Packit 0e0e0d
0.0.3   2006-07-14
Packit 0e0e0d
    - Fixed some language problems in the POD.
Packit 0e0e0d
    - Added the Changes file.
Packit 0e0e0d
    - Changed the license to GPL/Artistic/Artistic-2.0
Packit 0e0e0d
    - Placed the .pm files inside lib.
Packit 0e0e0d
    - Added the TreeCreate module under t/lib (with appropriate tests) to test
Packit 0e0e0d
    the main module.
Packit 0e0e0d
    - Made the default test order lexicographical, and predictable. In the
Packit 0e0e0d
    process, eliminated keeping the directory handles, and possibly the fact
Packit 0e0e0d
    that they are kept open.
Packit 0e0e0d
    - Fixed a bug where circular references prevented the module from being
Packit 0e0e0d
    destroyed.
Packit 0e0e0d