ember-rest-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Ember::Rest::Rails
2
2
 
3
3
  Allows you to include
4
- [Ember-REST](https://github.com/cerebris/ember-rest) in your Rails 3.x
4
+ [Ember-REST](https://github.com/cerebris/ember-rest) in your Rails 3
5
5
  Application.
6
6
 
7
- Ember-REST version is from commit [b4abc4e1e213a0be3cb4ecf4aae2b877b21013c7](https://github.com/cerebris/ember-rest/commit/b4abc4e1e213a0be3cb4ecf4aae2b877b21013c7).
7
+ Ember-REST version is 0.1.1 (works with Ember.js 0.9.6).
8
8
 
9
9
  ## Installation
10
10
 
@@ -1,7 +1,7 @@
1
1
  module Ember
2
2
  module Rest
3
3
  module Rails
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
6
6
  end
7
7
  end
@@ -1,5 +1,5 @@
1
1
  /**
2
- Ember-REST.js
2
+ Ember-REST.js 0.1.1
3
3
 
4
4
  A simple library for RESTful resources in Ember.js
5
5
 
@@ -65,7 +65,7 @@ if (Ember.ResourceAdapter === undefined) {
65
65
  * `deserializeProperty(prop, value)`
66
66
  * `validate()`
67
67
  */
68
- Ember.Resource = Ember.Object.extend({
68
+ Ember.Resource = Ember.Object.extend(Ember.ResourceAdapter, Ember.Copyable, {
69
69
  resourceIdField: 'id',
70
70
  resourceUrl: Ember.required(),
71
71
 
@@ -87,6 +87,20 @@ Ember.Resource = Ember.Object.extend({
87
87
  }
88
88
  },
89
89
 
90
+ /**
91
+ Create a copy of this resource
92
+
93
+ Needed to implement Ember.Copyable
94
+
95
+ REQUIRED: `resourceProperties`
96
+ */
97
+ copy: function(deep) {
98
+ var c = this.constructor.create();
99
+ c.duplicateProperties(this);
100
+ c.set(this.resourceIdField, this.get(this.resourceIdField));
101
+ return c;
102
+ },
103
+
90
104
  /**
91
105
  Generate this resource's JSON representation
92
106
 
@@ -224,7 +238,7 @@ Ember.Resource = Ember.Object.extend({
224
238
  _resourceId: function() {
225
239
  return this.get(this.resourceIdField);
226
240
  }
227
- }, Ember.ResourceAdapter);
241
+ });
228
242
 
229
243
  /**
230
244
  A controller for RESTful resources
@@ -236,7 +250,7 @@ Ember.Resource = Ember.Object.extend({
236
250
  * `resourceUrl` -- (optional) the base url of the resource (e.g. '/contacts/active');
237
251
  will default to the `resourceUrl` for `resourceType`
238
252
  */
239
- Ember.ResourceController = Ember.ArrayController.extend({
253
+ Ember.ResourceController = Ember.ArrayController.extend(Ember.ResourceAdapter, {
240
254
  resourceType: Ember.required(),
241
255
 
242
256
  /**
@@ -292,9 +306,24 @@ Ember.ResourceController = Ember.ArrayController.extend({
292
306
  the `resourceUrl` specified for `resourceType`.
293
307
  */
294
308
  _resourceUrl: function() {
295
- if (this.resourceUrl === undefined)
296
- return this.get('resourceType').prototype.resourceUrl;
297
- else
298
- return this.resourceUrl;
309
+ if (this.resourceUrl === undefined) {
310
+ // If `resourceUrl` is not defined for this controller, there are a couple
311
+ // ways to retrieve it from the resource. If a resource has been instantiated,
312
+ // then it can be retrieved from the resource's prototype. Otherwise, we need
313
+ // to loop through the mixins for the prototype to get the resourceUrl.
314
+ var rt = this.get('resourceType');
315
+ if (rt.prototype.resourceUrl === undefined) {
316
+ for (var i = rt.PrototypeMixin.mixins.length - 1; i >= 0; i--) {
317
+ var m = rt.PrototypeMixin.mixins[i];
318
+ if (m.properties !== undefined && m.properties.resourceUrl !== undefined) {
319
+ return m.properties.resourceUrl;
320
+ }
321
+ }
322
+ }
323
+ else {
324
+ return rt.prototype.resourceUrl;
325
+ }
326
+ }
327
+ return this.resourceUrl;
299
328
  }
300
- }, Ember.ResourceAdapter);
329
+ });
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ember-rest-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.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: 2012-04-02 00:00:00.000000000 Z
12
+ date: 2012-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties