%module(ruby_minherit="1") using_extend %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_D_MULTIPLE_INHERITANCE, SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, D, Java, PHP multiple inheritance #ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah; #endif %extend Foo { int blah(int x, int y) { return x+y; } }; %extend Bar { double blah(double x, double y) { return x+y; } }; %inline %{ class Foo { public: int blah(int x) { return x; } char *blah(char *x) { return x; } }; class Bar { public: int duh1() { return 1; } int duh(int x) { return x; } double blah(double x) { return x; } }; class FooBar : public Foo, public Bar { public: using Foo::blah; using Bar::blah; char *blah(char *x) { return x; } }; %} %extend FooBar { using Bar::duh1; using Bar::duh; }