I'm trying to do something real simple find the sin of an angle in an extension. I'm sure you'll recognize the following code as a variation of the example in Pick Axe 2. I've read README.EXT. Looked at Math.c
been all over the web and I can't seem to figure out the correct way to do this. Can someone give me a clue?
Ernie
#include "ruby.h"
static int id_push;
static VALUE t_init(VALUE self)
{
VALUE arr;
arr=rb_ary_new();
rb_iv_set(self, "@arr", arr);
return self;
}
static VALUE t_add(VALUE self, VALUE obj)
{
VALUE arr;
VALUE si;
arr=rb_iv_get(self, "@arr");
si=sin(obj);
rb_funcall(arr, id_push,1,si);
return arr;
}
VALUE cTest;
void Init_junk()
{
cTest=rb_define_class("Junk", rb_cObject);
rb_define_method(cTest, "initialize",t_init,0);
rb_define_method(cTest, "add", t_add,1);
Init_Math();
id_push = rb_intern("push");
}
after compiling
require 'junk'
a=Junk.new
a.add(0.75)
puts a => false;