diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2014-08-23 15:36:30 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2014-08-23 15:36:30 -0700 |
commit | a7793dfac85b52071f5c2bad54dc6f38ef2798d8 (patch) | |
tree | 220593145f12e97af338b291a73ce8408f38e8f4 | |
parent | a4305d7cf0449e34311fc6ebf00f57a1cb3f89b9 (diff) | |
download | ffi-yajl-a7793dfac85b52071f5c2bad54dc6f38ef2798d8.tar.gz |
fix ruby 1.8.7 tests
-rw-r--r-- | ext/ffi_yajl/ext/encoder/encoder.c | 12 | ||||
-rw-r--r-- | lib/ffi_yajl/ffi/encoder.rb | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/ext/ffi_yajl/ext/encoder/encoder.c b/ext/ffi_yajl/ext/encoder/encoder.c index 371752b..0c917cb 100644 --- a/ext/ffi_yajl/ext/encoder/encoder.c +++ b/ext/ffi_yajl/ext/encoder/encoder.c @@ -251,7 +251,17 @@ static VALUE rb_cDate_ffi_yajl(VALUE self, VALUE rb_yajl_gen, VALUE state) { } static VALUE rb_cTime_ffi_yajl(VALUE self, VALUE rb_yajl_gen, VALUE state) { - return object_to_s_ffi_yajl(self, rb_yajl_gen, state); + yajl_gen_status status; + ID sym_strftime = rb_intern("strftime"); + VALUE str = rb_funcall(self, sym_strftime, 1, rb_str_new2("%Y-%m-%d %H:%M:%S %z")); + char *cptr = RSTRING_PTR(str); + int len = RSTRING_LEN(str); + struct yajl_gen_t *yajl_gen; + Data_Get_Struct(rb_yajl_gen, struct yajl_gen_t, yajl_gen); + CHECK_STATUS( + yajl_gen_string(yajl_gen, (unsigned char *)cptr, len) + ); + return Qnil; } static VALUE rb_cDateTime_ffi_yajl(VALUE self, VALUE rb_yajl_gen, VALUE state) { diff --git a/lib/ffi_yajl/ffi/encoder.rb b/lib/ffi_yajl/ffi/encoder.rb index b82c0fe..3df366c 100644 --- a/lib/ffi_yajl/ffi/encoder.rb +++ b/lib/ffi_yajl/ffi/encoder.rb @@ -182,7 +182,7 @@ end class Time def ffi_yajl(yajl_gen, state) - str = self.to_s + str = self.strftime "%Y-%m-%d %H:%M:%S %z" if ( status = FFI_Yajl.yajl_gen_string(yajl_gen, str, str.bytesize) ) != 0 FFI_Yajl::Encoder.raise_error_for_status(status) end |