私はこのようなことをしようとしていますが、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;
}
私は何をしたいことはDate.parseのためにあなたのような文字列としてvdateになり渡しです(「YYYY-MM-DD」)
しかし、最初に、私は方法を知っておく必要があると思いますRuby用にCで新しいDateクラスオブジェクトを作成またはインスタンス化します。どうすればいいですか?
私はこれを行うコードのために書かれたテストを持っています。
def test_date
assert_equal('', @t.date(@t_date_str))
end
出力はinternal ID
for the name "Date"を返しrb_intern
NoMethodError: undefined method `new' for 18709:Fixnum
このコードはおそらくされていないDate.new.parse' 'と同等ですrubygems.orgに同じである。 – tadman
をこのコードはさえません私が欲しいのは、新しいDateオブジェクトだけですので、それを使用することができます。私は探していましたが、いくつかの例を探していましたが、結局のところ、リンクだけでもうまくいくでしょう。 –
私のテスtにNoMethodErrorがあります:18709の未定義メソッドnewです:Fixnum –