backbone-associations-rails 0.5.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ad9d42e9b96ada2d5372ac9afd8a2f61fac9efd
4
- data.tar.gz: 31a564f8cf0c48b5482bf33651be8b313039563f
3
+ metadata.gz: 4bcd1b655d0d7ca907cce576849b3afd9db58c2b
4
+ data.tar.gz: 3ca9a56ca02c6cea24a56ecb137d3bd7c54922dc
5
5
  SHA512:
6
- metadata.gz: a4a617936f29547e43396e8abcd0fe76ff2262a1461c16be6f1cc77a805a4ccb3780b76c8f905da3bab0cf3cf3ec5ea5e408f78c969f76dbe997461945be0026
7
- data.tar.gz: c546323d8137a0939aa9210c046cceac616859bd8dcddb97bcae61ee4ce28d3ad3d4e856ec398d3becc60ff3f5745003c95359f39ca55e11330a312bce48793b
6
+ metadata.gz: f02fb678c48ff7e71e9741b8e927edd94984b239ad3d3b61b1d55ed1b09b1d38d394ef3f28d48fa6aa3fe188fc30cdc466cf2e6033447d9ced79f0a45861f34c
7
+ data.tar.gz: a5c7653f2b00686ab074bce4b687e134e7c3cefe41a4cf2cfb085d2db071b3179b584ef9cb3ff7e4e67ee3fa6be776470ff5446322829fac4444d1ec2f85e0ac
@@ -1,7 +1,7 @@
1
1
  module Backbone
2
2
  module Associations
3
3
  module Rails
4
- VERSION = '0.5.5'
4
+ VERSION = '0.6.0'
5
5
  end
6
6
  end
7
7
  end
@@ -1,13 +1,16 @@
1
- (function(){var z=this,g,e,u,q,v,w,r,C,D,p,A;"undefined"!==typeof exports?(g=require("underscore"),e=require("backbone"),"undefined"!==typeof module&&module.exports&&(module.exports=e),exports=e):(g=z._,e=z.Backbone);u=e.Model;q=e.Collection;v=u.prototype;w=q.prototype;e.Associations={VERSION:"0.5.5"};var E=function(){return p},B=function(a){if(!g.isString(a)||1>g.size(a))a=".";p=a;C=RegExp("[\\"+p+"\\[\\]]+","g");D=RegExp("[^\\"+p+"\\[\\]]+","g")};try{Object.defineProperty(e.Associations,"SEPARATOR",
2
- {enumerable:!0,get:E,set:B})}catch(H){}e.Associations.Many=e.Many="Many";e.Associations.One=e.One="One";e.Associations.Self=e.Self="Self";e.Associations.SEPARATOR=".";e.Associations.getSeparator=E;e.Associations.setSeparator=B;e.Associations.EVENTS_BUBBLE=!0;e.Associations.EVENTS_WILDCARD=!0;e.Associations.EVENTS_NC=!0;B();r=e.AssociatedModel=e.Associations.AssociatedModel=u.extend({relations:void 0,_proxyCalls:void 0,get:function(a){var c=v.get.call(this,a);return c?c:this._getAttr.apply(this,arguments)},
3
- set:function(a,c,d){var b;g.isObject(a)||null==a?(b=a,d=c):(b={},b[a]=c);a=this._set(b,d);this._processPendingEvents();return a},_set:function(a,c){var d,b,e,f,h=this;if(!a)return this;for(d in a)if(b||(b={}),d.match(C)){var l=F(d);f=g.initial(l);l=l[l.length-1];f=this.get(f);f instanceof r&&(f=b[f.cid]||(b[f.cid]={model:f,data:{}}),f.data[l]=a[d])}else f=b[this.cid]||(b[this.cid]={model:this,data:{}}),f.data[d]=a[d];if(b)for(e in b)f=b[e],this._setAttr.call(f.model,f.data,c)||(h=!1);else h=this._setAttr.call(this,
4
- a,c);return h},_setAttr:function(a,c){var d;c||(c={});if(c.unset)for(d in a)a[d]=void 0;this.parents=this.parents||[];this.relations&&g.each(this.relations,function(b){var d=b.key,f=b.relatedModel,h=b.collectionType,l=b.map,k=this.attributes[d],n=k&&k.idAttribute,m,s,t,p=!1;!f||f.prototype instanceof u||(f=g.isFunction(f)?f.call(this,b,a):f);f&&g.isString(f)&&(f=f===e.Self?this.constructor:x(f));h&&g.isString(h)&&(h=x(h));l&&g.isString(l)&&(l=x(l));s=b.options?g.extend({},b.options,c):c;if(!f&&!h)throw Error("specify either a relatedModel or collectionType");
5
- if(a[d]){m=g.result(a,d);m=l?l.call(this,m,h?h:f):m;if(b.type===e.Many){if(h&&!h.prototype instanceof q)throw Error("collectionType must inherit from Backbone.Collection");k?(k._deferEvents=!0,k[s.reset?"reset":"set"](m instanceof q?m.models:m,s),b=k):(p=!0,m instanceof q?b=m:(b=h?new h:this._createCollection(f),b[s.reset?"reset":"set"](m,s)))}else if(b.type===e.One){if(!f)throw Error("specify a relatedModel for Backbone.One type");if(!(f.prototype instanceof e.AssociatedModel))throw Error("specify an AssociatedModel for Backbone.One type");
6
- b=m instanceof r?m:new f(m,s);k&&b.attributes[n]&&k.attributes[n]===b.attributes[n]?(k._deferEvents=!0,k._set(m instanceof r?m.attributes:m,s),b=k):p=!0}else throw Error("type attribute must be specified and have the values Backbone.One or Backbone.Many");t=a[d]=b;if(p||t&&!t._proxyCallback)t._proxyCallback=function(){return e.Associations.EVENTS_BUBBLE&&this._bubbleEvent.call(this,d,t,arguments)},t.on("all",t._proxyCallback,this)}a.hasOwnProperty(d)&&(k=a[d],n=this.attributes[d],k?(k.parents=k.parents||
7
- [],-1==g.indexOf(k.parents,this)&&k.parents.push(this)):n&&0<n.parents.length&&(n.parents=g.difference(n.parents,[this]),n._proxyCallback&&n.off("all",n._proxyCallback,this)))},this);return v.set.call(this,a,c)},_bubbleEvent:function(a,c,d){var b=d[0].split(":"),g=b[0],f="change"===g,h=d[1],l=-1,k=c._proxyCalls,b=b[1],n;if("nested-change"!=d[0]){if(e.Associations.EVENTS_WILDCARD&&/\[\*\]/g.test(b))return this;c instanceof q&&(f||b)&&(l=c.indexOf(A||h));this instanceof u&&(A=this);b=a+(-1!==l&&(f||
8
- b)?"["+l+"]":"")+(b?p+b:"");e.Associations.EVENTS_WILDCARD&&(n=b.replace(/\[\d+\]/g,"[*]"));h=[];h.push.apply(h,d);h[0]=g+":"+b;e.Associations.EVENTS_WILDCARD&&b!==n&&(h[0]=h[0]+" "+g+":"+n);k=c._proxyCalls=k||{};if(this._isEventAvailable.call(this,k,b))return this;k[b]=!0;f&&(this._previousAttributes[a]=c._previousAttributes,this.changed[a]=c);this.trigger.apply(this,h);e.Associations.EVENTS_NC&&(f&&this.get(b)!=d[2])&&(a=["nested-change",b,d[1]],d[2]&&a.push(d[2]),this.trigger.apply(this,a));k&&
9
- b&&delete k[b];A=void 0;return this}},_isEventAvailable:function(a,c){return g.find(a,function(a,b){return-1!==c.indexOf(b,c.length-b.length)})},_createCollection:function(a){var c=a;g.isString(c)&&(c=x(c));if(c&&c.prototype instanceof r||g.isFunction(c))a=new q,a.model=c;else throw Error("type must inherit from Backbone.AssociatedModel");return a},_processPendingEvents:function(){this._processedEvents||(this._processedEvents=!0,this._deferEvents=!1,g.each(this._pendingEvents,function(a){a.c.trigger.apply(a.c,
10
- a.a)}),this._pendingEvents=[],g.each(this.relations,function(a){(a=this.attributes[a.key])&&a._processPendingEvents()},this),delete this._processedEvents)},trigger:function(a){this._deferEvents?(this._pendingEvents=this._pendingEvents||[],this._pendingEvents.push({c:this,a:arguments})):v.trigger.apply(this,arguments)},toJSON:function(a){var c={},d;c[this.idAttribute]=this.id;this.visited||(this.visited=!0,c=v.toJSON.apply(this,arguments),this.relations&&g.each(this.relations,function(b){var e=b.key,
11
- f=b.remoteKey,h=this.attributes[e];b=!b.isTransient;delete c[e];b&&(d=h&&h.toJSON?h.toJSON(a):h,c[f||e]=g.isArray(d)?g.compact(d):d)},this),delete this.visited);return c},clone:function(){return new this.constructor(this.toJSON())},cleanup:function(){g.each(this.relations,function(a){(a=this.attributes[a.key])&&(a.parents=g.difference(a.parents,[this]))},this);this.off()},_getAttr:function(a){var c=this;a=F(a);var d,b;if(!(1>g.size(a))){for(b=0;b<a.length;b++){d=a[b];if(!c)break;c=c instanceof q?
12
- isNaN(d)?void 0:c.at(d):c.attributes[d]}return c}}});var F=function(a){return""===a?[""]:g.isString(a)?a.match(D):a||[]},x=function(a){return g.reduce(a.split(p),function(a,d){return a[d]},z)},G=function(a,c,d){var b,e;g.find(a,function(a){if(b=g.find(a.relations,function(b){return a.get(b.key)===c},this))return e=a,!0},this);return b&&b.map?b.map.call(e,d,c):d},y={};g.each(["set","remove","reset"],function(a){y[a]=q.prototype[a];w[a]=function(c,d){this.model.prototype instanceof r&&this.parents&&
13
- (arguments[0]=G(this.parents,this,c));return y[a].apply(this,arguments)}});y.trigger=w.trigger;w.trigger=function(a){this._deferEvents?(this._pendingEvents=this._pendingEvents||[],this._pendingEvents.push({c:this,a:arguments})):y.trigger.apply(this,arguments)};w._processPendingEvents=r.prototype._processPendingEvents}).call(this);
1
+ (function(x,f){if("function"===typeof define&&define.amd)define(["underscore","backbone"],function(h,u){f(x,u,h)});else if("undefined"!==typeof exports){var h=require("underscore"),u=require("backbone");f(x,u,h)}else f(x,x.Backbone,x._)})(this,function(x,f,h){var u,t,y,z,l,v,F,G,n,C,H,s={};u=f.Model;t=f.Collection;y=u.prototype;l=t.prototype;z=f.Events;f.Associations={VERSION:"0.6.0"};f.Associations.scopes=[];var I=function(){return n},D=function(a){if(!h.isString(a)||1>h.size(a))a=".";n=a;F=RegExp("[\\"+
2
+ n+"\\[\\]]+","g");G=RegExp("[^\\"+n+"\\[\\]]+","g")};try{Object.defineProperty(f.Associations,"SEPARATOR",{enumerable:!0,get:I,set:D})}catch(L){}f.Associations.Many=f.Many="Many";f.Associations.One=f.One="One";f.Associations.Self=f.Self="Self";f.Associations.SEPARATOR=".";f.Associations.getSeparator=I;f.Associations.setSeparator=D;f.Associations.EVENTS_BUBBLE=!0;f.Associations.EVENTS_WILDCARD=!0;f.Associations.EVENTS_NC=!1;D();v=f.AssociatedModel=f.Associations.AssociatedModel=u.extend({relations:void 0,
3
+ _proxyCalls:void 0,on:function(a,d,c){var b=z.on.apply(this,arguments);if(f.Associations.EVENTS_NC)return b;var p=/\s+/;h.isString(a)&&a&&!p.test(a)&&d&&(p=E(a))&&(s[p]="undefined"===typeof s[p]?1:s[p]+1);return b},off:function(a,d,c){if(f.Associations.EVENTS_NC)return z.off.apply(this,arguments);var b=/\s+/,p=this._events,e={},g=p?h.keys(p):[],r=!a&&!d&&!c,w=h.isString(a)&&!b.test(a);if(r||w)for(var b=0,k=g.length;b<k;b++)e[g[b]]=p[g[b]]?p[g[b]].length:0;var q=z.off.apply(this,arguments);if(r||w)for(b=
4
+ 0,k=g.length;b<k;b++)(r=E(g[b]))&&(s[r]=p[g[b]]?s[r]-(e[g[b]]-p[g[b]].length):s[r]-e[g[b]]);return q},get:function(a){var d=y.get.call(this,a);return d?d:this._getAttr.apply(this,arguments)},set:function(a,d,c){var b;h.isObject(a)||null==a?(b=a,c=d):(b={},b[a]=d);a=this._set(b,c);this._processPendingEvents();return a},_set:function(a,d){var c,b,p,e,g=this;if(!a)return this;for(c in a)if(b||(b={}),c.match(F)){var f=J(c);e=h.initial(f);f=f[f.length-1];e=this.get(e);e instanceof v&&(e=b[e.cid]||(b[e.cid]=
5
+ {model:e,data:{}}),e.data[f]=a[c])}else e=b[this.cid]||(b[this.cid]={model:this,data:{}}),e.data[c]=a[c];if(b)for(p in b)e=b[p],this._setAttr.call(e.model,e.data,d)||(g=!1);else g=this._setAttr.call(this,a,d);return g},_setAttr:function(a,d){var c;d||(d={});if(d.unset)for(c in a)a[c]=void 0;this.parents=this.parents||[];this.relations&&h.each(this.relations,function(b){var c=b.key,e=b.relatedModel,g=b.collectionType,r=b.scope||x,w=b.map,k=this.attributes[c],q=k&&k.idAttribute,m,n,l,s=!1;!e||e.prototype instanceof
6
+ u||(e=h.isFunction(e)?e.call(this,b,a):e);e&&h.isString(e)&&(e=e===f.Self?this.constructor:A(e,r));w&&h.isString(w)&&(w=A(w,r));n=b.options?h.extend({},b.options,d):d;if(a[c]){m=h.result(a,c);m=w?w.call(this,m,g?g:e):m;if(b.type===f.Many){if(g&&h.isFunction(g)&&g.prototype instanceof u)throw Error("type is of Backbone.Model. Specify derivatives of Backbone.Collection");!g||g.prototype instanceof t||(g=h.isFunction(g)?g.call(this,b,a):g);g&&h.isString(g)&&(g=A(g,r));if(!e&&!g)throw Error("specify either a relatedModel or collectionType");
7
+ if(g&&!g.prototype instanceof t)throw Error("collectionType must inherit from Backbone.Collection");k?(k._deferEvents=!0,k[n.reset?"reset":"set"](m instanceof t?m.models:m,n),b=k):(s=!0,m instanceof t?b=m:(b=g?new g:this._createCollection(e,r),b[n.reset?"reset":"set"](m,n)))}else if(b.type===f.One){if(!e)throw Error("specify a relatedModel for Backbone.One type");if(!(e.prototype instanceof f.AssociatedModel))throw Error("specify an AssociatedModel for Backbone.One type");b=m instanceof v?m:new e(m,
8
+ n);k&&b.attributes[q]&&k.attributes[q]===b.attributes[q]?(k._deferEvents=!0,k._set(m instanceof v?m.attributes:m,n),b=k):s=!0}else throw Error("type attribute must be specified and have the values Backbone.One or Backbone.Many");l=a[c]=b;if(s||l&&!l._proxyCallback)l._proxyCallback=function(){return f.Associations.EVENTS_BUBBLE&&this._bubbleEvent.call(this,c,l,arguments)},l.on("all",l._proxyCallback,this)}a.hasOwnProperty(c)&&(k=a[c],q=this.attributes[c],k?(k.parents=k.parents||[],-1==h.indexOf(k.parents,
9
+ this)&&k.parents.push(this)):q&&0<q.parents.length&&(q.parents=h.difference(q.parents,[this]),q._proxyCallback&&q.off("all",q._proxyCallback,this)))},this);return y.set.call(this,a,d)},_bubbleEvent:function(a,d,c){var b=c[0].split(":"),h=b[0],e="nested-change"==c[0],g="change"===h,r=c[1],l=-1,k=d._proxyCalls,b=b[1],q=!b||-1==b.indexOf(n),m;if(!e&&(q&&(H=E(c[0])||a),f.Associations.EVENTS_NC||s[H])){if(f.Associations.EVENTS_WILDCARD&&/\[\*\]/g.test(b))return this;d instanceof t&&(g||b)&&(l=d.indexOf(C||
10
+ r));this instanceof u&&(C=this);b=a+(-1!==l&&(g||b)?"["+l+"]":"")+(b?n+b:"");f.Associations.EVENTS_WILDCARD&&(m=b.replace(/\[\d+\]/g,"[*]"));e=[];e.push.apply(e,c);e[0]=h+":"+b;f.Associations.EVENTS_WILDCARD&&b!==m&&(e[0]=e[0]+" "+h+":"+m);k=d._proxyCalls=k||{};if(this._isEventAvailable.call(this,k,b))return this;k[b]=!0;g&&(this._previousAttributes[a]=d._previousAttributes,this.changed[a]=d);this.trigger.apply(this,e);f.Associations.EVENTS_NC&&(g&&this.get(b)!=c[2])&&(a=["nested-change",b,c[1]],
11
+ c[2]&&a.push(c[2]),this.trigger.apply(this,a));k&&b&&delete k[b];C=void 0;return this}},_isEventAvailable:function(a,d){return h.find(a,function(a,b){return-1!==d.indexOf(b,d.length-b.length)})},_createCollection:function(a,d){var c,b=a;h.isString(b)&&(b=A(b,d));if(b&&b.prototype instanceof v||h.isFunction(b))c=new t,c.model=b;else throw Error("type must inherit from Backbone.AssociatedModel");return c},_processPendingEvents:function(){this._processedEvents||(this._processedEvents=!0,this._deferEvents=
12
+ !1,h.each(this._pendingEvents,function(a){a.c.trigger.apply(a.c,a.a)}),this._pendingEvents=[],h.each(this.relations,function(a){(a=this.attributes[a.key])&&a._processPendingEvents()},this),delete this._processedEvents)},trigger:function(a){this._deferEvents?(this._pendingEvents=this._pendingEvents||[],this._pendingEvents.push({c:this,a:arguments})):y.trigger.apply(this,arguments)},toJSON:function(a){var d={},c;d[this.idAttribute]=this.id;this.visited||(this.visited=!0,d=y.toJSON.apply(this,arguments),
13
+ a&&a.serialize_keys&&(d=h.pick(d,a.serialize_keys)),this.relations&&h.each(this.relations,function(b){var f=b.key,e=b.remoteKey,g=this.attributes[f],l=!b.isTransient;b=b.serialize||[];delete d[f];l&&(b.length&&(a?a.serialize_keys=b:a={serialize_keys:b}),c=g&&g.toJSON?g.toJSON(a):g,d[e||f]=h.isArray(c)?h.compact(c):c)},this),delete this.visited);return d},clone:function(a){return new this.constructor(this.toJSON(a))},cleanup:function(){h.each(this.relations,function(a){(a=this.attributes[a.key])&&
14
+ (a.parents=h.difference(a.parents,[this]))},this);this.off()},_getAttr:function(a){var d=this;a=J(a);var c,b;if(!(1>h.size(a))){for(b=0;b<a.length;b++){c=a[b];if(!d)break;d=d instanceof t?isNaN(c)?void 0:d.at(c):d.attributes[c]}return d}}});var J=function(a){return""===a?[""]:h.isString(a)?a.match(G):a||[]},E=function(a){if(!a)return a;a=a.split(":");return 1<a.length?(a=a[a.length-1],a=a.split(n),1<a.length?a[a.length-1].split("[")[0]:a[0].split("[")[0]):""},A=function(a,d){var c,b=[d];b.push.apply(b,
15
+ f.Associations.scopes);for(var l,e=0,g=b.length;e<g;++e)if(l=b[e])if(c=h.reduce(a.split(n),function(a,b){return a[b]},l))break;return c},K=function(a,d,c){var b,f;h.find(a,function(a){if(b=h.find(a.relations,function(b){return a.get(b.key)===d},this))return f=a,!0},this);return b&&b.map?b.map.call(f,c,d):c},B={};h.each(["set","remove","reset"],function(a){B[a]=t.prototype[a];l[a]=function(d,c){this.model.prototype instanceof v&&this.parents&&(arguments[0]=K(this.parents,this,d));return B[a].apply(this,
16
+ arguments)}});B.trigger=l.trigger;l.trigger=function(a){this._deferEvents?(this._pendingEvents=this._pendingEvents||[],this._pendingEvents.push({c:this,a:arguments})):B.trigger.apply(this,arguments)};l._processPendingEvents=v.prototype._processPendingEvents;l.on=v.prototype.on;l.off=v.prototype.off});
@@ -1,5 +1,5 @@
1
1
  //
2
- // Backbone-associations.js 0.5.5
2
+ // Backbone-associations.js 0.6.0
3
3
  //
4
4
  // (c) 2013 Dhruva Ray, Jaynti Kanani, Persistent Systems Ltd.
5
5
  // Backbone-associations may be freely distributed under the MIT license.
@@ -7,42 +7,52 @@
7
7
  // https://github.com/dhruvaray/backbone-associations/
8
8
  //
9
9
 
10
- // Initial Setup
11
- // --------------
12
- (function () {
10
+ (function(root, factory) {
11
+ // Set up Backbone-associations appropriately for the environment. Start with AMD.
12
+ if (typeof define === 'function' && define.amd) {
13
+ define(['underscore', 'backbone'], function(_, Backbone) {
14
+ // Export global even in AMD case in case this script is loaded with
15
+ // others that may still expect a global Backbone.
16
+ factory(root, Backbone, _);
17
+ });
18
+
19
+ // Next for Node.js or CommonJS.
20
+ } else if (typeof exports !== 'undefined') {
21
+ var _ = require('underscore'),
22
+ Backbone = require('backbone');
23
+ factory(root, Backbone, _);
24
+
25
+ // Finally, as a browser global.
26
+ } else {
27
+ factory(root, root.Backbone, root._);
28
+ }
29
+
30
+ }(this, function(root, Backbone, _) {
13
31
  "use strict";
14
32
 
15
- // Save a reference to the global object (`window` in the browser, `exports`
16
- // on the server).
17
- var root = this;
33
+ // Initial Setup
34
+ // --------------
18
35
 
19
36
  // The top-level namespace. All public Backbone classes and modules will be attached to this.
20
37
  // Exported for the browser and CommonJS.
21
- var _, Backbone, BackboneModel, BackboneCollection, ModelProto,
38
+ var BackboneModel, BackboneCollection, ModelProto, BackboneEvent,
22
39
  CollectionProto, AssociatedModel, pathChecker,
23
- delimiters, pathSeparator, source;
40
+ delimiters, pathSeparator, sourceModel, sourceKey, endPoints = {};
24
41
 
25
- if (typeof exports !== 'undefined') {
26
- _ = require('underscore');
27
- Backbone = require('backbone');
28
- if (typeof module !== 'undefined' && module.exports) {
29
- module.exports = Backbone;
30
- }
31
- exports = Backbone;
32
- } else {
33
- _ = root._;
34
- Backbone = root.Backbone;
35
- }
36
42
  // Create local reference `Model` prototype.
37
43
  BackboneModel = Backbone.Model;
38
44
  BackboneCollection = Backbone.Collection;
39
45
  ModelProto = BackboneModel.prototype;
40
46
  CollectionProto = BackboneCollection.prototype;
47
+ BackboneEvent = Backbone.Events;
41
48
 
42
49
  Backbone.Associations = {
43
- VERSION: "0.5.5"
50
+ VERSION: "0.6.0"
44
51
  };
45
52
 
53
+ // Alternative scopes other than root
54
+ Backbone.Associations.scopes = [];
55
+
46
56
  // Define `getter` and `setter` for `separator`
47
57
  var getSeparator = function() {
48
58
  return pathSeparator;
@@ -81,7 +91,7 @@
81
91
 
82
92
  Backbone.Associations.EVENTS_BUBBLE = true;
83
93
  Backbone.Associations.EVENTS_WILDCARD = true;
84
- Backbone.Associations.EVENTS_NC = true;
94
+ Backbone.Associations.EVENTS_NC = false;
85
95
 
86
96
 
87
97
  setSeparator();
@@ -94,6 +104,64 @@
94
104
  // and prevent redundant event to be triggered in case of cyclic model graphs.
95
105
  _proxyCalls:undefined,
96
106
 
107
+ on: function (name, callback, context) {
108
+
109
+ var result = BackboneEvent.on.apply(this, arguments);
110
+
111
+ // No optimization possible if nested-events is wanted by the application
112
+ if (Backbone.Associations.EVENTS_NC) return result;
113
+
114
+ // Regular expression used to split event strings.
115
+ var eventSplitter = /\s+/;
116
+
117
+ // Handle atomic event names only
118
+ if (_.isString(name) && name && (!eventSplitter.test(name)) && callback) {
119
+ var endPoint = getPathEndPoint(name);
120
+ if (endPoint) {
121
+ //Increment end point counter. Represents # of nodes which listen to this end point
122
+ endPoints[endPoint] = (typeof endPoints[endPoint] === 'undefined') ? 1 : (endPoints[endPoint] + 1);
123
+ }
124
+ }
125
+ return result;
126
+ },
127
+
128
+ off: function (name, callback, context) {
129
+
130
+ // No optimization possible if nested-events is wanted by the application
131
+ if (Backbone.Associations.EVENTS_NC) return BackboneEvent.off.apply(this, arguments);
132
+
133
+ var eventSplitter = /\s+/,
134
+ events = this._events,
135
+ listeners = {},
136
+ names = events ? _.keys(events) : [],
137
+ all = (!name && !callback && !context),
138
+ atomic_event = (_.isString(name) && (!eventSplitter.test(name)));
139
+
140
+ if (all || atomic_event) {
141
+ for (var i = 0, l = names.length; i < l; i++) {
142
+ // Store the # of callbacks listening to the event name prior to the `off` call
143
+ listeners[names[i]] = events[names[i]] ? events[names[i]].length : 0;
144
+ }
145
+ }
146
+ // Call Backbone off implementation
147
+ var result = BackboneEvent.off.apply(this, arguments);
148
+
149
+ if (all || atomic_event) {
150
+ for (i = 0, l = names.length; i < l; i++) {
151
+ var endPoint = getPathEndPoint(names[i]);
152
+ if (endPoint) {
153
+ if (events[names[i]]) {
154
+ // Some listeners wiped out for this name for this object
155
+ endPoints[endPoint] -= (listeners[names[i]] - events[names[i]].length);
156
+ } else {
157
+ // All listeners wiped out for this name for this object
158
+ endPoints[endPoint] -= listeners[names[i]];
159
+ }
160
+ }
161
+ }
162
+ }
163
+ return result;
164
+ },
97
165
 
98
166
  // Get the value of an attribute.
99
167
  get:function (attr) {
@@ -172,6 +240,7 @@
172
240
  var relationKey = relation.key,
173
241
  relatedModel = relation.relatedModel,
174
242
  collectionType = relation.collectionType,
243
+ activationContext = relation.scope || root,
175
244
  map = relation.map,
176
245
  currVal = this.attributes[relationKey],
177
246
  idKey = currVal && currVal.idAttribute,
@@ -185,16 +254,15 @@
185
254
 
186
255
  // Get class if relation and map is stored as a string.
187
256
  if (relatedModel && _.isString(relatedModel)) {
188
- relatedModel = (relatedModel === Backbone.Self) ? this.constructor : map2Scope(relatedModel);
257
+ relatedModel = (relatedModel === Backbone.Self) ?
258
+ this.constructor :
259
+ map2Scope(relatedModel, activationContext);
189
260
  }
190
- collectionType && _.isString(collectionType) && (collectionType = map2Scope(collectionType));
191
- map && _.isString(map) && (map = map2Scope(map));
261
+
262
+ map && _.isString(map) && (map = map2Scope(map, activationContext));
192
263
  // Merge in `options` specific to this relation.
193
264
  relationOptions = relation.options ? _.extend({}, relation.options, options) : options;
194
265
 
195
- if ((!relatedModel) && (!collectionType))
196
- throw new Error('specify either a relatedModel or collectionType');
197
-
198
266
  if (attributes[relationKey]) {
199
267
  // Get value of attribute with relation key in `val`.
200
268
  val = _.result(attributes, relationKey);
@@ -204,6 +272,22 @@
204
272
  // If `relation.type` is `Backbone.Many`,
205
273
  // Create `Backbone.Collection` with passed data and perform Backbone `set`.
206
274
  if (relation.type === Backbone.Many) {
275
+
276
+ if (collectionType && _.isFunction(collectionType) &&
277
+ (collectionType.prototype instanceof BackboneModel))
278
+ throw new Error('type is of Backbone.Model. Specify derivatives of Backbone.Collection');
279
+
280
+ // Call function if collectionType is implemented as a function
281
+ if (collectionType && !(collectionType.prototype instanceof BackboneCollection))
282
+ collectionType = _.isFunction(collectionType) ?
283
+ collectionType.call(this, relation, attributes) : collectionType;
284
+
285
+ collectionType && _.isString(collectionType) &&
286
+ (collectionType = map2Scope(collectionType, activationContext));
287
+
288
+ if ((!relatedModel) && (!collectionType))
289
+ throw new Error('specify either a relatedModel or collectionType');
290
+
207
291
  // `collectionType` of defined `relation` should be instance of `Backbone.Collection`.
208
292
  if (collectionType && !collectionType.prototype instanceof BackboneCollection) {
209
293
  throw new Error('collectionType must inherit from Backbone.Collection');
@@ -226,7 +310,8 @@
226
310
  if (val instanceof BackboneCollection) {
227
311
  data = val;
228
312
  } else {
229
- data = collectionType ? new collectionType() : this._createCollection(relatedModel);
313
+ data = collectionType ?
314
+ new collectionType() : this._createCollection(relatedModel, activationContext);
230
315
  data[relationOptions.reset ? 'reset' : 'set'](val, relationOptions);
231
316
  }
232
317
  }
@@ -305,12 +390,19 @@
305
390
  _proxyCalls = relationValue._proxyCalls,
306
391
  cargs,
307
392
  eventPath = opt[1],
393
+ eSrc = !eventPath || (eventPath.indexOf(pathSeparator) == -1),
308
394
  basecolEventPath;
309
395
 
310
396
 
311
397
  // Short circuit the listen in to the nested-graph event
312
398
  if (catch_all) return;
313
399
 
400
+ // Record the source of the event
401
+ if (eSrc) sourceKey = (getPathEndPoint(args[0]) || relationKey);
402
+
403
+ // Short circuit the event bubbling as there are no listeners for this end point
404
+ if (!Backbone.Associations.EVENTS_NC && !endPoints[sourceKey]) return;
405
+
314
406
  // Short circuit the listen in to the wild-card event
315
407
  if (Backbone.Associations.EVENTS_WILDCARD) {
316
408
  if (/\[\*\]/g.test(eventPath)) return this;
@@ -318,12 +410,12 @@
318
410
 
319
411
  if (relationValue instanceof BackboneCollection && (isChangeEvent || eventPath)) {
320
412
  // O(n) search :(
321
- indexEventObject = relationValue.indexOf(source || eventObject);
413
+ indexEventObject = relationValue.indexOf(sourceModel || eventObject);
322
414
  }
323
415
 
324
416
  if (this instanceof BackboneModel) {
325
417
  // A quicker way to identify the model which caused an update inside the collection (while bubbling up)
326
- source = this;
418
+ sourceModel = this;
327
419
  }
328
420
  // Manipulate `eventPath`.
329
421
  eventPath = relationKey + ((indexEventObject !== -1 && (isChangeEvent || eventPath)) ?
@@ -359,6 +451,7 @@
359
451
  this.changed[relationKey] = relationValue;
360
452
  }
361
453
 
454
+
362
455
  // Bubble up event to parent `model` with new changed arguments.
363
456
 
364
457
  this.trigger.apply(this, cargs);
@@ -375,7 +468,7 @@
375
468
  // which allow event to be triggered on for next operation of `set`.
376
469
  if (_proxyCalls && eventPath) delete _proxyCalls[eventPath];
377
470
 
378
- source = undefined;
471
+ sourceModel = undefined;
379
472
 
380
473
  return this;
381
474
  },
@@ -388,9 +481,9 @@
388
481
  },
389
482
 
390
483
  // Returns New `collection` of type `relation.relatedModel`.
391
- _createCollection:function (type) {
484
+ _createCollection: function (type, context) {
392
485
  var collection, relatedModel = type;
393
- _.isString(relatedModel) && (relatedModel = map2Scope(relatedModel));
486
+ _.isString(relatedModel) && (relatedModel = map2Scope(relatedModel, context));
394
487
  // Creates new `Backbone.Collection` and defines model class.
395
488
  if (relatedModel && (relatedModel.prototype instanceof AssociatedModel) || _.isFunction(relatedModel)) {
396
489
  collection = new BackboneCollection();
@@ -445,6 +538,11 @@
445
538
  this.visited = true;
446
539
  // Get json representation from `BackboneModel.toJSON`.
447
540
  json = ModelProto.toJSON.apply(this, arguments);
541
+
542
+ // Pick up only the keys you want to serialize
543
+ if (options && options.serialize_keys) {
544
+ json = _.pick(json, options.serialize_keys);
545
+ }
448
546
  // If `this.relations` is defined, iterate through each `relation`
449
547
  // and added it's json representation to parents' json representation.
450
548
  if (this.relations) {
@@ -452,7 +550,8 @@
452
550
  var key = relation.key,
453
551
  remoteKey = relation.remoteKey,
454
552
  attr = this.attributes[key],
455
- serialize = !relation.isTransient;
553
+ serialize = !relation.isTransient,
554
+ serialize_keys = relation.serialize || []
456
555
 
457
556
  // Remove default Backbone serialization for associations.
458
557
  delete json[key];
@@ -460,20 +559,29 @@
460
559
  //Assign to remoteKey if specified. Otherwise use the default key.
461
560
  //Only for non-transient relationships
462
561
  if (serialize) {
562
+
563
+ // Pass the keys to serialize as options to the toJSON method.
564
+ if (serialize_keys.length) {
565
+ options ?
566
+ (options.serialize_keys = serialize_keys) :
567
+ (options = {serialize_keys: serialize_keys})
568
+ }
569
+
463
570
  aJson = attr && attr.toJSON ? attr.toJSON(options) : attr;
464
571
  json[remoteKey || key] = _.isArray(aJson) ? _.compact(aJson) : aJson;
465
572
  }
466
573
 
467
574
  }, this);
468
575
  }
576
+
469
577
  delete this.visited;
470
578
  }
471
579
  return json;
472
580
  },
473
581
 
474
582
  // Create a new model with identical attributes to this one.
475
- clone:function () {
476
- return new this.constructor(this.toJSON());
583
+ clone: function (options) {
584
+ return new this.constructor(this.toJSON(options));
477
585
  },
478
586
 
479
587
  // Call this if you want to set an `AssociatedModel` to a falsy value like undefined/null directly.
@@ -514,12 +622,44 @@
514
622
  return _.isString(path) ? (path.match(delimiters)) : path || [];
515
623
  };
516
624
 
517
- var map2Scope = function (path) {
518
- return _.reduce(path.split(pathSeparator), function (memo, elem) {
519
- return memo[elem];
520
- }, root);
625
+ // Get the end point of the path.
626
+ var getPathEndPoint = function (path) {
627
+
628
+ if (!path) return path;
629
+
630
+ //event_type:<path>
631
+ var tokens = path.split(":");
632
+
633
+ if (tokens.length > 1) {
634
+ path = tokens[tokens.length - 1];
635
+ tokens = path.split(pathSeparator);
636
+ return tokens.length > 1 ? tokens[tokens.length - 1].split('[')[0] : tokens[0].split('[')[0];
637
+ } else {
638
+ //path of 0 depth
639
+ return "";
640
+ }
641
+
521
642
  };
522
643
 
644
+ var map2Scope = function (path, context) {
645
+ var target,
646
+ scopes = [context];
647
+
648
+ //Check global scopes after passed-in context
649
+ scopes.push.apply(scopes, Backbone.Associations.scopes);
650
+
651
+ for (var ctx, i = 0, l = scopes.length; i < l; ++i) {
652
+ if (ctx = scopes[i]) {
653
+ target = _.reduce(path.split(pathSeparator), function (memo, elem) {
654
+ return memo[elem];
655
+ }, ctx);
656
+ if (target) break;
657
+ }
658
+ }
659
+ return target;
660
+ };
661
+
662
+
523
663
  //Infer the relation from the collection's parents and find the appropriate map for the passed in `models`
524
664
  var map2models = function (parents, target, models) {
525
665
  var relation, surrogate;
@@ -571,6 +711,7 @@
571
711
 
572
712
  // Attach process pending event functionality on collections as well. Re-use from `AssociatedModel`
573
713
  CollectionProto._processPendingEvents = AssociatedModel.prototype._processPendingEvents;
714
+ CollectionProto.on = AssociatedModel.prototype.on;
715
+ CollectionProto.off = AssociatedModel.prototype.off;
574
716
 
575
-
576
- }).call(this);
717
+ }));
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "version":3,
3
3
  "file":"backbone-associations-min.js",
4
- "lineCount":13,
5
- "mappings":"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",
4
+ "lineCount":16,
5
+ "mappings":"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",
6
6
  "sources":["backbone-associations.js"],
7
- "names":["root","_","Backbone","BackboneModel","BackboneCollection","ModelProto","CollectionProto","AssociatedModel","pathChecker","delimiters","pathSeparator","source","exports","require","module","Model","Collection","prototype","Associations","getSeparator","setSeparator","value","isString","size","RegExp","Object","defineProperty","e","Many","One","Self","SEPARATOR","EVENTS_BUBBLE","EVENTS_WILDCARD","EVENTS_NC","extend","undefined","get","attr","obj","call","_getAttr","apply","arguments","set","key","options","attributes","isObject","result","_set","_processPendingEvents","modelMap","modelId","match","pathTokens","getPathArray","initials","initial","last","length","parentModel","cid","data","_setAttr","model","unset","parents","relations","each","relation","relationKey","relatedModel","collectionType","map","currVal","idKey","idAttribute","val","relationOptions","relationValue","newCtx","isFunction","constructor","map2Scope","Error","type","_deferEvents","reset","models","_createCollection","_proxyCallback","relationValue._proxyCallback","_bubbleEvent","on","hasOwnProperty","updated","original","indexOf","push","difference","off","eventArguments","opt","split","eventType","isChangeEvent","eventObject","indexEventObject","_proxyCalls","eventPath","basecolEventPath","test","replace","cargs","_isEventAvailable","_previousAttributes","changed","trigger","ncargs","path","find","eventKey","collection","_processedEvents","_pendingEvents","c","a","name","toJSON","json","aJson","id","visited","remoteKey","serialize","isTransient","isArray","compact","clone","cleanup","attrs","i","isNaN","at","reduce","memo","elem","map2models","target","surrogate","parent","rel","proxies","method"]
7
+ "names":["root","factory","define","amd","_","Backbone","exports","require","BackboneModel","BackboneCollection","ModelProto","BackboneEvent","CollectionProto","AssociatedModel","pathChecker","delimiters","pathSeparator","sourceModel","sourceKey","endPoints","Model","Collection","prototype","Events","Associations","scopes","getSeparator","setSeparator","value","isString","size","RegExp","Object","defineProperty","e","Many","One","Self","SEPARATOR","EVENTS_BUBBLE","EVENTS_WILDCARD","EVENTS_NC","extend","undefined","on","name","callback","context","result","apply","arguments","eventSplitter","test","endPoint","getPathEndPoint","off","events","_events","listeners","names","keys","all","atomic_event","i","l","length","get","attr","obj","call","_getAttr","set","key","options","attributes","isObject","_set","_processPendingEvents","modelMap","modelId","match","pathTokens","getPathArray","initials","initial","last","parentModel","cid","data","_setAttr","model","unset","parents","relations","each","relation","relationKey","relatedModel","collectionType","activationContext","scope","map","currVal","idKey","idAttribute","val","relationOptions","relationValue","newCtx","isFunction","constructor","map2Scope","type","Error","_deferEvents","reset","models","_createCollection","_proxyCallback","relationValue._proxyCallback","_bubbleEvent","hasOwnProperty","updated","original","indexOf","push","difference","eventArguments","opt","split","eventType","catch_all","isChangeEvent","eventObject","indexEventObject","_proxyCalls","eventPath","eSrc","basecolEventPath","replace","cargs","_isEventAvailable","_previousAttributes","changed","trigger","ncargs","path","find","eventKey","collection","_processedEvents","_pendingEvents","c","a","toJSON","json","aJson","id","visited","serialize_keys","pick","remoteKey","serialize","isTransient","isArray","compact","clone","cleanup","attrs","isNaN","at","tokens","target","ctx","reduce","memo","elem","map2models","surrogate","parent","rel","proxies","method"]
8
8
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backbone-associations-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stafford Brunk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-07 00:00:00.000000000 Z
11
+ date: 2014-02-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Backbone-associations provides a way of specifying 1:1 and 1:N relationships
14
14
  between Backbone models. Additionally, parent model instances (and objects extended