joosy 1.2.0.alpha.51 → 1.2.0.alpha.52

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: b90422b5c59c2c386ace9eabcf726a47bb99dbe5
4
- data.tar.gz: 4387265d9e5f18513ce1907c5087107788fa9a5f
3
+ metadata.gz: 3d5c51a78e39be79cd68e82ecf4df0e284ca1fe6
4
+ data.tar.gz: e45f97697a02edbe7874f88e53c30f1a7b8a3825
5
5
  SHA512:
6
- metadata.gz: f772dbaeb5a05bdbf69e05efe7ac84ebe2dd3154e6cc26aef8c0b5c32744d59d18279bf16221d1c320882692489b80412106a29457c3e0be9c798a23af76bfa2
7
- data.tar.gz: 61f5379eebaf2b6fcaee915780a8168cbc462d237de7f2dcde06c41d1ee98e6f8022e6c0547a8e2c8629afc07c984e7b19a69dab9362ccca095a35de0a057e36
6
+ metadata.gz: e76c7307e635d877812fb8bdbc652127d70219e367766e885fe9965dfe7d608f2472b142371bbbfa0903618711535035c005bb17b4187aa1f54b7f5bc84fa5e6
7
+ data.tar.gz: 41f0bf6bddd0dca9840babbe7f2b21c729d6042f04049c15f3364be7a7f74f9c481ae3d57e1ecfde2005221b49c7e8f160852aa8842fea3cfc65a40d930b6468
data/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joosy",
3
- "version": "1.2.0-alpha.51",
3
+ "version": "1.2.0-alpha.52",
4
4
  "main": "lib/joosy.js",
5
5
  "ignore": [
6
6
  "bin",
@@ -1,7 +1,6 @@
1
1
  (function() {
2
2
  var __hasProp = {}.hasOwnProperty,
3
- __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
4
- __slice = [].slice;
3
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
5
4
 
6
5
  Joosy.Resources.Base = (function(_super) {
7
6
  __extends(Base, _super);
@@ -29,37 +28,6 @@
29
28
  return this.prototype.__primaryKey = primaryKey;
30
29
  };
31
30
 
32
- Base.source = function(location) {
33
- return this.__source = location;
34
- };
35
-
36
- Base.at = function() {
37
- var Clone, args, _ref;
38
- args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
39
- Clone = (function(_super1) {
40
- __extends(Clone, _super1);
41
-
42
- function Clone() {
43
- _ref = Clone.__super__.constructor.apply(this, arguments);
44
- return _ref;
45
- }
46
-
47
- return Clone;
48
-
49
- })(this);
50
- if (args.length === 1 && Object.isArray(args[0])) {
51
- return this.at.apply(this, args[0]);
52
- } else {
53
- Clone.__source = args.reduce(function(path, arg) {
54
- return path += arg instanceof Joosy.Resources.Base ? arg.memberPath() : arg.replace(/^\/?/, '/');
55
- }, '');
56
- if (this.prototype.__entityName && args[args.length - 1] instanceof Joosy.Resources.Base) {
57
- Clone.__source += '/' + this.prototype.__entityName.pluralize();
58
- }
59
- return Clone;
60
- }
61
- };
62
-
63
31
  Base.entity = function(name) {
64
32
  return this.prototype.__entityName = name;
65
33
  };
@@ -402,7 +370,8 @@
402
370
  (function() {
403
371
  var _ref,
404
372
  __hasProp = {}.hasOwnProperty,
405
- __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
373
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
374
+ __slice = [].slice;
406
375
 
407
376
  Joosy.Resources.REST = (function(_super) {
408
377
  __extends(REST, _super);
@@ -412,6 +381,37 @@
412
381
  return _ref;
413
382
  }
414
383
 
384
+ REST.source = function(location) {
385
+ return this.__source = location;
386
+ };
387
+
388
+ REST.at = function() {
389
+ var Clone, args, _ref1;
390
+ args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
391
+ Clone = (function(_super1) {
392
+ __extends(Clone, _super1);
393
+
394
+ function Clone() {
395
+ _ref1 = Clone.__super__.constructor.apply(this, arguments);
396
+ return _ref1;
397
+ }
398
+
399
+ return Clone;
400
+
401
+ })(this);
402
+ if (args.length === 1 && Object.isArray(args[0])) {
403
+ return this.at.apply(this, args[0]);
404
+ } else {
405
+ Clone.__source = args.reduce(function(path, arg) {
406
+ return path += arg instanceof Joosy.Resources.Base ? arg.memberPath() : arg.replace(/^\/?/, '/');
407
+ }, '');
408
+ if (this.prototype.__entityName && args[args.length - 1] instanceof Joosy.Resources.Base) {
409
+ Clone.__source += '/' + this.prototype.__entityName.pluralize();
410
+ }
411
+ return Clone;
412
+ }
413
+ };
414
+
415
415
  REST.prototype.__collection = function() {
416
416
  var named;
417
417
  named = this.__entityName.camelize().pluralize() + 'Collection';
data/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "keywords": [
5
5
  "joosy"
6
6
  ],
7
- "version": "1.2.0-alpha.51",
7
+ "version": "1.2.0-alpha.52",
8
8
  "author": "Boris Staal <boris@staal.io>",
9
9
  "homepage": "http://joosy.ws/",
10
10
  "repository": {
@@ -18,7 +18,7 @@
18
18
  "node": ">=0.4.0"
19
19
  },
20
20
  "dependencies": {
21
- "bower": "~1.0.0",
21
+ "bower": "~1.1.0",
22
22
  "sugar": "~1.3.8",
23
23
  "coffee-script": "~1.6.3",
24
24
  "command-router": "0.0.5",
@@ -28,7 +28,7 @@
28
28
  "commander": "~1.2.0",
29
29
  "colors": "~0.6.0-1",
30
30
  "grunt": "~0.4.1",
31
- "mincer": "~0.5.2",
31
+ "mincer": "0.5.2",
32
32
  "connect": "~2.7.11",
33
33
  "haml-coffee": "~1.11.1",
34
34
  "proxy-middleware": "~0.4.0",
@@ -57,36 +57,6 @@ class Joosy.Resources.Base extends Joosy.Module
57
57
  #
58
58
  @primaryKey: (primaryKey) -> @::__primaryKey = primaryKey
59
59
 
60
- @source: (location) ->
61
- @__source = location
62
-
63
- #
64
- # Creates the proxy of current resource binded as a child of given entity
65
- #
66
- @at: (args...) ->
67
- #
68
- # Class inheritance used to create proxy
69
- #
70
- # @private
71
- #
72
- class Clone extends this
73
-
74
- if args.length == 1 && Object.isArray(args[0])
75
- @at(args[0]...)
76
- else
77
- Clone.__source = args.reduce (path, arg) ->
78
- path += if arg instanceof Joosy.Resources.Base
79
- arg.memberPath()
80
- else
81
- arg.replace(/^\/?/, '/')
82
-
83
- , ''
84
-
85
- if @::__entityName && args[args.length - 1] instanceof Joosy.Resources.Base
86
- Clone.__source += '/' + @::__entityName.pluralize()
87
-
88
- Clone
89
-
90
60
  #
91
61
  # Sets the entity text name:
92
62
  # required to do some magic like skipping the root node.
@@ -6,6 +6,44 @@
6
6
  #
7
7
  class Joosy.Resources.REST extends Joosy.Resources.Base
8
8
 
9
+ #
10
+ # Sets default base url for fetching and modifiing resources
11
+ #
12
+ # @note can be omitted if url equals pluralized @entity
13
+ # i.e. 'comment' entity name => '/comments' url
14
+ #
15
+ # @param [String] primary Name of the field
16
+ #
17
+ @source: (location) ->
18
+ @__source = location
19
+
20
+ #
21
+ # Creates the proxy of current resource binded as a child of given entity
22
+ #
23
+ @at: (args...) ->
24
+ #
25
+ # Class inheritance used to create proxy
26
+ #
27
+ # @private
28
+ #
29
+ class Clone extends this
30
+
31
+ if args.length == 1 && Object.isArray(args[0])
32
+ @at(args[0]...)
33
+ else
34
+ Clone.__source = args.reduce (path, arg) ->
35
+ path += if arg instanceof Joosy.Resources.Base
36
+ arg.memberPath()
37
+ else
38
+ arg.replace(/^\/?/, '/')
39
+
40
+ , ''
41
+
42
+ if @::__entityName && args[args.length - 1] instanceof Joosy.Resources.Base
43
+ Clone.__source += '/' + @::__entityName.pluralize()
44
+
45
+ Clone
46
+
9
47
  #
10
48
  # Implements `@collection` default behavior.
11
49
  # Changes the default fallback to Joosy.Resources.RESTCollection.
@@ -51,34 +51,6 @@ describe "Joosy.Resources.Base", ->
51
51
  @resource 'another.deep.value', 'banana strikes back'
52
52
  expect(@resource 'another.deep').toEqual value: 'banana strikes back'
53
53
 
54
- describe '@at', ->
55
- # clone won't be instanceof Fluffy in IE
56
- #expect(clone.build({}) instanceof Fluffy).toBeTruthy()
57
-
58
- beforeEach ->
59
- class @Fluffy extends Joosy.Resources.Base
60
- @entity 'fluffy'
61
-
62
- it 'returns base class child', ->
63
- clone = @Fluffy.at 'rumbas'
64
- expect(Joosy.Module.hasAncestor clone, @Fluffy).toBeTruthy()
65
-
66
- it 'accepts string', ->
67
- clone = @Fluffy.at 'rumbas'
68
- expect(clone.__source).toEqual '/rumbas'
69
-
70
- it 'accepts another resource instance', ->
71
- clone = @Fluffy.at Test.build(1)
72
- expect(clone.__source).toEqual '/tests/1/fluffies'
73
-
74
- it 'accepts array', ->
75
- clone = @Fluffy.at ['rumbas', Test.build(1), 'salsas']
76
- expect(clone.__source).toEqual '/rumbas/tests/1/salsas'
77
-
78
- it 'accepts sequential attributes', ->
79
- clone = @Fluffy.at 'rumbas', 'salsas', Test.build(1)
80
- expect(clone.__source).toEqual '/rumbas/salsas/tests/1/fluffies'
81
-
82
54
  it "triggers 'changed' right", ->
83
55
  callback = sinon.spy()
84
56
  @resource.bind 'changed', callback
@@ -28,6 +28,34 @@ describe "Joosy.Resources.REST", ->
28
28
  expect(target.url).toMatch url
29
29
  target.respond 200, 'Content-Type': 'application/json', data
30
30
 
31
+ describe '@at', ->
32
+ # clone won't be instanceof Fluffy in IE
33
+ #expect(clone.build({}) instanceof Fluffy).toBeTruthy()
34
+
35
+ beforeEach ->
36
+ class @Test extends Joosy.Resources.REST
37
+ @entity 'test'
38
+
39
+ it 'returns base class child', ->
40
+ clone = @Test.at 'rumbas'
41
+ expect(Joosy.Module.hasAncestor clone, @Test).toBeTruthy()
42
+
43
+ it 'accepts string', ->
44
+ clone = @Test.at 'rumbas'
45
+ expect(clone.__source).toEqual '/rumbas'
46
+
47
+ it 'accepts another resource instance', ->
48
+ clone = @Test.at Fluffy.build(1)
49
+ expect(clone.__source).toEqual '/fluffies/1/tests'
50
+
51
+ it 'accepts array', ->
52
+ clone = @Test.at ['rumbas', Fluffy.build(1), 'salsas']
53
+ expect(clone.__source).toEqual '/rumbas/fluffies/1/salsas'
54
+
55
+ it 'accepts sequential attributes', ->
56
+ clone = @Test.at 'rumbas', 'salsas', Fluffy.build(1)
57
+ expect(clone.__source).toEqual '/rumbas/salsas/fluffies/1/tests'
58
+
31
59
  it "build base path", ->
32
60
  parent = FluffyParent.build 1
33
61
  grandParent = FluffyParent.build 666
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: joosy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.alpha.51
4
+ version: 1.2.0.alpha.52
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Staal