class Array

def ffi_yajl(yajl_gen, state)

def ffi_yajl(yajl_gen, state)
  if state[:processing_key]
    str = to_s
    if ( status = FFI_Yajl.yajl_gen_string(yajl_gen, str, str.bytesize) ) != 0
      FFI_Yajl::Encoder.raise_error_for_status(status, str)
    end
  else
    if ( status = FFI_Yajl.yajl_gen_array_open(yajl_gen) ) != 0
      FFI_Yajl::Encoder.raise_error_for_status(status, "[")
    end
    each do |value|
      value.ffi_yajl(yajl_gen, state)
    end
    if ( status = FFI_Yajl.yajl_gen_array_close(yajl_gen) ) != 0
      FFI_Yajl::Encoder.raise_error_for_status(status, "]")
    end
  end
end