summaryrefslogtreecommitdiff
path: root/share/swig/2.0.11/ruby/rubytypemaps.swg
blob: 336ee977a4ed842d32ff4ed0dbec05f98fa12525 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* ------------------------------------------------------------
 *  Typemap specializations for Ruby
 * ------------------------------------------------------------ */
/* ------------------------------------------------------------
 *  Fragment section
 * ------------------------------------------------------------ */
/* bool is dangerous in Ruby, change precedence */
#undef SWIG_TYPECHECK_BOOL
%define SWIG_TYPECHECK_BOOL             10000 %enddef

/* Include fundamental fragemt definitions */
%include <typemaps/fragments.swg>

/* Look for user fragments file. */
%include <rubyfragments.swg>

/* Ruby fragments for primitive types */
%include <rubyprimtypes.swg>

/* Ruby fragments for char* strings */
%include <rubystrings.swg>

/* Backward compatibility output helper */
%fragment("output_helper","header") %{
#define output_helper SWIG_Ruby_AppendOutput
%}

/* ------------------------------------------------------------
 *  Unified typemap section
 * ------------------------------------------------------------ */

/* Directors are supported in Ruby */
#ifndef SWIG_DIRECTOR_TYPEMAPS
#define SWIG_DIRECTOR_TYPEMAPS
#endif


/* Ruby types */
#define SWIG_Object                      VALUE
#define VOID_Object                      Qnil

/* Overload of the output/constant/exception handling */

/* append output */
#define SWIG_AppendOutput(result,obj)    SWIG_Ruby_AppendOutput(result, obj)

/* set constant */
#define SWIG_SetConstant(name, obj)      rb_define_const($module, name, obj)

/* raise */
#define SWIG_Raise(obj, type, desc)      rb_exc_raise(SWIG_Ruby_ExceptionType(desc, obj)) 

/* Get the address of the 'Ruby self' object */

%typemap(in,numinputs=0,noblock=1) VALUE* RUBY_SELF {
  $1 = &self;
}

/* Include the unified typemap library */
%include <typemaps/swigtypemaps.swg>