 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Walking a Directory Tree | ||
|---|---|---|
| Code | Expected | Actual | 
| require 'create_tree'
create_tree './' => 
  [ 'file1', 
    'file2',
    { 'subdir1/' => [ 'file1' ] },
    { 'subdir2/' => [ 'file1',
                      'file2',
                      { 'subsubdir/' => [ 'file1' ] } 
                    ] 
    } 
  ]
Dir['**/**'] | ["file1", "file2", "subdir1", "subdir2", "subdir1/file1", | [] | 
| require 'find'
Find.find('./') { |path| puts path } | ./ ./subdir2 ./subdir2/subsubdir ./subdir2/subsubdir/file1 ./subdir2/file2 ./subdir2/file1 ./subdir1 ./subdir1/file1 ./file2 ./file1 | ./ | 
| Find.find('./') do |path| 
  Find.prune if File.basename(path) == 'subdir2'
  puts path
end | ./ ./subdir1 ./subdir1/file1 ./file2 ./file1 | ./ | 
| Find.find('./') do |path| 
  if File.basename(path) =~ /file2$/
    puts "PRUNED #{path}"
    Find.prune 
  end
  puts path
end | ./ ./subdir2 ./subdir2/subsubdir ./subdir2/subsubdir/file1 PRUNED ./subdir2/file2 ./subdir2/file1 ./subdir1 ./subdir1/file1 PRUNED ./file2 ./file1 | ./ | 
| Dir["**/**"].sort.each { |x| puts x } | file1 file2 subdir1 subdir1/file1 subdir2 subdir2/file1 subdir2/file2 subdir2/subsubdir subdir2/subsubdir/file1 | |