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.

Hiding Setup and Cleanup in a Block Method
CodeExpectedActual
def between_setup_and_cleanup
  setup()
  begin
   yield
  finally
    cleanup()
  end
end
def write_html(out, doctype=nil)
  doctype ||= %{<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">}
  out.puts doctype
  out.puts '<html>'
  begin
    yield out
  ensure
    out.puts '</html>'
  end
end
write_html($stdout) do |out| 
  out.puts '<h1>Sorry, the Web is closed.</h1>'
end
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<h1>Sorry, the Web is closed.</h1>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
<html>
<h1>Sorry, the Web is closed.</h1>
</html>
open('output.txt', 'w') do |out| 
  out.puts 'Sorry, the filesystem is also closed.'
end
Content-Type: text/html
Content-Length: 137
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<HTML><H1>Sorry, the Web is closed.</H1></HTML>
require 'rubygems'
require 'builder'
xml = Builder::XmlMarkup.new.message({'type' => 'apology'}) do |b|
  b.content('Sorry, Web Services are closed.')
end
puts xml
<message type="apology">
 <content>Sorry, Web Services are closed.</content>
</message>
Error! (Exception?) Here's stdout:
SyntaxError: compile error
(irb):26: parse error, unexpected ':', expecting $
Content-Type: text/html
             ^
	from (irb):26
SyntaxError: compile error
(irb):27: parse error, unexpected ':', expecting $
Content-Length: 137
               ^
	from (irb):27
SyntaxError: compile error
(irb):28: parse error, unexpected '<'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 ^
	from (irb):28