我试图做这样的事情,但我无法理解如何在我的C代码中使用Ruby内部。如何在Ruby C扩展中创建Date对象?
static VALUE func_get_date_object(VALUE self, VALUE vdate){
VALUE rb_date;
VALUE date;
rb_date = rb_funcall(rb_intern("Date"), rb_intern("new"), 0);;
date = rb_funcall(rb_date, rb_intern("parse"), 0);
return date;
}
我想要做的是传中vdate作为一个字符串,就像您的Date.parse(“YYYY-MM-DD”)
但首先,我认为我需要知道如何用C语言为Ruby创建或实例化新的Date类对象。我该怎么做?
我有一个测试写的代码,这样做。
def test_date
assert_equal('', @t.date(@t_date_str))
end
输出是
NoMethodError: undefined method `new' for 18709:Fixnum
该代码等同于'Date.new.parse'这可能不是你想要的。 – tadman
代码不连编译,所以我想要的只是新的Date对象,所以我可以相应地使用它。我一直在寻找和寻找某种示例,但没有运气,所以即使只是一个链接将是很酷的 –
嗯等待它编译但我的tes t有NoMethodError:未定义的方法'new'for 18709:Fixnum –