backbone-relational-rails 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de5400657b78386efd19c290e62ed5d2df7635c8
4
- data.tar.gz: 5bfa9656cb2e4d3c0595802d67db79736373b19a
3
+ metadata.gz: 9c8dbc5405ae4a822d233b7ba0b6f940d66ff832
4
+ data.tar.gz: 6111d454236a0d947397a12cd2b1366beddab57b
5
5
  SHA512:
6
- metadata.gz: 1f02bab2dfbe65002c786cdcaa66526c76d4f7ae3af2cad4942b3b1f995ea5ae325366cfc5596ae71a915bf0c4d2fcc91384da705d0b3b678f7973225a9600c7
7
- data.tar.gz: 5da615e1d9b60a0d0c03d84559441cf91341d571b5c719ec3d36b36bdcbb7625f331fd4e89946a11febc1b10cd7115ee9276339c8b97dfb091ccd0614f9a9d43
6
+ metadata.gz: bf956a0cc739752ac2d118b955d5c4e0f64d492df329b52f4c663ba1f2278f9a3bcb96b6ac93914e0258bac97a65b6f8e48b4e2c98c83d0d7075e9e0631a1e2a
7
+ data.tar.gz: 56770aafb540f06ef3acb27c18cb22642f474f36be9ce03bc854585cc192731300817b21324cf9861607b8095a33b09db9231eaaf60f6cb47bb49407e27c2a3f
data/README.md CHANGED
@@ -18,7 +18,7 @@ Add the following directive to your Javascript manifest file (application.js):
18
18
 
19
19
  ## Versioning
20
20
 
21
- backbone-relational-rails 0.9.0 == Backbone-relational 0.9.0
21
+ backbone-relational-rails 0.10.0 == Backbone-relational 0.10.0
22
22
 
23
23
  Every attempt is made to mirror the currently shipping Backbone-relational version number wherever possible.
24
24
  The major, minor, and patch version numbers will always represent the Backbone-relational version. Should a gem
@@ -26,7 +26,7 @@ bug be discovered, a 4th version identifier will be added and incremented.
26
26
 
27
27
  ## Backbone Version
28
28
 
29
- This release of Backbone-relational is only compatible with Backbone >= 1.1.2.
29
+ This release of Backbone-relational is only compatible with Backbone >= 1.2.1.
30
30
 
31
31
  ## Acknowledgements
32
32
 
@@ -1,7 +1,7 @@
1
1
  module Backbone
2
2
  module Relational
3
3
  module Rails
4
- VERSION = "0.9.0"
4
+ VERSION = "0.10.0"
5
5
  end
6
6
  end
7
7
  end
@@ -1,6 +1,6 @@
1
1
  /* vim: set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab: */
2
2
  /**
3
- * Backbone-relational.js 0.9.0
3
+ * Backbone-relational.js 0.10.0
4
4
  * (c) 2011-2014 Paul Uithol and contributors (https://github.com/PaulUithol/Backbone-relational/graphs/contributors)
5
5
  *
6
6
  * Backbone-relational may be freely distributed under the MIT license; see the accompanying LICENSE.txt.
@@ -1022,9 +1022,8 @@
1022
1022
  }
1023
1023
  else {
1024
1024
  // If `merge` is true, update models here, instead of during update.
1025
- model = this.relatedModel.findOrCreate( attributes,
1026
- _.extend( { merge: true }, options, { create: this.options.createModels } )
1027
- );
1025
+ model = ( _.isObject( attributes ) && options.parse && this.relatedModel.prototype.parse ) ?
1026
+ this.relatedModel.prototype.parse( _.clone( attributes ), options ) : attributes;
1028
1027
  }
1029
1028
 
1030
1029
  model && toAdd.push( model );
@@ -1037,9 +1036,9 @@
1037
1036
  related = this._prepareCollection();
1038
1037
  }
1039
1038
 
1040
- // By now, both `merge` and `parse` will already have been executed for models if they were specified.
1041
- // Disable them to prevent additional calls.
1042
- related.set( toAdd, _.defaults( { merge: false, parse: false }, options ) );
1039
+ // By now, `parse` will already have been executed just above for models if specified.
1040
+ // Disable to prevent additional calls.
1041
+ related.set( toAdd, _.defaults( { parse: false }, options ) );
1043
1042
  }
1044
1043
 
1045
1044
  // Remove entries from `keyIds` that were already part of the relation (and are thus 'unchanged')
@@ -1238,7 +1237,7 @@
1238
1237
  var dit = this,
1239
1238
  args = arguments;
1240
1239
 
1241
- if ( !Backbone.Relational.eventQueue.isLocked() ) {
1240
+ if ( !Backbone.Relational.eventQueue.isBlocked() ) {
1242
1241
  // If we're not in a more complicated nested scenario, fire the change event right away
1243
1242
  Backbone.Model.prototype.trigger.apply( dit, args );
1244
1243
  }
@@ -1494,12 +1493,16 @@
1494
1493
  }
1495
1494
  }
1496
1495
 
1497
- return $.when.apply( null, requests ).then(
1496
+ return this.deferArray(requests).then(
1498
1497
  function() {
1499
1498
  return Backbone.Model.prototype.get.call( dit, attr );
1500
1499
  }
1501
1500
  );
1502
1501
  },
1502
+
1503
+ deferArray: function(deferArray) {
1504
+ return Backbone.$.when.apply(null, deferArray);
1505
+ },
1503
1506
 
1504
1507
  set: function( key, value, options ) {
1505
1508
  Backbone.Relational.eventQueue.block();
@@ -1827,7 +1830,7 @@
1827
1830
  findOrCreate: function( attributes, options ) {
1828
1831
  options || ( options = {} );
1829
1832
  var parsedAttributes = ( _.isObject( attributes ) && options.parse && this.prototype.parse ) ?
1830
- this.prototype.parse( _.clone( attributes ) ) : attributes;
1833
+ this.prototype.parse( _.clone( attributes ), options ) : attributes;
1831
1834
 
1832
1835
  // If specified, use a custom `find` function to match up existing models to the given attributes.
1833
1836
  // Otherwise, try to find an instance of 'this' model type in the store
@@ -1974,20 +1977,16 @@
1974
1977
  };
1975
1978
 
1976
1979
  /**
1977
- * Override 'Backbone.Collection.remove' to trigger 'relational:remove'.
1980
+ * Override 'Backbone.Collection._removeModels' to trigger 'relational:remove'.
1978
1981
  */
1979
- var remove = Backbone.Collection.prototype.__remove = Backbone.Collection.prototype.remove;
1980
- Backbone.Collection.prototype.remove = function( models, options ) {
1982
+ var _removeModels = Backbone.Collection.prototype.___removeModels = Backbone.Collection.prototype._removeModels;
1983
+ Backbone.Collection.prototype._removeModels = function( models, options ) {
1981
1984
  // Short-circuit if this Collection doesn't hold RelationalModels
1982
1985
  if ( !( this.model.prototype instanceof Backbone.RelationalModel ) ) {
1983
- return remove.call( this, models, options );
1986
+ return _removeModels.call( this, models, options );
1984
1987
  }
1985
1988
 
1986
- var singular = !_.isArray( models ),
1987
- toRemove = [];
1988
-
1989
- models = singular ? ( models ? [ models ] : [] ) : _.clone( models );
1990
- options || ( options = {} );
1989
+ var toRemove = [];
1991
1990
 
1992
1991
  //console.debug('calling remove on coll=%o; models=%o, options=%o', this, models, options );
1993
1992
  _.each( models, function( model ) {
@@ -1995,7 +1994,7 @@
1995
1994
  model && toRemove.push( model );
1996
1995
  }, this );
1997
1996
 
1998
- var result = remove.call( this, singular ? ( toRemove.length ? toRemove[ 0 ] : null ) : toRemove, options );
1997
+ var result = _removeModels.call( this, toRemove, options );
1999
1998
 
2000
1999
  _.each( toRemove, function( model ) {
2001
2000
  this.trigger( 'relational:remove', model, this, options );
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backbone-relational-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Marsh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-03 00:00:00.000000000 Z
11
+ date: 2015-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -63,4 +63,3 @@ signing_key:
63
63
  specification_version: 4
64
64
  summary: Backbone-relational packaged for Rails
65
65
  test_files: []
66
- has_rdoc: