backbone-relational-rails 0.6.1 → 0.7.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.
data/README.md CHANGED
@@ -18,12 +18,16 @@ Add the following directive to your Javascript manifest file (application.js):
18
18
 
19
19
  ## Versioning
20
20
 
21
- backbone-relational-rails 0.6.1 == Backbone-relational 0.6.1
21
+ backbone-relational-rails 0.7.0 == Backbone-relational 0.7.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
25
25
  bug be discovered, a 4th version identifier will be added and incremented.
26
26
 
27
+ ## Backbone Version
28
+
29
+ This release of Backbone-relational is only compatible with Backbone >= 0.9.9.
30
+
27
31
  ## Acknowledgements
28
32
 
29
33
  Many thanks to @derekprior for his [tutorial on gemifying assets for Rails](http://prioritized.net/blog/gemify-assets-for-rails/) and his
@@ -1,7 +1,7 @@
1
1
  module Backbone
2
2
  module Relational
3
3
  module Rails
4
- VERSION = "0.6.1"
4
+ VERSION = "0.7.0"
5
5
  end
6
6
  end
7
7
  end
@@ -1,6 +1,7 @@
1
+ /* vim: set tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab */
1
2
  /**
2
- * Backbone-relational.js 0.6.0
3
- * (c) 2011 Paul Uithol
3
+ * Backbone-relational.js 0.7.0
4
+ * (c) 2011-2013 Paul Uithol
4
5
  *
5
6
  * Backbone-relational may be freely distributed under the MIT license; see the accompanying LICENSE.txt.
6
7
  * For details and documentation: https://github.com/PaulUithol/Backbone-relational.
@@ -407,7 +408,7 @@
407
408
  }
408
409
 
409
410
  if ( !this.checkPreconditions() ) {
410
- return false;
411
+ return;
411
412
  }
412
413
 
413
414
  if ( instance ) {
@@ -541,7 +542,7 @@
541
542
 
542
543
  /**
543
544
  * Set the related model(s) for this relation
544
- * @param {Backbone.Mode|Backbone.Collection} related
545
+ * @param {Backbone.Model|Backbone.Collection} related
545
546
  * @param {Object} [options]
546
547
  */
547
548
  setRelated: function( related, options ) {
@@ -862,7 +863,7 @@
862
863
  model = this.relatedModel.findOrCreate( item, { create: this.options.createModels } );
863
864
  }
864
865
 
865
- if ( model && !this.related.getByCid( model ) && !this.related.get( model ) ) {
866
+ if ( model && !this.related.get( model ) ) {
866
867
  models.push( model );
867
868
  }
868
869
  }, this );
@@ -897,7 +898,7 @@
897
898
  if (!_.isArray( attr ) && attr !== undefined) {
898
899
  attr = [ attr ];
899
900
  }
900
- var oldIds;
901
+
901
902
  _.each( attr, function( attributes ) {
902
903
  newIds[ attributes.id ] = true;
903
904
  });
@@ -936,7 +937,7 @@
936
937
 
937
938
  tryAddRelated: function( model, options ) {
938
939
  options = this.sanitizeOptions( options );
939
- if ( !this.related.getByCid( model ) && !this.related.get( model ) ) {
940
+ if ( !this.related.get( model ) ) {
940
941
  // Check if this new model was specified in 'this.keyContents'
941
942
  var item = _.any( this.keyContents || [], function( item ) {
942
943
  var id = Backbone.Relational.store.resolveIdForItem( this.relatedModel, item );
@@ -1009,7 +1010,7 @@
1009
1010
  var dit = this;
1010
1011
  options = this.unsanitizeOptions( options );
1011
1012
  model.queue( function() { // Queued to avoid errors for adding 'model' to the 'this.related' set twice
1012
- if ( dit.related && !dit.related.getByCid( model ) && !dit.related.get( model ) ) {
1013
+ if ( dit.related && !dit.related.get( model ) ) {
1013
1014
  dit.related.add( model, options );
1014
1015
  }
1015
1016
  });
@@ -1017,7 +1018,7 @@
1017
1018
 
1018
1019
  removeRelated: function( model, options ) {
1019
1020
  options = this.unsanitizeOptions( options );
1020
- if ( this.related.getByCid( model ) || this.related.get( model ) ) {
1021
+ if ( this.related.get( model ) ) {
1021
1022
  this.related.remove( model, options );
1022
1023
  }
1023
1024
  }
@@ -1554,12 +1555,19 @@
1554
1555
  * if the collection.model has subModels.
1555
1556
  */
1556
1557
  Backbone.Collection.prototype.__prepareModel = Backbone.Collection.prototype._prepareModel;
1557
- Backbone.Collection.prototype._prepareModel = function ( model, options ) {
1558
- options || (options = {});
1559
- if ( !( model instanceof Backbone.Model ) ) {
1560
- var attrs = model;
1558
+ Backbone.Collection.prototype._prepareModel = function ( attrs, options ) {
1559
+ var model;
1560
+
1561
+ if ( attrs instanceof Backbone.Model ) {
1562
+ if ( !attrs.collection ) {
1563
+ attrs.collection = this;
1564
+ }
1565
+ model = attrs;
1566
+ }
1567
+ else {
1568
+ options || (options = {});
1561
1569
  options.collection = this;
1562
-
1570
+
1563
1571
  if ( typeof this.model.findOrCreate !== 'undefined' ) {
1564
1572
  model = this.model.findOrCreate( attrs, options );
1565
1573
  }
@@ -1567,16 +1575,14 @@
1567
1575
  model = new this.model( attrs, options );
1568
1576
  }
1569
1577
 
1570
- if ( !model._validate( model.attributes, options ) ) {
1578
+ if ( !model._validate( attrs, options ) ) {
1571
1579
  model = false;
1572
1580
  }
1573
1581
  }
1574
- else if ( !model.collection ) {
1575
- model.collection = this;
1576
- }
1577
1582
 
1578
1583
  return model;
1579
- }
1584
+ };
1585
+
1580
1586
 
1581
1587
  /**
1582
1588
  * Override Backbone.Collection.add, so objects fetched from the server multiple times will
@@ -1599,10 +1605,10 @@
1599
1605
  model = Backbone.Collection.prototype._prepareModel.call( this, model, options );
1600
1606
  }
1601
1607
 
1602
- if ( model instanceof Backbone.Model && !this.get( model ) && !this.getByCid( model ) ) {
1603
- modelsToAdd.push( model );
1604
- }
1605
- }, this );
1608
+ if ( model instanceof Backbone.Model && !this.get( model ) ) {
1609
+ modelsToAdd.push( model );
1610
+ }
1611
+ }, this );
1606
1612
 
1607
1613
  // Add 'models' in a single batch, so the original add will only be called once (and thus 'sort', etc).
1608
1614
  if ( modelsToAdd.length ) {
@@ -1631,7 +1637,7 @@
1631
1637
 
1632
1638
  //console.debug('calling remove on coll=%o; models=%o, options=%o', this, models, options );
1633
1639
  _.each( models || [], function( model ) {
1634
- model = this.getByCid( model ) || this.get( model );
1640
+ model = this.get( model );
1635
1641
 
1636
1642
  if ( model instanceof Backbone.Model ) {
1637
1643
  remove.call( this, model, options );
@@ -1674,11 +1680,11 @@
1674
1680
  var dit = this, args = arguments;
1675
1681
 
1676
1682
  if (eventName === 'add') {
1677
- args = _.toArray(args);
1683
+ args = _.toArray( args );
1678
1684
  // the fourth argument in case of a regular add is the option object.
1679
1685
  // we need to clone it, as it could be modified while we wait on the eventQueue to be unblocked
1680
- if (_.isObject(args[3])) {
1681
- args[3] = _.clone(args[3]);
1686
+ if (_.isObject( args[3] ) ) {
1687
+ args[3] = _.clone( args[3] );
1682
1688
  }
1683
1689
  }
1684
1690
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backbone-relational-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -56,7 +56,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
56
  version: '0'
57
57
  segments:
58
58
  - 0
59
- hash: -4585206542888784471
59
+ hash: 4485082081012907281
60
60
  required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  version: '0'
66
66
  segments:
67
67
  - 0
68
- hash: -4585206542888784471
68
+ hash: 4485082081012907281
69
69
  requirements: []
70
70
  rubyforge_project:
71
71
  rubygems_version: 1.8.24