Skip to content

Commit d773230

Browse files
Merge pull request #85 from mithunsatheesh/5.0.0
5.0.0
2 parents e2f02c3 + 5739577 commit d773230

File tree

3 files changed

+18
-73
lines changed

3 files changed

+18
-73
lines changed

lib/node-rules.js

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -128,36 +128,5 @@
128128
}
129129
this.sync();
130130
}
131-
RuleEngine.prototype.toJSON = function() {
132-
var rules = this.rules;
133-
if (rules instanceof Array) {
134-
rules = rules.map(function(rule) {
135-
rule.condition = rule.condition.toString();
136-
rule.consequence = rule.consequence.toString();
137-
return rule;
138-
});
139-
} else if (typeof(rules) != "undefined") {
140-
rules.condition = rules.condition.toString();
141-
rules.consequence = rules.consequence.toString();
142-
}
143-
return rules;
144-
};
145-
RuleEngine.prototype.fromJSON = function(rules) {
146-
this.init();
147-
if (typeof(rules) == "string") {
148-
rules = JSON.parse(rules);
149-
}
150-
if (rules instanceof Array) {
151-
rules = rules.map(function(rule) {
152-
rule.condition = eval("(" + rule.condition + ")");
153-
rule.consequence = eval("(" + rule.consequence + ")");
154-
return rule;
155-
});
156-
} else if (rules !== null && typeof(rules) == "object") {
157-
rules.condition = eval("(" + rules.condition + ")");
158-
rules.consequence = eval("(" + rules.consequence + ")");
159-
}
160-
this.register(rules);
161-
};
162131
module.exports = RuleEngine;
163132
}(module.exports));

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-rules",
3-
"version": "4.0.2",
3+
"version": "5.0.0",
44
"description": "Business Rules Engine for JavaScript",
55
"keywords": [
66
"bre",

test/index.js

Lines changed: 17 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -381,55 +381,31 @@ describe("Rules", function() {
381381
expect(R.activeRules[0].id).to.eql("one");
382382
});
383383
});
384-
describe(".toJSON() & .fromJSON", function() {
384+
describe("ignoreFactChanges", function() {
385385
var rules = [{
386+
"name": "rule1",
386387
"condition": function(R) {
387-
R.when(1);
388+
R.when(this.value1 > 5);
388389
},
389390
"consequence": function(R) {
390-
R.stop();
391-
},
392-
"on": true
391+
this.result = false;
392+
this.errors = this.errors || [];
393+
this.errors.push('must be less than 5');
394+
R.next();
395+
}
393396
}];
394-
it("rules after toJSON and fromJSON back should be equivalent to the old form", function() {
395-
var R1 = new RuleEngine(rules);
396-
var store = R1.toJSON();
397-
var R2 = new RuleEngine();
398-
R2.fromJSON(store);
399-
expect(R1.rules).to.eql(R2.rules);
400-
});
401-
it("rules serilisation & back working fine?", function() {
402-
var R = new RuleEngine(rules);
403-
var store = R.toJSON();
404-
R.fromJSON(store);
405-
expect(rules).to.eql(R.rules);
406-
});
407-
});
408-
describe("ignoreFactChanges", function() {
409-
var rules = [{
410-
"name": "rule1",
411-
"condition": function(R) {
412-
R.when(this.value1 > 5);
413-
},
414-
"consequence": function(R) {
415-
this.result = false;
416-
this.errors = this.errors || [];
417-
this.errors.push('must be less than 5');
418-
R.next();
419-
}
420-
}];
421397

422-
var fact = {
423-
"value1": 6
424-
};
398+
var fact = {
399+
"value1": 6
400+
};
425401

426-
it("doesn't rerun when a fact changes if ignoreFactChanges is true", function(done) {
427-
var R = new RuleEngine(rules, { ignoreFactChanges: true });
402+
it("doesn't rerun when a fact changes if ignoreFactChanges is true", function(done) {
403+
var R = new RuleEngine(rules, { ignoreFactChanges: true });
428404

429-
R.execute(fact, function(result) {
430-
expect(result.errors).to.have.length(1);
431-
done();
405+
R.execute(fact, function(result) {
406+
expect(result.errors).to.have.length(1);
407+
done();
408+
});
432409
});
433410
});
434-
});
435411
});

0 commit comments

Comments
 (0)