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.

Calling a Superclass's Method
CodeExpectedActual
class Recipe
  # ... The rest of the Recipe implementation goes here.
  def cook(stove, cooking_time)
    dish = prepare_ingredients
    stove << dish
    wait_for(cooking_time)
    return dish
  end
end
class RecipeWithExtraGarlic < Recipe
  def cook(stove, cooking_time)
    5.times { add_ingredient(Garlic.new.chop) }
    super
  end
end
class BakingRecipe < Recipe
  def cook(cooking_time, oven_temperature=350)
    oven = Oven.new(oven_temperature)
    super(oven, cooking_time)
  end
end
class MyString < String
  def gsub(*args)
    return "#{super} -- This string modified by MyString#gsub (TM)"
  end
end
str = MyString.new("Here's my string")
str.gsub("my", "a")
"Here's a string -- This string modified by MyString#gsub (TM)" "Here's a string -- This string modified by MyString#gsub (TM)"
str.gsub(/m| s/) { |match| match.strip.capitalize }
"Here's MyString -- This string modified by MyString#gsub (TM)" "Here's MyString -- This string modified by MyString#gsub (TM)"
class MyString
  def succ!(skip=1)
    skip.times { super() }
    self
  end
end
str = MyString.new('a')
str.succ!(3)
"d" "d"
class MyFile < File
  def MyFile.ftype(*args)
    return "The type is #{super}."
  end
end
File.ftype("/bin")
"directory" "directory"
MyFile.ftype("/bin")
"The type is directory." "The type is directory."