swig/Examples/ruby/mpointer/runme.rb
Dave Beazley 12a43edc2d The great merge
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4141 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2002-11-30 22:01:28 +00:00

48 lines
1.4 KiB
Ruby

# Example using pointers to member functions
require 'example'
# Get the pointers
area_pt = Example::areapt
perim_pt = Example::perimeterpt
puts "area_pt = #{area_pt}"
puts "perim_pt = #{perim_pt}"
# Create some objects
c = Example::Circle.new(4)
s = Example::Square.new(10)
# Do some calculations
puts "Circle area = #{Example::do_op(c, area_pt)}"
puts "Circle perim = #{Example::do_op(c, perim_pt)}"
puts "Square area = #{Example::do_op(s, area_pt)}"
puts "Square perim = #{Example::do_op(s, perim_pt)}"
puts "areavar = #{Example::areavar}"
puts "perimetervar = #{Example::perimetervar}"
# Try the variables
puts "Circle area = #{Example::do_op(c, Example::areavar)}"
puts "Circle perim = #{Example::do_op(c, Example::perimetervar)}"
puts "Square area = #{Example::do_op(s, Example::areavar)}"
puts "Square perim = #{Example::do_op(s, Example::perimetervar)}"
# Modify one of the variables
Example::areavar = perim_pt
puts "Circle perimeter = #{Example::do_op(c, Example::areavar)}"
# Try the constants
puts "Example::AREAPT = #{Example::AREAPT}"
puts "Example::PERIMPT= #{Example::PERIMPT}"
puts "Example::NULLPT = #{Example::NULLPT}"
puts "Circle area = #{Example::do_op(c, Example::AREAPT)}"
puts "Circle perim = #{Example::do_op(c, Example::PERIMPT)}"
puts "Square area = #{Example::do_op(s, Example::AREAPT)}"
puts "Square perim = #{Example::do_op(s, Example::PERIMPT)}"