Imported Upstream version 0.2.13
gregor herrmann
8 years ago
0 | 0.2.13 2015-04-07 | |
1 | - Clarified the documentation regarding the use/return of array | |
2 | references. | |
3 | ||
4 | 0.2.12 2014-11-28 | |
5 | - Made sure no two t/*.t test scripts share temp paths. | |
6 | - This caused failure with HARNESS_OPTIONS="j9". | |
7 | - Thanks to ETHER for the report: | |
8 | - http://www.cpantesters.org/cpan/report/2711a2ec-7401-11e4-8c78-d7697441a48b | |
9 | ||
0 | 10 | 0.2.11 2014-03-26 |
1 | 11 | - Add $VERSION globally to all packages in lib/. |
2 | 12 | - This was done to silence some warnings from PAUSE. |
7 | 7 | lib/File/Find/Object/Result.pm |
8 | 8 | LICENSE |
9 | 9 | Makefile.PL |
10 | MANIFEST This list of files | |
10 | MANIFEST This list of files | |
11 | 11 | META.yml Module meta-data (added by MakeMaker) |
12 | 12 | README |
13 | 13 | rejects/File/Find/Object.pm |
0 | 0 | { |
1 | 1 | "abstract" : "An object oriented File::Find replacement", |
2 | "author" : [], | |
2 | "author" : [ | |
3 | "unknown" | |
4 | ], | |
3 | 5 | "dynamic_config" : 1, |
4 | "generated_by" : "Module::Build version 0.4205", | |
6 | "generated_by" : "Module::Build version 0.421", | |
5 | 7 | "keywords" : [ |
6 | 8 | "alternative-to-core", |
7 | 9 | "directories", |
61 | 63 | "provides" : { |
62 | 64 | "File::Find::Object" : { |
63 | 65 | "file" : "lib/File/Find/Object.pm", |
64 | "version" : "v0.2.11" | |
66 | "version" : "v0.2.13" | |
65 | 67 | }, |
66 | 68 | "File::Find::Object::Base" : { |
67 | 69 | "file" : "lib/File/Find/Object/Base.pm", |
68 | "version" : "v0.2.11" | |
70 | "version" : "v0.2.13" | |
69 | 71 | }, |
70 | 72 | "File::Find::Object::DeepPath" : { |
71 | 73 | "file" : "lib/File/Find/Object.pm", |
72 | "version" : "v0.2.11" | |
74 | "version" : "v0.2.13" | |
73 | 75 | }, |
74 | 76 | "File::Find::Object::PathComp" : { |
75 | 77 | "file" : "lib/File/Find/Object/PathComp.pm", |
76 | "version" : "v0.2.11" | |
78 | "version" : "v0.2.13" | |
77 | 79 | }, |
78 | 80 | "File::Find::Object::Result" : { |
79 | 81 | "file" : "lib/File/Find/Object/Result.pm", |
80 | "version" : "v0.2.11" | |
82 | "version" : "v0.2.13" | |
81 | 83 | }, |
82 | 84 | "File::Find::Object::TopPath" : { |
83 | 85 | "file" : "lib/File/Find/Object.pm", |
84 | "version" : "v0.2.11" | |
86 | "version" : "v0.2.13" | |
85 | 87 | } |
86 | 88 | }, |
87 | 89 | "release_status" : "stable", |
94 | 96 | "url" : "https://bitbucket.org/shlomif/perl-file-find-object" |
95 | 97 | } |
96 | 98 | }, |
97 | "version" : "v0.2.11" | |
99 | "version" : "v0.2.13" | |
98 | 100 | } |
7 | 7 | configure_requires: |
8 | 8 | Module::Build: '0.36' |
9 | 9 | dynamic_config: 1 |
10 | generated_by: 'Module::Build version 0.4205, CPAN::Meta::Converter version 2.140640' | |
10 | generated_by: 'Module::Build version 0.421, CPAN::Meta::Converter version 2.142060' | |
11 | 11 | keywords: |
12 | 12 | - alternative-to-core |
13 | 13 | - directories |
37 | 37 | provides: |
38 | 38 | File::Find::Object: |
39 | 39 | file: lib/File/Find/Object.pm |
40 | version: v0.2.11 | |
40 | version: v0.2.13 | |
41 | 41 | File::Find::Object::Base: |
42 | 42 | file: lib/File/Find/Object/Base.pm |
43 | version: v0.2.11 | |
43 | version: v0.2.13 | |
44 | 44 | File::Find::Object::DeepPath: |
45 | 45 | file: lib/File/Find/Object.pm |
46 | version: v0.2.11 | |
46 | version: v0.2.13 | |
47 | 47 | File::Find::Object::PathComp: |
48 | 48 | file: lib/File/Find/Object/PathComp.pm |
49 | version: v0.2.11 | |
49 | version: v0.2.13 | |
50 | 50 | File::Find::Object::Result: |
51 | 51 | file: lib/File/Find/Object/Result.pm |
52 | version: v0.2.11 | |
52 | version: v0.2.13 | |
53 | 53 | File::Find::Object::TopPath: |
54 | 54 | file: lib/File/Find/Object.pm |
55 | version: v0.2.11 | |
55 | version: v0.2.13 | |
56 | 56 | requires: |
57 | 57 | Carp: '0' |
58 | 58 | Class::XSAccessor: '0' |
67 | 67 | homepage: http://www.shlomifish.org/open-source/projects/File-Find-Object/ |
68 | 68 | license: http://www.perlfoundation.org/artistic_license_2_0 |
69 | 69 | repository: https://bitbucket.org/shlomif/perl-file-find-object |
70 | version: v0.2.11 | |
70 | version: v0.2.13 |
2 | 2 | use ExtUtils::MakeMaker; |
3 | 3 | |
4 | 4 | sub MY::postamble { |
5 | <<MAKECHANGELOG; | |
5 | <<"MAKECHANGELOG"; | |
6 | 6 | .PHONY: ChangeLog |
7 | 7 | |
8 | 8 | ChangeLog: |
9 | cvs2cl -W 400 -I ChangeLog --accum -U ../common/username | |
10 | rm -f *.bak | |
9 | \tcvs2cl -W 400 -I ChangeLog --accum -U ../common/username | |
10 | \trm -f *.bak | |
11 | 11 | |
12 | 12 | MAKECHANGELOG |
13 | 13 | } |
14 | 14 | |
15 | 15 | WriteMakefile( |
16 | NAME => 'File::Find::Object', | |
16 | NAME => 'File::Find::Object', | |
17 | 17 | VERSION_FROM => 'lib/File/Find/Object.pm', |
18 | PREREQ_PM => | |
18 | PREREQ_PM => | |
19 | 19 | { |
20 | 20 | 'base' => 0, |
21 | 21 | 'Carp' => 0, |
27 | 27 | 'strict' => 0, |
28 | 28 | 'warnings' => 0, 'Test::More' => 0, |
29 | 29 | }, |
30 | PL_FILES => {}, | |
30 | PL_FILES => {}, | |
31 | 31 | ); |
19 | 19 | |
20 | 20 | # Make sure we test the module in blib/ |
21 | 21 | unshift @INC, (File::Spec->catdir($p->{base_dir}, $self->blib, 'lib'), |
22 | File::Spec->catdir($p->{base_dir}, $self->blib, 'arch')); | |
22 | File::Spec->catdir($p->{base_dir}, $self->blib, 'arch')); | |
23 | 23 | |
24 | 24 | $self->do_test_run_tests; |
25 | 25 | } |
67 | 67 | $self->do_system( |
68 | 68 | "ctags", |
69 | 69 | qw(-f tags --recurse --totals |
70 | --exclude=blib/** --exclude=t/lib/** | |
71 | --exclude=**/.svn/** --exclude='*~'), | |
70 | --exclude=blib/** --exclude=t/lib/** | |
71 | --exclude=**/.svn/** --exclude='*~'), | |
72 | 72 | "--exclude=".$self->dist_name()."-*/**", |
73 | 73 | qw(--languages=Perl --langmap=Perl:+.t) |
74 | 74 | ); |
2 | 2 | use strict; |
3 | 3 | use warnings; |
4 | 4 | |
5 | our $VERSION = '0.2.11'; | |
5 | our $VERSION = '0.2.13'; | |
6 | 6 | |
7 | 7 | use integer; |
8 | 8 | |
12 | 12 | # |
13 | 13 | |
14 | 14 | use Class::XSAccessor |
15 | accessors => { | |
15 | accessors => { | |
16 | 16 | (map |
17 | 17 | { $_ => $_ } |
18 | 18 | (qw( |
2 | 2 | use strict; |
3 | 3 | use warnings; |
4 | 4 | |
5 | our $VERSION = '0.2.11'; | |
5 | our $VERSION = '0.2.13'; | |
6 | 6 | |
7 | 7 | use integer; |
8 | 8 | |
9 | 9 | use parent 'File::Find::Object::Base'; |
10 | 10 | |
11 | 11 | use Class::XSAccessor |
12 | accessors => { | |
12 | accessors => { | |
13 | 13 | (map |
14 | 14 | { $_ => $_ } |
15 | 15 | (qw( |
2 | 2 | use strict; |
3 | 3 | use warnings; |
4 | 4 | |
5 | our $VERSION = '0.2.11'; | |
5 | our $VERSION = '0.2.13'; | |
6 | 6 | |
7 | 7 | use integer; |
8 | 8 | |
100 | 100 | Returns the full components of the result with the basename if it is |
101 | 101 | a file. |
102 | 102 | |
103 | Returns a single array reference. | |
104 | ||
103 | 105 | =head2 $result->stat_ret() |
104 | 106 | |
105 | 107 | The return value of L<perlfunc/stat> for the result, placed |
2 | 2 | use strict; |
3 | 3 | use warnings; |
4 | 4 | |
5 | our $VERSION = '0.2.11'; | |
5 | our $VERSION = '0.2.13'; | |
6 | 6 | |
7 | 7 | use 5.008; |
8 | 8 | |
59 | 59 | |
60 | 60 | package File::Find::Object::TopPath; |
61 | 61 | |
62 | our $VERSION = '0.2.11'; | |
62 | our $VERSION = '0.2.13'; | |
63 | 63 | |
64 | 64 | use parent 'File::Find::Object::PathComp'; |
65 | 65 | |
177 | 177 | |
178 | 178 | use Carp; |
179 | 179 | |
180 | our $VERSION = '0.2.11'; | |
180 | our $VERSION = '0.2.13'; | |
181 | 181 | |
182 | 182 | sub new { |
183 | 183 | my ($class, $options, @targets) = @_; |
713 | 713 | Sets the children to traverse to from the current node. Useful for pruning |
714 | 714 | items to traverse. |
715 | 715 | |
716 | Accepts a single array reference. | |
717 | ||
718 | Example: | |
719 | ||
720 | $ff->set_traverse_to([ grep { ! /\A\./ } @{ $ff->get_traverse_to }]); | |
721 | ||
716 | 722 | =head2 $ff->prune() |
717 | 723 | |
718 | 724 | Prunes the current directory. Equivalent to $ff->set_traverse_to([]). |
719 | 725 | |
720 | 726 | =head2 [@children] = $ff->get_traverse_to() |
721 | 727 | |
722 | Retrieves the children that will be traversed to. | |
728 | Retrieves the children that will be traversed to. Returns a single array | |
729 | reference. | |
730 | ||
731 | (Example under C<set_traverse_to>). | |
723 | 732 | |
724 | 733 | =head2 [@files] = $ff->get_current_node_files_list() |
725 | 734 | |
726 | Gets all the files that appear in the current directory. This value is | |
727 | constant for every node, and is useful to use as the basis of the argument | |
728 | for C<set_traverse_to()>. | |
735 | Gets all the files that appear in the current directory. This value remains | |
736 | constant for every node, even after traversal or calls to C<set_traverse_to()> | |
737 | and is useful to use as the basis of the argument for C<set_traverse_to()>. | |
738 | ||
739 | Returns a single array reference. | |
729 | 740 | |
730 | 741 | =head1 BUGS |
731 | 742 |
60 | 60 | "Checking the cat method"); |
61 | 61 | |
62 | 62 | { |
63 | mkdir ($t->get_path("./t/sample-data/ls-test")); | |
64 | mkdir ($t->get_path("./t/sample-data/ls-test/a")); | |
65 | open O, ">", $t->get_path("./t/sample-data/ls-test/b.txt"); | |
66 | print O "Yowza"; | |
67 | close(O); | |
68 | mkdir ($t->get_path("./t/sample-data/ls-test/c")); | |
69 | open O, ">", $t->get_path("./t/sample-data/ls-test/h.xls"); | |
70 | print O "FooBardom!\n"; | |
71 | close(O); | |
63 | mkdir ($t->get_path("./t/sample-data/tree-create-ls-test")); | |
64 | mkdir ($t->get_path("./t/sample-data/tree-create-ls-test/a")); | |
65 | { | |
66 | open my $out_fh, ">", $t->get_path("./t/sample-data/tree-create-ls-test/b.txt"); | |
67 | print {$out_fh} "Yowza"; | |
68 | close ($out_fh); | |
69 | } | |
70 | mkdir ($t->get_path("./t/sample-data/tree-create-ls-test/c")); | |
71 | { | |
72 | open my $out_fh, ">", $t->get_path("./t/sample-data/tree-create-ls-test/h.xls"); | |
73 | print {$out_fh} "FooBardom!\n"; | |
74 | close ($out_fh); | |
75 | } | |
72 | 76 | # TEST |
73 | is_deeply ($t->ls("./t/sample-data/ls-test"), | |
77 | is_deeply ($t->ls("./t/sample-data/tree-create-ls-test"), | |
74 | 78 | ["a","b.txt","c","h.xls"], |
75 | 79 | "Testing the ls method", |
76 | 80 | ); |
77 | 81 | # Cleanup |
78 | rmtree ($t->get_path("./t/sample-data/ls-test")); | |
82 | rmtree ($t->get_path("./t/sample-data/tree-create-ls-test")); | |
79 | 83 | } |
80 | 84 | |
81 | 85 | { |
82 | 86 | my $tree = |
83 | 87 | { |
84 | 'name' => "tree-test-1/", | |
88 | 'name' => "tree-create--tree-test-1/", | |
85 | 89 | 'subs' => |
86 | 90 | [ |
87 | 91 | { |
106 | 110 | $t->create_tree("./t/sample-data/", $tree); |
107 | 111 | |
108 | 112 | # TEST |
109 | is_deeply ($t->ls("./t/sample-data/tree-test-1"), | |
113 | is_deeply ($t->ls("./t/sample-data/tree-create--tree-test-1"), | |
110 | 114 | ["a", "b.doc", "foo"], |
111 | 115 | "Testing the contents of the root tree" |
112 | 116 | ); |
113 | 117 | |
114 | 118 | # TEST |
115 | ok ($t->is_dir("./t/sample-data/tree-test-1/a"), | |
119 | ok ($t->is_dir("./t/sample-data/tree-create--tree-test-1/a"), | |
116 | 120 | "a is a dir" |
117 | 121 | ); |
118 | 122 | |
119 | 123 | # TEST |
120 | is_deeply ($t->ls("./t/sample-data/tree-test-1/a"), | |
124 | is_deeply ($t->ls("./t/sample-data/tree-create--tree-test-1/a"), | |
121 | 125 | [], |
122 | 126 | "Testing the contents of a" |
123 | 127 | ); |
124 | 128 | |
125 | 129 | # TEST |
126 | is_deeply ($t->ls("./t/sample-data/tree-test-1/foo"), | |
130 | is_deeply ($t->ls("./t/sample-data/tree-create--tree-test-1/foo"), | |
127 | 131 | ["yet"], |
128 | 132 | "Testing the contents of foo" |
129 | 133 | ); |
130 | 134 | |
131 | 135 | # TEST |
132 | ok ($t->is_dir("./t/sample-data/tree-test-1/foo/yet"), | |
136 | ok ($t->is_dir("./t/sample-data/tree-create--tree-test-1/foo/yet"), | |
133 | 137 | "Testing that foo/yet is a dir" |
134 | 138 | ); |
135 | 139 | |
136 | 140 | # TEST |
137 | is_deeply ($t->ls("./t/sample-data/tree-test-1/foo/yet"), | |
141 | is_deeply ($t->ls("./t/sample-data/tree-create--tree-test-1/foo/yet"), | |
138 | 142 | [], |
139 | 143 | "Testing that foo/yet is a dir" |
140 | 144 | ); |
141 | 145 | |
142 | 146 | # TEST |
143 | ok ($t->is_file("./t/sample-data/tree-test-1/b.doc"), | |
147 | ok ($t->is_file("./t/sample-data/tree-create--tree-test-1/b.doc"), | |
144 | 148 | "Checking that b.doc is a file" |
145 | 149 | ); |
146 | 150 | |
147 | 151 | # TEST |
148 | is ($t->cat("./t/sample-data/tree-test-1/b.doc"), | |
152 | is ($t->cat("./t/sample-data/tree-create--tree-test-1/b.doc"), | |
149 | 153 | "This file was spotted in the wild.", |
150 | 154 | "Checking for contents of b.doc" |
151 | 155 | ); |
152 | 156 | |
153 | 157 | # Cleanup |
154 | rmtree ($t->get_path("./t/sample-data/tree-test-1")); | |
158 | rmtree ($t->get_path("./t/sample-data/tree-create--tree-test-1")); | |
155 | 159 | } |
156 | 160 | { |
157 | 161 | # TEST |
18 | 18 | { |
19 | 19 | my $tree = |
20 | 20 | { |
21 | 'name' => "traverse-1/", | |
21 | 'name' => "traverse--traverse-1/", | |
22 | 22 | 'subs' => |
23 | 23 | [ |
24 | 24 | { |
45 | 45 | my $ff = |
46 | 46 | File::Find::Object->new( |
47 | 47 | {}, |
48 | $t->get_path("./t/sample-data/traverse-1") | |
48 | $t->get_path("./t/sample-data/traverse--traverse-1") | |
49 | 49 | ); |
50 | 50 | my @results; |
51 | 51 | for my $i (1 .. 6) |
55 | 55 | # TEST |
56 | 56 | is_deeply( |
57 | 57 | \@results, |
58 | [(map { $t->get_path("t/sample-data/traverse-1/$_") } | |
58 | [(map { $t->get_path("t/sample-data/traverse--traverse-1/$_") } | |
59 | 59 | ("", qw( |
60 | 60 | a |
61 | 61 | b.doc |
67 | 67 | "Checking for regular, lexicographically sorted order", |
68 | 68 | ); |
69 | 69 | |
70 | rmtree($t->get_path("./t/sample-data/traverse-1")); | |
71 | } | |
72 | ||
73 | { | |
74 | my $test_id = "traverse-dirs-and-files"; | |
70 | rmtree($t->get_path("./t/sample-data/traverse--traverse-1")); | |
71 | } | |
72 | ||
73 | { | |
74 | my $test_id = "traverse--traverse-dirs-and-files"; | |
75 | 75 | my $test_dir = "t/sample-data/$test_id"; |
76 | 76 | my $tree = |
77 | 77 | { |
136 | 136 | } |
137 | 137 | |
138 | 138 | { |
139 | my $test_id = "dont-traverse-non-existing-files"; | |
139 | my $test_id = "traverse--dont-traverse-non-existing-files"; | |
140 | 140 | my $test_dir = "t/sample-data/$test_id"; |
141 | 141 | my $tree = |
142 | 142 | { |
229 | 229 | } |
230 | 230 | |
231 | 231 | { |
232 | my $test_id = "handle-non-accessible-dirs-gracefully"; | |
232 | my $test_id = "traverse--handle-non-accessible-dirs-gracefully"; | |
233 | 233 | my $test_dir = "t/sample-data/$test_id"; |
234 | 234 | my $tree = |
235 | 235 | { |
312 | 312 | { |
313 | 313 | my $tree = |
314 | 314 | { |
315 | 'name' => "traverse-1/", | |
315 | 'name' => "traverse--traverse-1/", | |
316 | 316 | 'subs' => |
317 | 317 | [ |
318 | 318 | { |
343 | 343 | my $ff = |
344 | 344 | File::Find::Object->new( |
345 | 345 | {}, |
346 | $t->get_path("./t/sample-data/traverse-1") | |
346 | $t->get_path("./t/sample-data/traverse--traverse-1") | |
347 | 347 | ); |
348 | 348 | |
349 | 349 | { |
350 | 350 | my $r = $ff->next_obj(); |
351 | 351 | |
352 | 352 | # TEST |
353 | is ($r->path(), $t->get_path("t/sample-data/traverse-1/"), "Path"); | |
354 | ||
355 | # TEST | |
356 | is ($r->base(), $t->get_path("./t/sample-data/traverse-1"), "Base"); | |
353 | is ($r->path(), $t->get_path("t/sample-data/traverse--traverse-1/"), "Path"); | |
354 | ||
355 | # TEST | |
356 | is ($r->base(), $t->get_path("./t/sample-data/traverse--traverse-1"), "Base"); | |
357 | 357 | |
358 | 358 | # TEST |
359 | 359 | is_deeply ($r->dir_components(), [], "Dir_Components are empty"); |
372 | 372 | my $r = $ff->next_obj(); |
373 | 373 | |
374 | 374 | # TEST |
375 | is ($r->path(), $t->get_path("t/sample-data/traverse-1/a"), "Path"); | |
376 | ||
377 | # TEST | |
378 | is ($r->base(), $t->get_path("./t/sample-data/traverse-1"), "Base"); | |
375 | is ($r->path(), $t->get_path("t/sample-data/traverse--traverse-1/a"), "Path"); | |
376 | ||
377 | # TEST | |
378 | is ($r->base(), $t->get_path("./t/sample-data/traverse--traverse-1"), "Base"); | |
379 | 379 | |
380 | 380 | # TEST |
381 | 381 | is_deeply ($r->dir_components(), [qw(a)], "Dir_Components are 'a'"); |
391 | 391 | my $r = $ff->next_obj(); |
392 | 392 | |
393 | 393 | # TEST |
394 | is ($r->path(), $t->get_path("t/sample-data/traverse-1/b.doc"), "Path"); | |
395 | ||
396 | # TEST | |
397 | is ($r->base(), $t->get_path("./t/sample-data/traverse-1"), "Base"); | |
394 | is ($r->path(), $t->get_path("t/sample-data/traverse--traverse-1/b.doc"), "Path"); | |
395 | ||
396 | # TEST | |
397 | is ($r->base(), $t->get_path("./t/sample-data/traverse--traverse-1"), "Base"); | |
398 | 398 | |
399 | 399 | # TEST |
400 | 400 | is_deeply ($r->dir_components(), [], "Dir_Components are empty"); |
418 | 418 | my $r = $ff->next_obj(); |
419 | 419 | |
420 | 420 | # TEST |
421 | is ($r->path(), $t->get_path("t/sample-data/traverse-1/foo"), "Path"); | |
422 | ||
423 | # TEST | |
424 | is ($r->base(), $t->get_path("./t/sample-data/traverse-1"), "Base"); | |
421 | is ($r->path(), $t->get_path("t/sample-data/traverse--traverse-1/foo"), "Path"); | |
422 | ||
423 | # TEST | |
424 | is ($r->base(), $t->get_path("./t/sample-data/traverse--traverse-1"), "Base"); | |
425 | 425 | |
426 | 426 | # TEST |
427 | 427 | is_deeply ($r->dir_components(), [qw(foo)], |
441 | 441 | my $r = $ff->next_obj(); |
442 | 442 | |
443 | 443 | # TEST |
444 | is ($r->path(), $t->get_path("t/sample-data/traverse-1/foo/file.txt"), | |
444 | is ($r->path(), $t->get_path("t/sample-data/traverse--traverse-1/foo/file.txt"), | |
445 | 445 | "Path", |
446 | 446 | ); |
447 | 447 | |
448 | 448 | # TEST |
449 | is ($r->base(), $t->get_path("./t/sample-data/traverse-1"), | |
449 | is ($r->base(), $t->get_path("./t/sample-data/traverse--traverse-1"), | |
450 | 450 | "Base" |
451 | 451 | ); |
452 | 452 | |
471 | 471 | my $r = $ff->next_obj(); |
472 | 472 | |
473 | 473 | # TEST |
474 | is ($r->path(), $t->get_path("t/sample-data/traverse-1/foo/yet"), | |
474 | is ($r->path(), $t->get_path("t/sample-data/traverse--traverse-1/foo/yet"), | |
475 | 475 | "Path", |
476 | 476 | ); |
477 | 477 | |
478 | 478 | # TEST |
479 | is ($r->base(), $t->get_path("./t/sample-data/traverse-1"), "Base"); | |
479 | is ($r->base(), $t->get_path("./t/sample-data/traverse--traverse-1"), "Base"); | |
480 | 480 | |
481 | 481 | # TEST |
482 | 482 | is_deeply ($r->dir_components(), [qw(foo yet)], |
501 | 501 | |
502 | 502 | undef ($ff); |
503 | 503 | |
504 | rmtree($t->get_path("./t/sample-data/traverse-1")) | |
505 | } | |
506 | ||
507 | { | |
508 | my $tree = | |
509 | { | |
510 | 'name' => "traverse-1/", | |
504 | rmtree($t->get_path("./t/sample-data/traverse--traverse-1")) | |
505 | } | |
506 | ||
507 | { | |
508 | my $tree = | |
509 | { | |
510 | 'name' => "traverse--traverse-1/", | |
511 | 511 | 'subs' => |
512 | 512 | [ |
513 | 513 | { |
542 | 542 | my $ff = |
543 | 543 | File::Find::Object->new( |
544 | 544 | {}, |
545 | $t->get_path("./t/sample-data/traverse-1") | |
545 | $t->get_path("./t/sample-data/traverse--traverse-1") | |
546 | 546 | ); |
547 | 547 | |
548 | 548 | my @results; |
554 | 554 | # TEST |
555 | 555 | is_deeply( |
556 | 556 | \@results, |
557 | [(map { $t->get_path("t/sample-data/traverse-1/$_") } | |
557 | [(map { $t->get_path("t/sample-data/traverse--traverse-1/$_") } | |
558 | 558 | sort {$a cmp $b } |
559 | 559 | ("", qw( |
560 | 560 | 0 |
568 | 568 | "Checking that files named '0' are correctly scanned", |
569 | 569 | ); |
570 | 570 | |
571 | rmtree($t->get_path("./t/sample-data/traverse-1")); | |
572 | } | |
573 | ||
574 | { | |
575 | my $tree = | |
576 | { | |
577 | 'name' => "traverse-1/", | |
571 | rmtree($t->get_path("./t/sample-data/traverse--traverse-1")); | |
572 | } | |
573 | ||
574 | { | |
575 | my $tree = | |
576 | { | |
577 | 'name' => "traverse--traverse-1/", | |
578 | 578 | 'subs' => |
579 | 579 | [ |
580 | 580 | { |
621 | 621 | $ff = |
622 | 622 | File::Find::Object->new( |
623 | 623 | {callback => $callback}, |
624 | $t->get_path("./t/sample-data/traverse-1") | |
624 | $t->get_path("./t/sample-data/traverse--traverse-1") | |
625 | 625 | ); |
626 | 626 | |
627 | 627 | my @results; |
629 | 629 | # Call $ff->next() and do the tests in $callback . |
630 | 630 | push @results, $ff->next(); |
631 | 631 | |
632 | rmtree($t->get_path("./t/sample-data/traverse-1")); | |
633 | } | |
634 | ||
635 | { | |
636 | my $tree = | |
637 | { | |
638 | 'name' => "traverse-1/", | |
632 | rmtree($t->get_path("./t/sample-data/traverse--traverse-1")); | |
633 | } | |
634 | ||
635 | { | |
636 | my $tree = | |
637 | { | |
638 | 'name' => "traverse--traverse-1/", | |
639 | 639 | 'subs' => |
640 | 640 | [ |
641 | 641 | { |
662 | 662 | my $ff = |
663 | 663 | File::Find::Object->new( |
664 | 664 | {nocrossfs => 1,}, |
665 | $t->get_path("./t/sample-data/traverse-1") | |
665 | $t->get_path("./t/sample-data/traverse--traverse-1") | |
666 | 666 | ); |
667 | 667 | my @results; |
668 | 668 | for my $i (1 .. 6) |
672 | 672 | # TEST |
673 | 673 | is_deeply( |
674 | 674 | \@results, |
675 | [(map { $t->get_path("t/sample-data/traverse-1/$_") } | |
675 | [(map { $t->get_path("t/sample-data/traverse--traverse-1/$_") } | |
676 | 676 | ("", qw( |
677 | 677 | a |
678 | 678 | b.doc |
684 | 684 | "Testing nocrossfs", |
685 | 685 | ); |
686 | 686 | |
687 | rmtree($t->get_path("./t/sample-data/traverse-1")); | |
688 | } | |
689 | ||
690 | { | |
691 | my $tree = | |
692 | { | |
693 | 'name' => "traverse-1/", | |
687 | rmtree($t->get_path("./t/sample-data/traverse--traverse-1")); | |
688 | } | |
689 | ||
690 | { | |
691 | my $tree = | |
692 | { | |
693 | 'name' => "traverse--traverse-1/", | |
694 | 694 | 'subs' => |
695 | 695 | [ |
696 | 696 | { |
721 | 721 | my $ff = |
722 | 722 | File::Find::Object->new( |
723 | 723 | {}, |
724 | $t->get_path("./t/sample-data/traverse-1") | |
724 | $t->get_path("./t/sample-data/traverse--traverse-1") | |
725 | 725 | ); |
726 | 726 | |
727 | 727 | my @results; |
738 | 738 | is_deeply( |
739 | 739 | \@results, |
740 | 740 | [ |
741 | map { $t->get_path("t/sample-data/traverse-1/$_") } | |
741 | map { $t->get_path("t/sample-data/traverse--traverse-1/$_") } | |
742 | 742 | (qw(b.doc foo/file.txt)) |
743 | 743 | ], |
744 | 744 | "Checking for regular, lexicographically sorted order", |
745 | 745 | ); |
746 | 746 | |
747 | rmtree($t->get_path("./t/sample-data/traverse-1")) | |
748 | } | |
747 | rmtree($t->get_path("./t/sample-data/traverse--traverse-1")) | |
748 | } |
38 | 38 | { |
39 | 39 | my $tree = |
40 | 40 | { |
41 | 'name' => "traverse-1/", | |
41 | 'name' => "destroy--traverse-1/", | |
42 | 42 | 'subs' => |
43 | 43 | [ |
44 | 44 | { |
65 | 65 | my $ff = |
66 | 66 | MyFFO->new( |
67 | 67 | {}, |
68 | $t->get_path("./t/sample-data/traverse-1") | |
68 | $t->get_path("./t/sample-data/destroy--traverse-1") | |
69 | 69 | ); |
70 | 70 | $ff->{'**DESTROY**'} = \&my_destroy; |
71 | 71 | my @results; |
76 | 76 | # TEST |
77 | 77 | is_deeply( |
78 | 78 | \@results, |
79 | [(map { $t->get_path("t/sample-data/traverse-1/$_") } | |
79 | [(map { $t->get_path("t/sample-data/destroy--traverse-1/$_") } | |
80 | 80 | ("", qw( |
81 | 81 | a |
82 | 82 | b.doc |
88 | 88 | "Checking for regular, lexicographically sorted order", |
89 | 89 | ); |
90 | 90 | |
91 | rmtree($t->get_path("./t/sample-data/traverse-1")) | |
91 | rmtree($t->get_path("./t/sample-data/destroy--traverse-1")) | |
92 | 92 | } |
93 | 93 | # TEST |
94 | 94 | is ($destroy_counter, 1, |
18 | 18 | { |
19 | 19 | my $tree = |
20 | 20 | { |
21 | 'name' => "traverse-2/", | |
21 | 'name' => "prune--traverse-2/", | |
22 | 22 | 'subs' => |
23 | 23 | [ |
24 | 24 | { |
73 | 73 | my $ff = |
74 | 74 | File::Find::Object->new( |
75 | 75 | {}, |
76 | $t->get_path("./t/sample-data/traverse-2") | |
76 | $t->get_path("./t/sample-data/prune--traverse-2") | |
77 | 77 | ); |
78 | 78 | my @results; |
79 | 79 | for my $i (1 .. 7) |
84 | 84 | my $files_in_node = $ff->get_current_node_files_list(); |
85 | 85 | |
86 | 86 | if ($file eq |
87 | $t->get_path("t/sample-data/traverse-2/foo/please-prune-me") | |
87 | $t->get_path("t/sample-data/prune--traverse-2/foo/please-prune-me") | |
88 | 88 | ) |
89 | 89 | { |
90 | 90 | $ff->set_traverse_to( |
104 | 104 | # TEST |
105 | 105 | is_deeply( |
106 | 106 | \@results, |
107 | [(map { $t->get_path("t/sample-data/traverse-2/$_") } | |
107 | [(map { $t->get_path("t/sample-data/prune--traverse-2/$_") } | |
108 | 108 | ("", |
109 | 109 | qw( |
110 | 110 | a |
118 | 118 | "Checking for regular, lexicographically sorted order", |
119 | 119 | ); |
120 | 120 | |
121 | rmtree($t->get_path("./t/sample-data/traverse-2")) | |
121 | rmtree($t->get_path("./t/sample-data/prune--traverse-2")) | |
122 | 122 | } |
123 | 123 | |
124 | 124 | { |
125 | 125 | my $tree = |
126 | 126 | { |
127 | 'name' => "traverse-2/", | |
127 | 'name' => "prune--traverse-2/", | |
128 | 128 | 'subs' => |
129 | 129 | [ |
130 | 130 | { |
200 | 200 | my $ff = |
201 | 201 | File::Find::Object->new( |
202 | 202 | {}, |
203 | $t->get_path("./t/sample-data/traverse-2") | |
203 | $t->get_path("./t/sample-data/prune--traverse-2") | |
204 | 204 | ); |
205 | 205 | my @results; |
206 | 206 | for my $i (1 .. 9) |
207 | 207 | { |
208 | 208 | my $file = $ff->next(); |
209 | 209 | if ($file eq |
210 | $t->get_path("t/sample-data/traverse-2/foo/please-prune-me") | |
210 | $t->get_path("t/sample-data/prune--traverse-2/foo/please-prune-me") | |
211 | 211 | ) |
212 | 212 | { |
213 | 213 | $ff->prune(); |
221 | 221 | # TEST |
222 | 222 | is_deeply( |
223 | 223 | \@results, |
224 | [(map { $t->get_path("t/sample-data/traverse-2/$_") } | |
224 | [(map { $t->get_path("t/sample-data/prune--traverse-2/$_") } | |
225 | 225 | ("", |
226 | 226 | qw( |
227 | 227 | a |
237 | 237 | "Checking for regular, lexicographically sorted order", |
238 | 238 | ); |
239 | 239 | |
240 | rmtree($t->get_path("./t/sample-data/traverse-2")) | |
240 | rmtree($t->get_path("./t/sample-data/prune--traverse-2")) | |
241 | 241 | } |