/* * call-seq: * lazy_doc.default(key) -> string * * This method is used internally to lazily load fields. You should never * really need to call it yourself. */ static VALUE frt_lzd_default(VALUE self, VALUE rkey) { LazyDoc *lazy_doc = (LazyDoc *)DATA_PTR(rb_ivar_get(self, id_data)); char *field = NULL; switch (TYPE(rkey)) { case T_STRING: field = rs2s(rkey); rkey = ID2SYM(rb_intern(field)); break; case T_SYMBOL: field = frt_field(rkey); break; default: rb_raise(rb_eArgError, "%s cannot be a key to a field. Field keys must " " be symbols.", rs2s(rb_obj_as_string(rkey))); break; } return frt_lazy_df_load(self, rkey, h_get(lazy_doc->field_dict, field)); }