12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- var util = require('util')
- , deep = require('..')
- ;
- function duckWalk() {
- util.log('right step, left-step, waddle');
- }
- function quadrapedWalk() {
- util.log('right hind-step, right fore-step, left hind-step, left fore-step');
- }
- var duck = {
- legs: 2,
- walk: duckWalk
- };
- var dog = {
- legs: 4,
- walk: quadrapedWalk
- };
- var diff = deep.diff(duck, dog);
- util.log('Differences:\r\n' + util.inspect(diff, false, 9));
- var observed = [];
- deep.observableDiff(duck, dog, function (d) {
- if (d && d.lhs && typeof d.lhs !== 'function') {
- observed.push(d);
- }
- });
- util.log('Observed without recording functions:\r\n' + util.inspect(observed, false, 9));
- util.log(util.inspect(dog, false, 9) + ' walking: ');
- dog.walk();
- deep.observableDiff(dog, duck, function (d) {
- deep.applyChange(dog, duck, d);
- });
- util.log(util.inspect(dog, false, 9) + ' walking: ');
- dog.walk();
- if (deep.diff(duck, dog)) {
- util.log("Ooops, that prior statement seems to be wrong! (but it won't be)");
- }
- dog.walk = function duckWalk() {
- util.log('right step, left-step, waddle');
- };
- if (diff = deep.diff(duck, dog)) {
-
- util.log('Hrmm, the dog walks differently: ' + util.inspect(diff, false, 9));
- }
- observed = [];
- deep.observableDiff(duck, dog, function (d) {
-
- if (d && typeof d.lhs === 'function' && typeof d.rhs === 'function') {
- var leftFnText = d.lhs.toString();
- var rightFnText = d.rhs.toString();
- if (leftFnText !== rightFnText) {
- observed.push(d);
- }
- } else {
- observed.push(d);
- }
- });
- if (observed.length === 0) {
- util.log('Yay!, we detected that the walk functions are equivalent');
- }
|