 
 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.
| Sorting an Array by an Attribute of its Objects | ||
|---|---|---|
| Code | Expected | Actual | 
| [5.01, -5, 0, 5].sort | [-5, 0, 5, 5.01] | [-5, 0, 5, 5.01] | 
| ["Utahraptor", "Ankylosaur", "Maiasaur"].sort | ["Ankylosaur", "Maiasaur", "Utahraptor"] | ["Ankylosaur", "Maiasaur", "Utahraptor"] | 
| arrays = [[1,2,3], [100], [10,20]]
arrays.sort_by { |x| x.size } | [[100], [10, 20], [1, 2, 3]] | [[100], [10, 20], [1, 2, 3]] | 
| [1, 100, 42, 23, 26, 10000].sort do |x, y| x == 42 ? 1 : x <=> y end | [1, 23, 26, 100, 10000, 42] | [1, 23, 26, 100, 10000, 42] | 
| class Animal
 attr_reader :name, :eyes, :appendages
 def initialize(name, eyes, appendages)
  @name, @eyes, @appendages = name, eyes, appendages
 end
 def inspect
  @name
 end
end
animals = [Animal.new("octopus", 2, 8), 
           Animal.new("spider", 6, 8),
           Animal.new("bee", 5, 6),
           Animal.new("elephant", 2, 4),
           Animal.new("crab", 2, 10)]
animals.sort_by { |x| x.eyes } | [octopus, elephant, crab, bee, spider] | [octopus, elephant, crab, bee, spider] | 
| animals.sort_by { |x| x.appendages  } | [elephant, bee, octopus, spider, crab] | [elephant, bee, octopus, spider, crab] |