summaryrefslogtreecommitdiff
path: root/Examples/ruby/mark_function/runme.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/ruby/mark_function/runme.rb')
-rw-r--r--Examples/ruby/mark_function/runme.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/Examples/ruby/mark_function/runme.rb b/Examples/ruby/mark_function/runme.rb
new file mode 100644
index 0000000..6d84ee8
--- /dev/null
+++ b/Examples/ruby/mark_function/runme.rb
@@ -0,0 +1,23 @@
+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
+ tiger = 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