require 'example' | |
# create a zoo | |
zoo = Example::Zoo.new | |
begin | |
# Add in an couple of animals | |
tiger1 = Example::Animal.new("tiger1") | |
zoo.add_animal(tiger1) | |
# unset variables to force gc | |
tiger1 = nil | |
end | |
GC.start | |
# Now get the tiger again | |
tiger2 = zoo.get_animal(0) | |
# Call a method to verify the animal is still valid and not gc'ed | |
if tiger2.get_name != "tiger1" | |
raise RuntimeError, "Wrong animal name" | |
end |