Skip to content

Commit

Permalink
Added clear method to store.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kevin Malakoff committed Sep 25, 2012
1 parent 93dafba commit 80ede52
Show file tree
Hide file tree
Showing 25 changed files with 96 additions and 45 deletions.
8 changes: 6 additions & 2 deletions knockback-core-stack.js
Original file line number Diff line number Diff line change
Expand Up @@ -6459,6 +6459,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -6470,8 +6474,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
2 changes: 1 addition & 1 deletion knockback-core-stack.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions knockback-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -531,8 +535,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
2 changes: 1 addition & 1 deletion knockback-core.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions knockback-full-stack.js
Original file line number Diff line number Diff line change
Expand Up @@ -6459,6 +6459,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -6470,8 +6474,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
4 changes: 2 additions & 2 deletions knockback-full-stack.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions knockback.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -531,8 +535,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
4 changes: 2 additions & 2 deletions knockback.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/npm/knockback-core-stack.js
Original file line number Diff line number Diff line change
Expand Up @@ -6459,6 +6459,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -6470,8 +6474,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
2 changes: 1 addition & 1 deletion packages/npm/knockback-core-stack.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/npm/knockback-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -531,8 +535,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
2 changes: 1 addition & 1 deletion packages/npm/knockback-core.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/npm/knockback-full-stack.js
Original file line number Diff line number Diff line change
Expand Up @@ -6459,6 +6459,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -6470,8 +6474,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
4 changes: 2 additions & 2 deletions packages/npm/knockback-full-stack.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/npm/knockback.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -531,8 +535,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
4 changes: 2 additions & 2 deletions packages/npm/knockback.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/nuget/Content/Scripts/knockback-core-stack.js
Original file line number Diff line number Diff line change
Expand Up @@ -6459,6 +6459,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -6470,8 +6474,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
2 changes: 1 addition & 1 deletion packages/nuget/Content/Scripts/knockback-core-stack.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/nuget/Content/Scripts/knockback-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -531,8 +535,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
2 changes: 1 addition & 1 deletion packages/nuget/Content/Scripts/knockback-core.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/nuget/Content/Scripts/knockback-full-stack.js
Original file line number Diff line number Diff line change
Expand Up @@ -6459,6 +6459,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -6470,8 +6474,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
4 changes: 2 additions & 2 deletions packages/nuget/Content/Scripts/knockback-full-stack.min.js

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions packages/nuget/Content/Scripts/knockback.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,10 @@ kb.Store = (function() {
}

Store.prototype.destroy = function() {
return this.clear();
};

Store.prototype.clear = function() {
var observable, record, _i, _j, _len, _len1, _ref, _ref1;
_ref = this.observable_records;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
Expand All @@ -531,8 +535,8 @@ kb.Store = (function() {
observable = _ref1[_j];
kb.release(observable);
}
this.observable_records = null;
return this.replaced_observables = null;
this.observable_records = [];
return this.replaced_observables = [];
};

Store.prototype.register = function(obj, observable, options) {
Expand Down
4 changes: 2 additions & 2 deletions packages/nuget/Content/Scripts/knockback.min.js

Large diffs are not rendered by default.

9 changes: 6 additions & 3 deletions src/knockback-core/knockback-store.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,16 @@ class kb.Store

# Required clean up function to break cycles, release view models, etc.
# Can be called directly, via kb.release(object) or as a consequence of ko.releaseNode(element).
destroy: ->
destroy: -> @clear()

# Manually clear the store.
clear: ->
for record in @observable_records
kb.release(record.observable)
for observable in @replaced_observables
kb.release(observable)
@observable_records = null
@replaced_observables = null
@observable_records = []
@replaced_observables = []

# Used to register a new view model with the store.
#
Expand Down

0 comments on commit 80ede52

Please sign in to comment.