summaryrefslogtreecommitdiff
path: root/Examples/ruby/reference/example.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/ruby/reference/example.i')
-rw-r--r--Examples/ruby/reference/example.i46
1 files changed, 46 insertions, 0 deletions
diff --git a/Examples/ruby/reference/example.i b/Examples/ruby/reference/example.i
new file mode 100644
index 0000000..6daa3b1
--- /dev/null
+++ b/Examples/ruby/reference/example.i
@@ -0,0 +1,46 @@
+/* File : example.i */
+
+/* This file has a few "typical" uses of C++ references. */
+
+%module example
+
+%{
+#include "example.h"
+%}
+
+class Vector {
+public:
+ Vector(double x, double y, double z);
+ ~Vector();
+ char *print();
+};
+
+/* This helper function calls an overloaded operator */
+%inline %{
+Vector addv(Vector &a, Vector &b) {
+ return a+b;
+}
+%}
+
+/* Wrapper around an array of vectors class */
+
+class VectorArray {
+public:
+ VectorArray(int maxsize);
+ ~VectorArray();
+ int size();
+
+ /* This wrapper provides an alternative to the [] operator */
+ %extend {
+ Vector &get(int index) {
+ return (*$self)[index];
+ }
+ void set(int index, Vector &a) {
+ (*$self)[index] = a;
+ }
+ }
+};
+
+
+
+