/* * call-seq: * BooleanClause.new(query, occur = :should) -> BooleanClause * * Create a new BooleanClause object, wrapping the query +query+. +occur+ * must be one of +:must+, +:should+ or +:must_not+. */ static VALUE frb_bc_init(int argc, VALUE *argv, VALUE self) { BooleanClause *bc; VALUE rquery, roccur; unsigned int occur = BC_SHOULD; Query *sub_q; if (rb_scan_args(argc, argv, "11", &rquery, &roccur) == 2) { occur = frb_get_occur(roccur); } Data_Get_Struct(rquery, Query, sub_q); REF(sub_q); bc = bc_new(sub_q, occur); Frt_Wrap_Struct(self, &frb_bc_mark, &frb_bc_free, bc); object_add(bc, self); return self; }