packages feed

hubris-0.0.2: cbits/rshim.h

#ifndef __FOOSHIM__
#define __FOOSHIM__ 1
#define HAVE_STRUCT_TIMESPEC 1 
#include <ruby.h>

// did this really have to be a macro? BAD MATZ
unsigned int rtype(VALUE obj);
VALUE int2fix(int i);
int fix2int(VALUE x);
double num2dbl(VALUE x);
unsigned int rb_ary_len(VALUE x);
VALUE keys(VALUE hash);
VALUE buildException(char *);
// argh, and again
enum RubyType {
 RT_NONE     = T_NONE,

 RT_NIL      = T_NIL    ,
 RT_OBJECT   = T_OBJECT ,
 RT_CLASS    = T_CLASS  ,
 RT_ICLASS   = T_ICLASS ,
 RT_MODULE   = T_MODULE ,
 RT_FLOAT    = T_FLOAT  ,
 RT_STRING   = T_STRING ,
 RT_REGEXP   = T_REGEXP ,
 RT_ARRAY    = T_ARRAY  ,
 RT_FIXNUM   = T_FIXNUM ,
 RT_HASH     = T_HASH   ,
 RT_STRUCT   = T_STRUCT ,
 RT_BIGNUM   = T_BIGNUM ,
 RT_FILE     = T_FILE   ,

 RT_TRUE     = T_TRUE   ,
 RT_FALSE    = T_FALSE  ,
 RT_DATA     = T_DATA   ,
 RT_MATCH    = T_MATCH  ,
 RT_SYMBOL   = T_SYMBOL ,

 // t_BLKTAG   = T_BLKTAG , // this one is broken in ruby 1.9

 RT_UNDEF    = T_UNDEF  ,
 // t_VARMAP   = T_VARMAP , // this one is broken in ruby 1.9
 // t_SCOPE    = T_SCOPE  , // this one is broken in ruby 1.9
 RT_NODE     = T_NODE   ,

 RT_MASK     = T_MASK   ,
};
#endif