/*
* 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
frt_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 = frt_get_occur(roccur);
}
Data_Get_Struct(rquery, Query, sub_q);
REF(sub_q);
bc = bc_new(sub_q, occur);
Frt_Wrap_Struct(self, &frt_bc_mark, &frt_bc_free, bc);
object_add(bc, self);
return self;
}