diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2004-04-30 16:17:06 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2004-04-30 16:17:06 (GMT) |
commit | a828368232fe08e0065c26e07c38f4dafc78aadf (patch) | |
tree | 4d241763e626a7af5d127864e3afff22953d2633 /Tests/SwigTest/runme.rb | |
parent | 257daa4635ed9b88035c84c5cb1fcc689268a949 (diff) | |
download | CMake-a828368232fe08e0065c26e07c38f4dafc78aadf.zip CMake-a828368232fe08e0065c26e07c38f4dafc78aadf.tar.gz CMake-a828368232fe08e0065c26e07c38f4dafc78aadf.tar.bz2 |
ENH: Here is test for swig module
Diffstat (limited to 'Tests/SwigTest/runme.rb')
-rw-r--r-- | Tests/SwigTest/runme.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Tests/SwigTest/runme.rb b/Tests/SwigTest/runme.rb new file mode 100644 index 0000000..de73bcd --- /dev/null +++ b/Tests/SwigTest/runme.rb @@ -0,0 +1,49 @@ +# file: runme.rb + +# This file illustrates the C++ interface created by SWIG. +# All of our C++ classes get converted into Ruby classes. + +require 'example' + +# ----- Object creation ----- + +print "Creating some objects:\n" +c = Example::Circle.new(10) +print " Created circle #{c}\n" +s = Example::Square.new(10) +print " Created square #{s}\n" + +# ----- Access a static member ----- + +print "\nA total of #{Example::Shape.nshapes} shapes were created\n" + +# ----- Member data access ----- + +# Set the location of the object + +# Notice how we can do this using functions specific to +# the 'Circle' class. +c.x = 20 +c.y = 30 + +# Now use the same functions in the base class +s.x = -10 +s.y = 5 + +print "\nHere is their current position:\n" +print " Circle = (", c.x, ",", c.y, ")\n" +print " Square = (", s.x, ",", s.y, ")\n" + +# ----- Call some methods ----- + +print "\nHere are some properties of the shapes:\n" +for o in [c, s] + print " #{o}\n" + print " area = ", o.area, "\n" + print " perimeter = ", o.perimeter, "\n" +end +# Notice how the Shape#area() and Shape#perimeter() functions really +# invoke the appropriate virtual method on each object. + +print "\n", Example::Shape.nshapes," shapes remain\n" +print "Goodbye\n" |