class Float
Public Instance Methods
ffi_yajl(p1, p2)
click to toggle source
static VALUE rb_cFloat_ffi_yajl(VALUE self, VALUE rb_yajl_gen, VALUE state) { yajl_gen_status status; ID sym_to_s = rb_intern("to_s"); VALUE str = rb_funcall(self, sym_to_s, 0); 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); if (memcmp(cptr, "NaN", 3) == 0 || memcmp(cptr, "Infinity", 8) == 0 || memcmp(cptr, "-Infinity", 9) == 0) { rb_raise(cEncodeError, "'%s' is an invalid number", cptr); } if ( rb_hash_aref(state, rb_str_new2("processing_key")) == Qtrue ) { CHECK_STATUS( yajl_gen_string(yajl_gen, (unsigned char *)cptr, len) ); } else { CHECK_STATUS( yajl_gen_number(yajl_gen, cptr, len) ); } return Qnil; }
to_json(*opts, &block)
click to toggle source
# File lib/ffi_yajl/json_gem.rb, line 75 def to_json(*opts, &block) FFI_Yajl::Encoder.encode(self) end