new object $settings: $utilities; var $root created_on = 857619568; var $root flags = ['variables, 'methods, 'code, 'core]; var $root inited = 1; var $root managed = [$settings]; var $root manager = $settings; public method .format_boolean() { arg value; if (value) return "yes"; else return "no"; }; public method .format_itemlist() { arg data; return data.join(", "); }; public method .format_object() { arg value; return value.namef('xref); }; public method .format_onoff() { arg value; if (value) return "on"; else return "off"; }; public method .format_propagator() { arg value; return (type(value) == 'frob) ? (value.format()) : "no"; }; public method .is_boolean() { arg value; var bool; if ((bool = value.is_boolean()) == (-1)) throw(~invtype, ("Value \"" + value) + "\" is not boolean."); return bool; }; public method .is_propagator() { arg value; return (> $propagator.new_with(value) <); }; public method .is_type() { arg value, type, @subtypes; var i; if (type(value) == type) return value; switch (type) { case 'list: value = fromliteral(value); if (type(value) != 'list) throw(~type, "Value is unparsable as list."); if (subtypes) value = map i in (value) to ((> .is_type(i, subtypes[1]) <)); return value; case 'dictionary: value = fromliteral(value); if (type(value) != 'dictionary) throw(~type, "Value is unparsable as dictionary."); if (subtypes) value = hash i in (value) to ((> [.is_type(i, subtypes[1]), .is_type(i, subtypes[2])] <)); return value; case 'integer: if (value.is_numeric()) return toint(value); else throw(~type, "Value is unparsable as integer."); case 'objnum: return (> $object_lib.to_dbref(value) <); default: return value; } }; public method .is_valid_type() { arg type; return ($data_lib.is_valid_type(type)) || (type in (.valid_types())); }; public method .parse_itemlist() { arg value, method, @args; var action, list, item, out; if (value && ((value[1]) in ["+", "-"])) { if ((value[1]) == "-") action = 'del; else action = 'add; list = [substr(value, 2)]; } else { action = 'set; list = value.explode_english_list(); } out = []; for item in (list) { if (method) { catch ~methodnf item = (> sender().(method)(item, action, @args) <); with item = (> .(method)(item, action, @args) <); } out += [item]; } if (action == 'set) return [action, out]; else return [action, out[1]]; }; public method .parse_object() { arg value, @args; var obj; catch any { return $object_lib.to_dbref(value); } with { if (!user()) rethrow(error()); } return (> user().match_environment(value) <); }; public method .valid_types() { return ['boolean, 'itemlist]; };