coresmart / persistencejs

persistence.js is an asynchronous Javascript database mapper library. You can use it in the browser, as well on the server (and you can share data models between them).
http://persistencejs.org
1.73k stars 240 forks source link

"session" not set for memory store #61

Closed jvpoucke closed 12 years ago

jvpoucke commented 12 years ago

Code in persistence.store.memory.js should be: persistence.flush = function (tx, callback) { var args = argspec.getArgs(arguments, [ { name: "tx", optional: true, check: persistence.isTransaction }, { name: "callback", optional: true, check: argspec.isCallback(), defaultValue: function(){} } ]);

var session = this; /*<------ bugfix ---*/
var fns = persistence.flushHooks;
persistence.asyncForEach(fns, function(fn, callback) {
    fn(session, tx, callback); /*<------ else session in undefined here ---*/
  }, function() {
    var trackedObjects = persistence.trackedObjects;
    for(var id in trackedObjects) {
      if(trackedObjects.hasOwnProperty(id)) {
        if (persistence.objectsToRemove.hasOwnProperty(id)) {
          delete trackedObjects[id];
        } else {
          trackedObjects[id]._dirtyProperties = {};
        }
      }
    }
    args.callback();
  });

};

zefhemel commented 12 years ago

Fixed. Thanks!