/* * call-seq: * fis.add_field(name, properties = {} -> fis * * Add a new field to the FieldInfos object. See FieldInfo for a description * of the available properties. */ static VALUE frt_fis_add_field(int argc, VALUE *argv, VALUE self) { FieldInfos *fis = (FieldInfos *)DATA_PTR(self); FieldInfo *fi; enum StoreValues store = fis->store; enum IndexValues index = fis->index; enum TermVectorValues term_vector = fis->term_vector; float boost = 1.0f; VALUE rname, roptions; rb_scan_args(argc, argv, "11", &rname, &roptions); if (argc > 1) { frt_fi_get_params(roptions, &store, &index, &term_vector, &boost); } fi = fi_new(frt_field(rname), store, index, term_vector); fi->boost = boost; fis_add_field(fis, fi); return self; }