diff options
author | Brad King <brad.king@kitware.com> | 2018-02-15 13:49:44 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2018-02-15 13:50:29 (GMT) |
commit | a2ec98b7d97df67d50e90e790b2bd235f7c278cc (patch) | |
tree | 769dda972b0f7964a004fe65e4f44554ccaa5d0e /Tests/RunCMake/UseSWIG/runme.rb | |
parent | b5d18cbd7777cba22f844b0b3672db20ab21c836 (diff) | |
parent | 0bef9eb410566aa10536331d086d4a3ee265a526 (diff) | |
download | CMake-a2ec98b7d97df67d50e90e790b2bd235f7c278cc.zip CMake-a2ec98b7d97df67d50e90e790b2bd235f7c278cc.tar.gz CMake-a2ec98b7d97df67d50e90e790b2bd235f7c278cc.tar.bz2 |
Merge topic 'enhanced-UseSWIG-Module'
0bef9eb4 UseSWIG: modernize module
d6048bd1 UseSWIG: Re-work test framework
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1707
Diffstat (limited to 'Tests/RunCMake/UseSWIG/runme.rb')
-rw-r--r-- | Tests/RunCMake/UseSWIG/runme.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Tests/RunCMake/UseSWIG/runme.rb b/Tests/RunCMake/UseSWIG/runme.rb new file mode 100644 index 0000000..de73bcd --- /dev/null +++ b/Tests/RunCMake/UseSWIG/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" |