backbone-filtered-collection 1.2.0 → 1.2.1

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: 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