class Hash

Public Instance Methods

ffi_yajl(p1, p2) click to toggle source
static VALUE rb_cHash_ffi_yajl(VALUE self, VALUE rb_yajl_gen, VALUE state) {
  yajl_gen_status status;
  VALUE extra;
  struct yajl_gen_t *yajl_gen;
  Data_Get_Struct(rb_yajl_gen, struct yajl_gen_t, yajl_gen);

  extra = rb_hash_new();  /* FIXME: reduce garbage */

  rb_hash_aset(extra, rb_str_new2("yajl_gen"), rb_yajl_gen);

  rb_hash_aset(extra, rb_str_new2("state"), state);

  CHECK_STATUS(
    yajl_gen_map_open(yajl_gen)
  );
  rb_hash_foreach(self, rb_cHash_ffi_yajl_callback, extra);
  CHECK_STATUS(
    yajl_gen_map_close(yajl_gen)
  );

  return Qnil;
}
to_json(*opts, &block) click to toggle source
# File lib/ffi_yajl/json_gem.rb, line 63
def to_json(*opts, &block)
  FFI_Yajl::Encoder.encode(self)
end