 
 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.
| Code Blocks | ||
|---|---|---|
| Code | Expected | Actual | 
| [1,2,3].each {|i| puts i} | 1 2 3 | 1 2 3 | 
| [1,2,3].each { |i| puts i } | 1 2 3 | 1 2 3 | 
| [1,2,3].each do |i|
  if i % 2 == 0
    puts "#{i} is even."
  else
    puts "#{i} is odd."
  end
end | 1 is odd. 2 is even. 3 is odd. | 1 is odd. 2 is even. 3 is odd. | 
| 1.upto 3 do |x| puts x end | 1 2 3 | 1 2 3 | 
| 1.upto 3 { |x| puts x } | SyntaxError: compile error ... | SyntaxError: compile error
(irb):13: parse error, unexpected '{', expecting $
1.upto 3 { |x| puts x }
          ^
	from (irb):13
 | 
| 1.upto(3) { |x| puts x } | 1 2 3 | 1 2 3 | 
| hello = proc { "Hello" }
hello.call | "Hello" | "Hello" | 
| log = Proc.new { |str| puts "[LOG] #{str}" }
log.call("A test log message.") | [LOG] A test log message. | [LOG] A test log message. | 
| {1=>2, 2=>4}.each { |k,v| puts "Key #{k}, value #{v}" } | Key 1, value 2 Key 2, value 4 | Key 1, value 2 Key 2, value 4 | 
| def times_n(n)
  lambda { |x| x * n }
end
times_ten = times_n(10)
times_ten.call(5) | 50 | 50 | 
| times_ten.call(1.25) | 12.5 | 12.5 | 
| circumference = times_n(2*Math::PI) circumference.call(10) | 62.8318530717959 | 62.8318530717959 | 
| circumference.call(3) | 18.8495559215388 | 18.8495559215388 | 
| [1, 2, 3].collect(&circumference) | [6.28318530717959, 12.5663706143592, 18.8495559215388] | [6.28318530717959, 12.5663706143592, 18.8495559215388] | 
| ceiling = 50 | Which of these numbers are less than the target? | |
| [1, 10, 49, 50.1, 200].select { |x| x < ceiling } | [1, 10, 49] | [1, 10, 49] |