Warning: session_start(): open(/var/lib/php/sessions/sess_lct41bobevgd5jduoo70n5d3tg, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass NewWoody {
Map rulesByName;
new L badRules;
S lastOutput;
BBRule activeRule;
*() {
rulesByName = indexFieldAsCIMap('listName, bb_allRules());
}
*(NewWoody w) {
copyFields(w, this, 'rulesByName, 'badRules);
}
void processInput(S input) {
temp tempSetTL(ctxContext_var(), nu(CtxContext, +input));
new L matching;
for (BBRule r : valuesList(rulesByName)) {
continue unless ruleExpressionMatches(r);
matching.add(r);
}
lastOutput = null;
activeRule = first(matching);
if (activeRule != null)
lastOutput = random(activeRule.answers);
}
bool ruleExpressionMatches(BBRule r) {
continue if empty(r.expression);
try {
if (ctxEvalCondition(r.expression))
matching.add(r);
} catch print e {
badRules.add(r);
rulesByName.remove(r.listName);
}
}
bool listsMaching(S input) {
temp tempSetTL(ctxContext_var(), nu(CtxContext, +input));
ret filter ruleExpressionMatches(valuesList(rules));
}
}