/*
* call-seq:
* RAMDirectory.new(dir = nil)
*
* Create a new RAMDirectory.
*
* You can optionally load another Directory (usually a FSDirectory) into
* memory. This may be useful to speed up search performance but usually the
* speedup won't be worth the trouble. Be sure to benchmark.
*
* dir:: Directory to load into memory
*/
static VALUE
frt_ramdir_init(int argc, VALUE *argv, VALUE self)
{
VALUE rdir;
Store *store;
switch (rb_scan_args(argc, argv, "01", &rdir)) {
case 1: {
Store *ostore;
Data_Get_Struct(rdir, Store, ostore);
store = open_ram_store_and_copy(ostore, false);
break;
}
default: store = open_ram_store();
}
Frt_Wrap_Struct(self, NULL, &frt_dir_free, store);
object_add(store, self);
rb_ivar_set(self, id_ref_cnt, INT2FIX(0));
return self;
}