backbone-nested-attributes 0.3.0 → 0.3.2

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/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ before_install:
5
+ - "export DISPLAY=:99.0"
6
+ - "sh -e /etc/init.d/xvfb start"
data/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Backbone.NestedAttributesModel
2
2
 
3
+ [![build status][1]][2]
4
+
5
+ [1]: https://travis-ci.org/dtmtec/backbone-nested-attributes.png
6
+ [2]: http://travis-ci.org/dtmtec/backbone-nested-attributes
7
+
3
8
  Add Rails-like nested attributes support for Backbone.Model.
4
9
 
5
10
  ## Installation
@@ -69,7 +74,7 @@ post.get('comments') // returns a Backbone.Collection of Comment models
69
74
  When saving data, you can choose whether to send attributes as usual, or with nested attributes support by giving `{ nested: true }` to `save`:
70
75
 
71
76
  ```javascript
72
- post.save({}, { nested: true })
77
+ post.save({}, { nested: true })
73
78
  ```
74
79
 
75
80
  This will send data to the server like this:
data/Rakefile CHANGED
@@ -10,6 +10,12 @@ load 'rails/tasks/engine.rake'
10
10
 
11
11
  Bundler::GemHelper.install_tasks
12
12
 
13
+ task :travis do
14
+ puts "Starting to run app:jasmine:ci..."
15
+ system("export DISPLAY=:99.0 && bundle exec rake app:jasmine:ci")
16
+ raise "#{cmd} failed!" unless $?.exitstatus == 0
17
+ end
18
+
13
19
  task :jasmine => 'app:jasmine'
14
20
 
15
- task :default => 'app:jasmine:ci'
21
+ task :default => :travis
@@ -65,13 +65,17 @@
65
65
 
66
66
  function clearDeletedModelsFor(model) {
67
67
  _(model.relations).each(function (relation) {
68
- var collection = model.get(relation.key)
68
+ var collectionOrModel = model.get(relation.key)
69
69
 
70
- collection.each(function (nestedModel) {
71
- clearDeletedModelsFor(nestedModel)
72
- })
70
+ if (collectionOrModel && collectionOrModel.each) {
71
+ collectionOrModel.each(function (nestedModel) {
72
+ clearDeletedModelsFor(nestedModel)
73
+ })
73
74
 
74
- collection.deletedModels.reset()
75
+ if (collectionOrModel.deletedModels) {
76
+ collectionOrModel.deletedModels.reset()
77
+ }
78
+ }
75
79
  })
76
80
  }
77
81
 
@@ -198,4 +202,4 @@
198
202
  return BackboneModelPrototype.clear.apply(this, arguments)
199
203
  }
200
204
  })
201
- })(Backbone, _)
205
+ })(Backbone, _)
@@ -1,5 +1,5 @@
1
1
  module Backbone
2
2
  module NestedAttributes
3
- VERSION = "0.3.0"
3
+ VERSION = "0.3.2"
4
4
  end
5
5
  end
@@ -211,6 +211,22 @@ describe("Backbone.NestedAttributesModel", function() {
211
211
  })
212
212
  })
213
213
 
214
+ describe("when synchronizing", function() {
215
+ beforeEach(function() {
216
+ jasmine.Ajax.useMock()
217
+
218
+ model = new Post({ title: 'Some Title', author: { name: 'Jon Snow' } })
219
+ model.url = 'http://someapi.com'
220
+ })
221
+
222
+ it("does not raise errors", function() {
223
+ model.save()
224
+
225
+ var request = mostRecentAjaxRequest();
226
+ request.response({status: 200, responseText: { title: 'Some Title', comments: [] }}) // would raise error
227
+ })
228
+ })
229
+
214
230
  describe("toJSON", function() {
215
231
  beforeEach(function() {
216
232
  model = new Post({ title: 'Some Title', author: { name: 'Jon Snow' } })
@@ -697,4 +713,4 @@ describe("Backbone.NestedAttributesModel", function() {
697
713
  })
698
714
  })
699
715
  })
700
- })
716
+ })
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backbone-nested-attributes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-23 00:00:00.000000000 Z
12
+ date: 2013-08-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -36,6 +36,7 @@ extra_rdoc_files: []
36
36
  files:
37
37
  - .gitignore
38
38
  - .rvmrc
39
+ - .travis.yml
39
40
  - Gemfile
40
41
  - LICENSE.txt
41
42
  - README.md
@@ -99,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
100
  version: '0'
100
101
  segments:
101
102
  - 0
102
- hash: -1599110684641567877
103
+ hash: -909152891193879280
103
104
  required_rubygems_version: !ruby/object:Gem::Requirement
104
105
  none: false
105
106
  requirements:
@@ -108,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
109
  version: '0'
109
110
  segments:
110
111
  - 0
111
- hash: -1599110684641567877
112
+ hash: -909152891193879280
112
113
  requirements: []
113
114
  rubyforge_project:
114
115
  rubygems_version: 1.8.24