 
 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.
| Converting and Coercing Objects to Different Types | ||
|---|---|---|
| Code | Expected | Actual | 
| "4".to_i | 4 | 4 | 
| 4.to_s | "4" | "4" | 
| Time.now.to_f | 1143572140.90932 | 1143572358.01902 | 
| { "key1" => "value1", "key2" => "value2" }.to_a | [["key1", "value1"], ["key2", "value2"]] | [["key1", "value1"], ["key2", "value2"]] | 
| def print_each(array)
  array.each { |x| puts x.inspect }
end
hash = { "pickled peppers" => "peck of",
         "sick sheep"      => "sixth" }
print_each(hash.to_a) | ["sick sheep", "sixth"] ["pickled peppers", "peck of"] | ["sick sheep", "sixth"] ["pickled peppers", "peck of"] | 
| print_each(hash) | ["sick sheep", "sixth"] ["pickled peppers", "peck of"] | ["sick sheep", "sixth"] ["pickled peppers", "peck of"] | 
| array = hash.to_a | [["sick sheep", "sixth"], ["pickled peppers", "peck of"]] | [["sick sheep", "sixth"], ["pickled peppers", "peck of"]] | 
| until array.empty?
  item, quantity = array.pop
  puts "#{quantity} #{item}"
end | peck of pickled peppers sixth sick sheep | peck of pickled peppers sixth sick sheep | 
| hash.sort | [["pickled peppers", "peck of"], ["sick sheep", "sixth"]] | [["pickled peppers", "peck of"], ["sick sheep", "sixth"]] | 
| 3/4 | 0 | 0 | 
| 3/4.to_f | 0.75 | 0.75 | 
| require 'rational' Rational(1, 3).to_f | 0.333333333333333 | 0.333333333333333 | 
| Rational(11, 5).to_i | 2 | 2 | 
| 2.to_r | Rational(2, 1) | Rational(2, 1) | 
| require 'bigdecimal' require 'bigdecimal/util' one_third = 1/3.0 | 0.333333333333333 | 0.333333333333333 | 
| one_third.to_r | NoMethodError: undefined method `to_r' for 0.333333333333333:Float ... | NoMethodError: undefined method `to_r' for 0.333333333333333:Float from (irb):27 | 
| one_third.to_d.to_r | Rational(333333333333333, 1000000000000000) | Rational(333333333333333, 1000000000000000) | 
| 20.to_d | NoMethodError: undefined method `to_d' for 20:Fixnum ... | NoMethodError: undefined method `to_d' for 20:Fixnum from (irb):29 | 
| 20.to_r.to_d | #<BigDecimal:b7bfd214,'0.2E2',4(48)> | #<BigDecimal:b7bfd034,'0.2E2',4(48)> | 
| require 'complex' i = Complex(0, 1) | Complex(0, 1) | Complex(0, 1) | 
| i.coerce(3) | [Complex(3, 0), Complex(0, 1)] | [Complex(3, 0), Complex(0, 1)] | 
| i.coerce(2.5) | [Complex(2.5, 0), Complex(0, 1)] | [Complex(2.5, 0), Complex(0, 1)] | 
| [1, 2, 3].to_s | "123" | "123" | 
| [1, 2, 3].inspect | "[1, 2, 3]" | "[1, 2, 3]" |