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.

Files and Directories
CodeExpectedActual
open('beans.txt', "w") do |file|
  file.puts('lima beans')
  file.puts('pinto beans')
  file.puts('human beans')
end
open('beans.txt') do |file| 
   file.each { |l| puts "A line from the file: #{l}" }
end
A line from the file: lima beans
A line from the file: pinto beans
A line from the file: human beans
A stereotypical Unix path.
A line from the file: lima beans
A line from the file: pinto beans
A line from the file: human beans
open('/etc/passwd')
A stereotypical Windows path; note the drive letter.
open('c:/windows/Documents and Settings/User1/My Documents/ruby.doc')
open('c:\\windows\\Documents and Settings\\User1\\My Documents\\ruby.doc')
$stdin.each { |l| puts l }
$stdin.each { |l| $stdout.puts l }
create_tree.rb
Errno::ENOENT: No such file or directory - c:/windows/Documents and Settings/User1/My Documents/ruby.doc
	from (irb):10:in `initialize'
	from (irb):10
Errno::ENOENT: No such file or directory - c:\windows\Documents and Settings\User1\My Documents\ruby.doc
	from (irb):11:in `initialize'
	from (irb):11
def create_tree(directories, parent=".")
  directories.each_pair do |dir, files|
    path = File.join(parent, dir)
    Dir.mkdir path unless File.exists? path
    files.each do |filename, contents|
      if filename.respond_to? :each_pair   # It's a subdirectory
        create_tree filename, path
      else                                 # It's a file
        open(File.join(path, filename), 'w') { |f| f << contents || "" }
      end
    end
  end
end
require 'create_tree'
create_tree 'test' => 
  [ 'An empty file',
    ['A file with contents', 'Contents of file'],
    { 'Subdirectory' => ['Empty file in subdirectory',
                        ['File in subdirectory', 'Contents of file'] ] },
    { 'Empty subdirectory' => [] }
  ] 
require 'find'
Find.find('test') { |f| puts f }
test
test/Empty subdirectory
test/Subdirectory
test/Subdirectory/File in subdirectory
test/Subdirectory/Empty file in subdirectory
test/A file with contents
test/An empty file
test
test/Empty subdirectory
test/Subdirectory
test/Subdirectory/File in subdirectory
test/Subdirectory/Empty file in subdirectory
test/A file with contents
test/An empty file
File.read('test/Subdirectory/File in subdirectory')
"Contents of file" "Contents of file"