ext/h8/main.cpp in h8-0.0.4 vs ext/h8/main.cpp in h8-0.0.5
- old
+ new
@@ -77,10 +77,17 @@
static VALUE rvalue_get_index(VALUE self, VALUE index) {
return rv(self)->get_index(index);
}
+static VALUE rvalue_set_attr(VALUE self, VALUE name, VALUE value) {
+ return protect_ruby([&] {
+ rv(self)->set_attribute(name, value);
+ return Qnil;
+ });
+}
+
static VALUE rvalue_is_string(VALUE self) {
return rv(self)->is_string();
}
static VALUE rvalue_is_array(VALUE self) {
@@ -168,11 +175,11 @@
context_class = rb_define_class_under(h8, "Context", rb_cObject);
ruby_gate_class = rb_define_class_under(h8, "RubyGate", rb_cObject);
rb_define_alloc_func(context_class, context_alloc);
rb_define_method(context_class, "_eval", (ruby_method) context_eval, 2);
- rb_define_method(context_class, "set_var", (ruby_method) context_set_var,
+ rb_define_method(context_class, "_set_var", (ruby_method) context_set_var,
2);
value_class = rb_define_class_under(h8, "Value", rb_cObject);
rb_define_alloc_func(value_class, rvalue_alloc);
rb_define_method(value_class, "to_s", (ruby_method) rvalue_to_s, 0);
@@ -189,9 +196,11 @@
(ruby_method) rvalue_is_undefined, 0);
rb_define_method(value_class, "_get_attr", (ruby_method) rvalue_get_attr,
1);
rb_define_method(value_class, "_get_index", (ruby_method) rvalue_get_index,
1);
+ rb_define_method(value_class, "_set_attr", (ruby_method) rvalue_set_attr,
+ 2);
rb_define_method(value_class, "_call", (ruby_method) rvalue_call, 1);
rb_define_method(value_class, "_apply", (ruby_method) rvalue_apply, 2);
rb_define_method(value_class, "context",
(ruby_method) rvalue_get_ruby_context, 0);