swig/Examples/test-suite/ruby/director_protected_runme.rb
Gonzalo Garramuno 4b8d11d0e2 Fixed ruby's newobject1 and newobject2 demos.
Added swig_assert.rb and started using it in some tests.
Added my patches to ruby.cxx, rubyrun.swg, rubystrings.swg
and rubytracking.swg [see: sourceforge]



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9691 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-04-28 04:20:28 +00:00

45 lines
762 B
Ruby

#!/usr/bin/env ruby
#
# Put description here
#
# Author:: gga
# Copyright:: 2007
# License:: SWIG
#
require 'swig_assert'
require 'director_protected'
NoProtectedError = Kernel.const_defined?("NoMethodError") ? NoMethodError : NameError
class FooBar < Director_protected::Bar
protected
def ping
"FooBar::ping();"
end
end
class Hello < FooBar
public
def pang
ping
end
end
b = Director_protected::Bar.new
fb = FooBar.new
p = 0
begin
b.ping
p = 1
rescue NoProtectedError
end
h = Hello.new
raise RuntimeError if p == 1
raise RuntimeError if b.pong != "Bar::pong();Foo::pong();Bar::ping();"
raise RuntimeError if fb.pong != "Bar::pong();Foo::pong();FooBar::ping();"
raise RuntimeError if h.pang != "FooBar::ping();"