backbone-filtered-collection 1.2.0 → 1.2.1

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: 652f34d8646e018db86ec95f4722b8b115a0078f
4
- data.tar.gz: bf1d2c926f9e1e0135984b78613d3ddc36a055e8
3
+ metadata.gz: ab93a979fe8e435f5d48597d79582f2a8019eee3
4
+ data.tar.gz: fc6f40626046d710f63f3200b4d91d4c974c8900
5
5
  SHA512:
6
- metadata.gz: 69c6b95b7d3d05da2521ced7e1cb26fe970efb633869d9459cc52907f8a02105d982f5f500e07c9bd33f48b6ec9cc3ddb6982b3a574c67f16c8c6b353a1de4fc
7
- data.tar.gz: f1c0fde67a77d7e28c15e4e7808d4d6c4ee4feb22a4d67cf520c5b119472845e89e08f05dafeb9700b7b23139e0d4109a0751f7d70e9bf3d5f08c8d787efdb88
6
+ metadata.gz: 6d2256530258f3d78fc40027317e11fdd90a332ec9e46fa4db651a0de2bcc6f9a7262dc0be40d6f7783b5f467fee4cb1e3337ed1805c3b6aac78ccb90ee8fce5
7
+ data.tar.gz: d5e5b4e1c5e4b5918ee460b3e97d2ad4787dc4b3686be1f9f93fc5f991961871a95cdbe8290b4ae9986f406f5ba744cb09f286ccd4ad0e76d0bb4f4f8f64e76e
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ filtered-collection
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.0.0-p353
@@ -20,5 +20,5 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency "railties", ">= 3.0", "< 5.0"
21
21
 
22
22
  gem.add_development_dependency 'rake'
23
- gem.add_development_dependency 'jasmine'
23
+ gem.add_development_dependency 'jasmine', '< 2.0'
24
24
  end
@@ -1,5 +1,5 @@
1
1
  module Backbone
2
2
  module FilteredCollection
3
- VERSION = "1.2.0"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
@@ -377,6 +377,37 @@ describe("Backbone.FilteredCollection", function() {
377
377
  expect(addSpy).toHaveBeenCalledWith(origModelZero, collection, jasmine.any(Object));
378
378
  expect(removeSpy).not.toHaveBeenCalled();
379
379
  });
380
+
381
+ it("property change events are fired on filtered collection", function() {
382
+ var collection = new Backbone.Collection([ {id: 1, difficulty: 1}, {id: 2, difficulty: 2}, {id: 3, difficulty: 1}, {id: 4, difficulty: 3} ]);
383
+ var filteredCollection = new Backbone.FilteredCollection(null, {collection: collection});
384
+ filteredCollection.setFilter(function(d) { return (d.get('difficulty') === 1) });
385
+
386
+ var changeCount = 0;
387
+ var newModel = new Backbone.Model({id: 5, difficulty: 1});
388
+ collection.add(newModel);
389
+
390
+ filteredCollection.on("change:blah", function() { changeCount = changeCount + 1; });
391
+ filteredCollection.on("change:blubb", function() { changeCount = changeCount + 1; });
392
+ newModel.set({"blah": "blah"});
393
+
394
+ expect(changeCount).toEqual(1);
395
+ });
396
+
397
+ it("property change events are not fired if it does not fit filter", function() {
398
+ var collection = new Backbone.Collection([ {id: 1, difficulty: 1}, {id: 2, difficulty: 2}, {id: 3, difficulty: 1}, {id: 4, difficulty: 3} ]);
399
+ var filteredCollection = new Backbone.FilteredCollection(null, {collection: collection});
400
+ filteredCollection.setFilter(function(d) { return (d.get('difficulty') === 1) });
401
+
402
+ var changeCount = 0;
403
+ var newModel = new Backbone.Model({id: 5, difficulty: 1});
404
+ collection.add(newModel);
405
+
406
+ filteredCollection.on("change:difficulty", function() { changeCount = changeCount + 1; });
407
+ newModel.set("difficulty", 2);
408
+
409
+ expect(changeCount).toEqual(0);
410
+ });
380
411
  });
381
412
 
382
413
  describe("#resetWith", function() {
@@ -107,6 +107,7 @@ THE SOFTWARE.
107
107
  options || (options = {});
108
108
 
109
109
  var ownIndexOfModel = this.indexOf(model);
110
+ var self = this;
110
111
  if (this.collectionFilter(model)){
111
112
  // Model passed filter
112
113
  if (ownIndexOfModel < 0){
@@ -117,6 +118,10 @@ THE SOFTWARE.
117
118
  // the model passes the filter and is already in the collection
118
119
  // therefore we want to indicate that the model has changed
119
120
  else {
121
+ _.each(_.keys(model.changed), function(key) {
122
+ self.trigger("change:" + key, model, model.changed[key], options);
123
+ });
124
+
120
125
  this.trigger("change", model, this);
121
126
  }
122
127
  } else {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backbone-filtered-collection
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Likhten
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-10 00:00:00.000000000 Z
11
+ date: 2014-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -48,16 +48,16 @@ dependencies:
48
48
  name: jasmine
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '>='
51
+ - - <
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: '2.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '>='
58
+ - - <
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: '2.0'
61
61
  description: A filtered collection for backbone.js
62
62
  email:
63
63
  - dlikhten@gmail.com
@@ -66,7 +66,8 @@ extensions: []
66
66
  extra_rdoc_files: []
67
67
  files:
68
68
  - .gitignore
69
- - .rvmrc
69
+ - .ruby-gemset
70
+ - .ruby-version
70
71
  - .travis.yml
71
72
  - Gemfile
72
73
  - LICENSE
@@ -104,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
105
  version: '0'
105
106
  requirements: []
106
107
  rubyforge_project:
107
- rubygems_version: 2.0.6
108
+ rubygems_version: 2.1.11
108
109
  signing_key:
109
110
  specification_version: 4
110
111
  summary: Allowing implementation of a chain-of-responsibility pattern in backbone's
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use ruby-2.0.0-p247@filtered-collection --create