我試圖做這樣的事情,但我無法理解如何在我的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 –