/* * call-seq: * _expression_.inspect -> String * * _expression_の中身を人に見やすい文字列で返す。 */ static VALUE rb_grn_expression_inspect (VALUE self) { grn_ctx *context = NULL; grn_obj inspected; grn_obj *expression; VALUE rb_inspected; rb_grn_expression_deconstruct(SELF(self), &expression, &context, NULL, NULL, NULL, NULL, NULL); GRN_TEXT_INIT(&inspected, 0); GRN_TEXT_PUTS(context, &inspected, "#<Groonga::Expression "); #ifdef WIN32 GRN_TEXT_PUTS(context, &inspected, "(not supported on Windows)"); #else grn_expr_inspect(context, &inspected, expression); #endif GRN_TEXT_PUTS(context, &inspected, ">"); rb_inspected = rb_grn_context_rb_string_new(context, GRN_TEXT_VALUE(&inspected), GRN_TEXT_LEN(&inspected)); GRN_OBJ_FIN(context, &inspected); return rb_inspected; }
void grn_test_assert_expr_helper (grn_ctx *context, const gchar *inspected, grn_obj *expr, const gchar *inspected_expression, const gchar *expr_expression) { grn_obj buffer; const gchar *actual_inspected; GRN_TEXT_INIT(&buffer, 0); grn_expr_inspect(context, &buffer, expr); GRN_TEXT_PUTC(context, &buffer, '\0'); actual_inspected = cut_take_strdup(GRN_TEXT_VALUE(&buffer)); GRN_OBJ_FIN(context, &buffer); cut_assert_equal_string(inspected, actual_inspected); }