+166
-153
@@ -1,37 +0,50 @@ | ||
| // Generated by CoffeeScript 1.3.3 | ||
| /* | ||
| Lifecycle.js 1.0.2 | ||
| (c) 2011, 2012 Kevin Malakoff - http://kmalakoff.github.com/json-serialize/ | ||
| License: MIT (http://www.opensource.org/licenses/mit-license.php) | ||
| Note: some 'extend'-related code from Backbone.js is repeated in this file. | ||
| Please see the following for details on Backbone.js and its licensing: | ||
| https:github.com/documentcloud/backbone/blob/master/LICENSE | ||
| */ | ||
| (function() { | ||
| return (function(factory) { | ||
| // AMD | ||
| if (typeof define === 'function' && define.amd) { | ||
| return define('lifecycle', factory); | ||
| } | ||
| // CommonJS/NodeJS or No Loader | ||
| else { | ||
| return factory.call(this); | ||
| } | ||
| })(function() {// Generated by CoffeeScript 1.3.3 | ||
| /* | ||
| Lifecycle.js 1.0.1 | ||
| (c) 2011, 2012 Kevin Malakoff. | ||
| Lifecycle is freely distributable under the MIT license. | ||
| https:#github.com/kmalakoff/Lifecycle | ||
| Lifecycle.js 1.0.2 | ||
| (c) 2011, 2012 Kevin Malakoff - http://kmalakoff.github.com/json-serialize/ | ||
| License: MIT (http://www.opensource.org/licenses/mit-license.php) | ||
| Note: some code from Backbone.js is repeated in this file. | ||
| Note: some 'extend'-related code from Backbone.js is repeated in this file. | ||
| Please see the following for details on Backbone.js and its licensing: | ||
| https:github.com/documentcloud/backbone | ||
| https:github.com/documentcloud/backbone/blob/master/LICENSE | ||
| */ | ||
| var LC, copyProps, isArray; | ||
| (function() { | ||
| var LC, copyProps, isArray; | ||
| LC = this.LC = typeof exports !== 'undefined' ? exports : {}; | ||
| LC = this.LC = typeof exports !== 'undefined' ? exports : {}; | ||
| LC.VERSION = "1.0.2"; | ||
| LC.VERSION = "1.0.1"; | ||
| isArray = function(obj) { | ||
| return obj.constructor === Array; | ||
| }; | ||
| isArray = function(obj) { | ||
| return obj.constructor === Array; | ||
| }; | ||
| copyProps = function(dest, source) { | ||
| var key, value; | ||
| for (key in source) { | ||
| value = source[key]; | ||
| dest[key] = value; | ||
| } | ||
| return dest; | ||
| }; | ||
| copyProps = function(dest, source) { | ||
| var key, value; | ||
| for (key in source) { | ||
| value = source[key]; | ||
| dest[key] = value; | ||
| } | ||
| return dest; | ||
| }; | ||
| // Shared empty constructor function to aid in prototype-chain creation. | ||
@@ -88,150 +101,150 @@ var ctor = function(){}; | ||
| LC.own = function(obj, options) { | ||
| var clone, key, value, _i, _j, _len, _len1; | ||
| if (!obj || (typeof obj !== "object")) { | ||
| LC.own = function(obj, options) { | ||
| var clone, key, value, _i, _j, _len, _len1; | ||
| if (!obj || (typeof obj !== "object")) { | ||
| return obj; | ||
| } | ||
| options || (options = {}); | ||
| if (isArray(obj)) { | ||
| if (options.share_collection) { | ||
| for (_i = 0, _len = obj.length; _i < _len; _i++) { | ||
| value = obj[_i]; | ||
| LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| }); | ||
| } | ||
| return obj; | ||
| } else { | ||
| clone = []; | ||
| for (_j = 0, _len1 = obj.length; _j < _len1; _j++) { | ||
| value = obj[_j]; | ||
| clone.push(LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| })); | ||
| } | ||
| return clone; | ||
| } | ||
| options || (options = {}); | ||
| if (isArray(obj)) { | ||
| if (options.share_collection) { | ||
| for (_i = 0, _len = obj.length; _i < _len; _i++) { | ||
| value = obj[_i]; | ||
| LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| }); | ||
| } | ||
| return obj; | ||
| } else { | ||
| clone = []; | ||
| for (_j = 0, _len1 = obj.length; _j < _len1; _j++) { | ||
| value = obj[_j]; | ||
| clone.push(LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| })); | ||
| } | ||
| return clone; | ||
| } else if (options.properties) { | ||
| if (options.share_collection) { | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| }); | ||
| } | ||
| } else if (options.properties) { | ||
| if (options.share_collection) { | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| }); | ||
| } | ||
| return obj; | ||
| } else { | ||
| clone = {}; | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| clone[key] = LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| }); | ||
| } | ||
| return clone; | ||
| return obj; | ||
| } else { | ||
| clone = {}; | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| clone[key] = LC.own(value, { | ||
| prefer_clone: options.prefer_clone | ||
| }); | ||
| } | ||
| } else if (obj.retain) { | ||
| if (options.prefer_clone && obj.clone) { | ||
| return obj.clone(); | ||
| } else { | ||
| return obj.retain(); | ||
| } | ||
| } else if (obj.clone) { | ||
| return clone; | ||
| } | ||
| } else if (obj.retain) { | ||
| if (options.prefer_clone && obj.clone) { | ||
| return obj.clone(); | ||
| } else { | ||
| return obj.retain(); | ||
| } | ||
| } else if (obj.clone) { | ||
| return obj.clone(); | ||
| } | ||
| return obj; | ||
| }; | ||
| LC.disown = function(obj, options) { | ||
| var index, key, value, _i, _len; | ||
| if (options == null) { | ||
| options = {}; | ||
| } | ||
| if (!obj || (typeof obj !== "object")) { | ||
| return obj; | ||
| }; | ||
| LC.disown = function(obj, options) { | ||
| var index, key, value, _i, _len; | ||
| if (options == null) { | ||
| options = {}; | ||
| } | ||
| if (isArray(obj)) { | ||
| if (options.clear_values) { | ||
| for (index in obj) { | ||
| value = obj[index]; | ||
| LC.disown(value, { | ||
| clear_values: options.clear_values | ||
| }); | ||
| obj[index] = null; | ||
| } | ||
| } else { | ||
| for (_i = 0, _len = obj.length; _i < _len; _i++) { | ||
| value = obj[_i]; | ||
| LC.disown(value, { | ||
| remove_values: options.remove_values | ||
| }); | ||
| } | ||
| if (options.remove_values) { | ||
| obj.length = 0; | ||
| } | ||
| } | ||
| if (!obj || (typeof obj !== "object")) { | ||
| return obj; | ||
| } | ||
| if (isArray(obj)) { | ||
| if (options.clear_values) { | ||
| for (index in obj) { | ||
| value = obj[index]; | ||
| LC.disown(value, { | ||
| clear_values: options.clear_values | ||
| }); | ||
| obj[index] = null; | ||
| } | ||
| } else { | ||
| for (_i = 0, _len = obj.length; _i < _len; _i++) { | ||
| value = obj[_i]; | ||
| LC.disown(value, { | ||
| remove_values: options.remove_values | ||
| }); | ||
| } | ||
| if (options.remove_values) { | ||
| obj.length = 0; | ||
| } | ||
| } else if (options.properties) { | ||
| if (options.clear_values) { | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| LC.disown(value, { | ||
| clear_values: options.clear_values | ||
| }); | ||
| obj[key] = null; | ||
| } | ||
| } else if (options.properties) { | ||
| if (options.clear_values) { | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| LC.disown(value, { | ||
| clear_values: options.clear_values | ||
| }); | ||
| obj[key] = null; | ||
| } | ||
| } else { | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| LC.disown(value, { | ||
| remove_values: options.remove_values | ||
| }); | ||
| delete obj[key]; | ||
| } | ||
| } else { | ||
| for (key in obj) { | ||
| value = obj[key]; | ||
| LC.disown(value, { | ||
| remove_values: options.remove_values | ||
| }); | ||
| delete obj[key]; | ||
| } | ||
| } else if (obj.release) { | ||
| obj.release(); | ||
| } else if (obj.destroy) { | ||
| obj.destroy(); | ||
| } | ||
| return obj; | ||
| }; | ||
| } else if (obj.release) { | ||
| obj.release(); | ||
| } else if (obj.destroy) { | ||
| obj.destroy(); | ||
| } | ||
| return obj; | ||
| }; | ||
| LC.RefCountable = (function() { | ||
| LC.RefCountable = (function() { | ||
| RefCountable.extend = extend; | ||
| RefCountable.extend = extend; | ||
| function RefCountable() { | ||
| this.__LC || (this.__LC = {}); | ||
| this.__LC.ref_count = 1; | ||
| } | ||
| function RefCountable() { | ||
| this.__LC || (this.__LC = {}); | ||
| this.__LC.ref_count = 1; | ||
| } | ||
| RefCountable.prototype.__destroy = function() {}; | ||
| RefCountable.prototype.__destroy = function() {}; | ||
| RefCountable.prototype.retain = function() { | ||
| if (this.__LC.ref_count <= 0) { | ||
| throw "RefCountable: ref_count is corrupt: " + this.__LC.ref_count; | ||
| } | ||
| this.__LC.ref_count++; | ||
| return this; | ||
| }; | ||
| RefCountable.prototype.retain = function() { | ||
| if (this.__LC.ref_count <= 0) { | ||
| throw "RefCountable: ref_count is corrupt: " + this.__LC.ref_count; | ||
| } | ||
| this.__LC.ref_count++; | ||
| return this; | ||
| }; | ||
| RefCountable.prototype.release = function() { | ||
| if (this.__LC.ref_count <= 0) { | ||
| throw "RefCountable: ref_count is corrupt: " + this.__LC.ref_count; | ||
| } | ||
| this.__LC.ref_count--; | ||
| if (!this.__LC.ref_count) { | ||
| this.__destroy(); | ||
| } | ||
| return this; | ||
| }; | ||
| RefCountable.prototype.release = function() { | ||
| if (this.__LC.ref_count <= 0) { | ||
| throw "RefCountable: ref_count is corrupt: " + this.__LC.ref_count; | ||
| } | ||
| this.__LC.ref_count--; | ||
| if (!this.__LC.ref_count) { | ||
| this.__destroy(); | ||
| } | ||
| return this; | ||
| }; | ||
| RefCountable.prototype.refCount = function() { | ||
| return this.__LC.ref_count; | ||
| }; | ||
| RefCountable.prototype.refCount = function() { | ||
| return this.__LC.ref_count; | ||
| }; | ||
| return RefCountable; | ||
| return RefCountable; | ||
| })(); | ||
| }).call(this); | ||
| })(); | ||
| ; return LC;}); | ||
| }).call(this); |
+5
-8
@@ -1,12 +0,9 @@ | ||
| // Generated by CoffeeScript 1.3.3 | ||
| /* | ||
| Lifecycle.js 1.0.1 | ||
| (c) 2011, 2012 Kevin Malakoff. | ||
| Lifecycle is freely distributable under the MIT license. | ||
| https:#github.com/kmalakoff/Lifecycle | ||
| Lifecycle.js 1.0.2 | ||
| (c) 2011, 2012 Kevin Malakoff - http://kmalakoff.github.com/json-serialize/ | ||
| License: MIT (http://www.opensource.org/licenses/mit-license.php) | ||
| Note: some code from Backbone.js is repeated in this file. | ||
| Note: some 'extend'-related code from Backbone.js is repeated in this file. | ||
| Please see the following for details on Backbone.js and its licensing: | ||
| https:github.com/documentcloud/backbone | ||
| https:github.com/documentcloud/backbone/blob/master/LICENSE | ||
| */(function(){var e,t,n;e=this.LC=typeof exports!="undefined"?exports:{},e.VERSION="1.0.1",n=function(e){return e.constructor===Array},t=function(e,t){var n,r;for(n in t)r=t[n],e[n]=r;return e};var r=function(){},i=function(e,n,i){var s;return n&&n.hasOwnProperty("constructor")?s=n.constructor:s=function(){e.apply(this,arguments)},t(s,e),r.prototype=e.prototype,s.prototype=new r,n&&t(s.prototype,n),i&&t(s,i),s.prototype.constructor=s,s.__super__=e.prototype,s},s=function(e,t){var n=i(this,e,t);return n.extend=this.extend,n};e.own=function(t,r){var i,s,o,u,a,f,l;if(!t||typeof t!="object")return t;r||(r={});if(n(t)){if(r.share_collection){for(u=0,f=t.length;u<f;u++)o=t[u],e.own(o,{prefer_clone:r.prefer_clone});return t}i=[];for(a=0,l=t.length;a<l;a++)o=t[a],i.push(e.own(o,{prefer_clone:r.prefer_clone}));return i}if(r.properties){if(r.share_collection){for(s in t)o=t[s],e.own(o,{prefer_clone:r.prefer_clone});return t}i={};for(s in t)o=t[s],i[s]=e.own(o,{prefer_clone:r.prefer_clone});return i}return t.retain?r.prefer_clone&&t.clone?t.clone():t.retain():t.clone?t.clone():t},e.disown=function(t,r){var i,s,o,u,a;r==null&&(r={});if(!t||typeof t!="object")return t;if(n(t))if(r.clear_values)for(i in t)o=t[i],e.disown(o,{clear_values:r.clear_values}),t[i]=null;else{for(u=0,a=t.length;u<a;u++)o=t[u],e.disown(o,{remove_values:r.remove_values});r.remove_values&&(t.length=0)}else if(r.properties)if(r.clear_values)for(s in t)o=t[s],e.disown(o,{clear_values:r.clear_values}),t[s]=null;else for(s in t)o=t[s],e.disown(o,{remove_values:r.remove_values}),delete t[s];else t.release?t.release():t.destroy&&t.destroy();return t},e.RefCountable=function(){function e(){this.__LC||(this.__LC={}),this.__LC.ref_count=1}return e.extend=s,e.prototype.__destroy=function(){},e.prototype.retain=function(){if(this.__LC.ref_count<=0)throw"RefCountable: ref_count is corrupt: "+this.__LC.ref_count;return this.__LC.ref_count++,this},e.prototype.release=function(){if(this.__LC.ref_count<=0)throw"RefCountable: ref_count is corrupt: "+this.__LC.ref_count;return this.__LC.ref_count--,this.__LC.ref_count||this.__destroy(),this},e.prototype.refCount=function(){return this.__LC.ref_count},e}()}).call(this); | ||
| */(function(){return function(e){return typeof define=="function"&&define.amd?define("lifecycle",e):e.call(this)}(function(){var e,t,n;e=this.LC=typeof exports!="undefined"?exports:{},e.VERSION="1.0.2",n=function(e){return e.constructor===Array},t=function(e,t){var n,r;for(n in t)r=t[n],e[n]=r;return e};var r=function(){},i=function(e,n,i){var s;return n&&n.hasOwnProperty("constructor")?s=n.constructor:s=function(){e.apply(this,arguments)},t(s,e),r.prototype=e.prototype,s.prototype=new r,n&&t(s.prototype,n),i&&t(s,i),s.prototype.constructor=s,s.__super__=e.prototype,s},s=function(e,t){var n=i(this,e,t);return n.extend=this.extend,n};return e.own=function(t,r){var i,s,o,u,a,f,l;if(!t||typeof t!="object")return t;r||(r={});if(n(t)){if(r.share_collection){for(u=0,f=t.length;u<f;u++)o=t[u],e.own(o,{prefer_clone:r.prefer_clone});return t}i=[];for(a=0,l=t.length;a<l;a++)o=t[a],i.push(e.own(o,{prefer_clone:r.prefer_clone}));return i}if(r.properties){if(r.share_collection){for(s in t)o=t[s],e.own(o,{prefer_clone:r.prefer_clone});return t}i={};for(s in t)o=t[s],i[s]=e.own(o,{prefer_clone:r.prefer_clone});return i}return t.retain?r.prefer_clone&&t.clone?t.clone():t.retain():t.clone?t.clone():t},e.disown=function(t,r){var i,s,o,u,a;r==null&&(r={});if(!t||typeof t!="object")return t;if(n(t))if(r.clear_values)for(i in t)o=t[i],e.disown(o,{clear_values:r.clear_values}),t[i]=null;else{for(u=0,a=t.length;u<a;u++)o=t[u],e.disown(o,{remove_values:r.remove_values});r.remove_values&&(t.length=0)}else if(r.properties)if(r.clear_values)for(s in t)o=t[s],e.disown(o,{clear_values:r.clear_values}),t[s]=null;else for(s in t)o=t[s],e.disown(o,{remove_values:r.remove_values}),delete t[s];else t.release?t.release():t.destroy&&t.destroy();return t},e.RefCountable=function(){function e(){this.__LC||(this.__LC={}),this.__LC.ref_count=1}return e.extend=s,e.prototype.__destroy=function(){},e.prototype.retain=function(){if(this.__LC.ref_count<=0)throw"RefCountable: ref_count is corrupt: "+this.__LC.ref_count;return this.__LC.ref_count++,this},e.prototype.release=function(){if(this.__LC.ref_count<=0)throw"RefCountable: ref_count is corrupt: "+this.__LC.ref_count;return this.__LC.ref_count--,this.__LC.ref_count||this.__destroy(),this},e.prototype.refCount=function(){return this.__LC.ref_count},e}(),e})}).call(this); |
+1
-1
@@ -15,3 +15,3 @@ { | ||
| "main" : "lifecycle.js", | ||
| "version" : "1.0.1" | ||
| "version" : "1.0.2" | ||
| } |
+12
-27
| Lifecycle.js provides conventions and helpers to manage the life cycles of Javascript instances. | ||
| #Download Latest (1.1.2): | ||
| You can get the library here: | ||
| Please see the [release notes](https://github.com/kmalakoff/lifecycle/blob/master/RELEASE_NOTES.md) for upgrade pointers. | ||
| * [Development version][1] | ||
| * [Production version][2] | ||
| * [Development version](https://raw.github.com/kmalakoff/lifecycle/1.0.2/lifecycle.js) | ||
| * [Production version](https://raw.github.com/kmalakoff/lifecycle/1.0.2/lifecycle.min.js) | ||
| ###Module Loading | ||
| Lifecycle.js is compatible with RequireJS, CommonJS, Brunch and AMD module loading. Module names: | ||
| * 'lifecycle' - lifecycle.js. | ||
| Introduction | ||
@@ -13,3 +20,3 @@ ------------ | ||
| A good example of this is [Backbone.Articulation][3]. Backbone.Articulation will reconstruct instances of Dates or custom classes within you Backbone.Model's attributes irregardless of what lifecycle model they use (as long as they use one of the known conventions!) | ||
| A good example of this is [Backbone.Articulation](https://github.com/kmalakoff/backbone-articulation). Backbone.Articulation will reconstruct instances of Dates or custom classes within you Backbone.Model's attributes irregardless of what lifecycle model they use (as long as they use one of the known conventions!) | ||
@@ -91,19 +98,2 @@ # LC.own and LC.disown | ||
| # Release Notes | ||
| ###1.0.1 | ||
| - converted back to CoffeeScript | ||
| - build using easy-bake | ||
| - added packaging tests | ||
| - added extend() functionality for JavaScript and CoffeeScript class usability | ||
| - changed convention from _destroy() to __destroy() given that some libraries (like KnockoutJS) use _destroy for other purposes | ||
| - removed Lifecycle alias | ||
| Building, Running and Testing the library | ||
@@ -119,7 +109,2 @@ ----------------------- | ||
| Look at: https://github.com/kmalakoff/easy-bake | ||
| [1]: https://raw.github.com/kmalakoff/lifecycle/1.0.1/lifecycle.js | ||
| [2]: https://raw.github.com/kmalakoff/lifecycle/1.0.1/lifecycle.min.js | ||
| [3]: https://github.com/kmalakoff/backbone-articulation | ||
| Look at: https://github.com/kmalakoff/easy-bake |
13241
2.3%225
5.63%107
-13.01%