From: zarawesome@... (Guilherme T.) Date: 2004-10-11T11:44:39+09:00 Subject: Trouble with rb_define_method("var=") I'm having trouble getting Ruby to acknowledge writing methods (of the type "var="). It seems to ignore all such commands. These are the relevant parts of the code; ----- C code static VALUE t_get_xs(VALUE self) { s_entity *e; Log("Getting xs"); Data_Get_Struct(self, s_entity, e); double f=e->xs; return rb_float_new(((double)e->xs)); } static VALUE t_set_xs(VALUE self, VALUE arg1) { s_entity *e; Log("Setting xs"); Data_Get_Struct(self, s_entity, e); e->xs=NUM2DBL(arg1); return arg1; } void ScriptPrepareClasses() { VALUE class_entity=rb_define_class("Entity",rb_cObject); rb_define_method(class_entity, "xs", RUBY_METHOD_FUNC(t_get_xs), 0); rb_define_method(class_entity, "xs=", RUBY_METHOD_FUNC(t_set_xs), 1); } ----- Ruby code class EntityB < Entity def daemon() @a=xs xs=0.1 xs=xs end end ----- When creating an object of class 'EntityB' via Data_Wrap_Struct and launching its daemon() method, only the first line (@a=xs) will execute properly. The others are ignored, and t_set_xs is never called. Any opinions as to why this happens are appreciated. Thanks for the attention.