joosy 1.2.0.alpha.14 → 1.2.0.alpha.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/Gruntfile.coffee +42 -18
- data/README.md +16 -12
- data/bower.json +1 -1
- data/lib/extensions/form.js +592 -0
- data/lib/extensions/preloaders.js +193 -0
- data/lib/extensions/resources.js +667 -0
- data/lib/joosy.js +1141 -2680
- data/lib/joosy.rb +0 -5
- data/package.json +1 -1
- data/spec/helpers/helper.coffee +1 -1
- data/spec/joosy/core/joosy_spec.coffee +1 -28
- data/spec/joosy/core/modules/renderer_spec.coffee +0 -95
- data/spec/joosy/{core → extensions/form}/form_spec.coffee +2 -2
- data/spec/joosy/{core → extensions/form}/helpers/forms_spec.coffee +1 -1
- data/spec/joosy/{preloaders → extensions/preloaders}/caching_spec.coffee +0 -0
- data/spec/joosy/{preloaders → extensions/preloaders}/inline_spec.coffee +0 -0
- data/spec/joosy/{core/resource/generic_spec.coffee → extensions/resources/base_spec.coffee} +19 -20
- data/spec/joosy/{core/resource → extensions/resources}/collection_spec.coffee +4 -4
- data/spec/joosy/{core/resource → extensions/resources}/rest_collection_spec.coffee +4 -4
- data/spec/joosy/{core/resource → extensions/resources}/rest_spec.coffee +6 -7
- data/src/joosy.coffee +1 -2
- data/src/joosy/core/helpers/view.coffee +0 -8
- data/src/joosy/core/joosy.coffee +5 -44
- data/src/joosy/core/modules/renderer.coffee +10 -29
- data/src/joosy/core/{resource → resources}/watcher.coffee +2 -1
- data/src/joosy/{core → extensions/form}/form.coffee +3 -9
- data/src/joosy/{core → extensions/form}/helpers/form.coffee +2 -2
- data/src/joosy/extensions/form/index.coffee +1 -0
- data/src/joosy/{preloaders → extensions/preloaders}/caching.coffee +0 -0
- data/src/joosy/extensions/preloaders/index.coffee +1 -0
- data/src/joosy/{preloaders → extensions/preloaders}/inline.coffee +0 -0
- data/src/joosy/{core/resource/generic.coffee → extensions/resources/base.coffee} +21 -21
- data/src/joosy/{core/resource → extensions/resources}/collection.coffee +11 -11
- data/src/joosy/extensions/resources/index.coffee +1 -0
- data/src/joosy/{core/resource → extensions/resources}/rest.coffee +15 -12
- data/src/joosy/{core/resource → extensions/resources}/rest_collection.coffee +4 -2
- data/src/joosy/generators/base.coffee +1 -1
- metadata +25 -20
- data/src/joosy/core/preloader.coffee +0 -13
data/lib/joosy.rb
CHANGED
data/package.json
CHANGED
data/spec/helpers/helper.coffee
CHANGED
@@ -3,7 +3,7 @@ describe "Joosy", ->
|
|
3
3
|
it "should properly initialize", ->
|
4
4
|
expect(Joosy.Application.config.debug).toBeFalsy()
|
5
5
|
expect(Joosy.Modules).toBeDefined()
|
6
|
-
expect(Joosy.
|
6
|
+
expect(Joosy.Resources).toBeDefined()
|
7
7
|
|
8
8
|
it "should declare namespaces", ->
|
9
9
|
Joosy.namespace 'Namespaces.Test1'
|
@@ -70,30 +70,3 @@ describe "Joosy", ->
|
|
70
70
|
runs -> Joosy.preloadImages images, callback
|
71
71
|
waits(150)
|
72
72
|
runs -> expect(callback.callCount).toEqual(2)
|
73
|
-
|
74
|
-
it "should define resource", ->
|
75
|
-
container = {}
|
76
|
-
Joosy.defineResource 'foo', '', container
|
77
|
-
expect(Object.isFunction container.Foo).toBeTruthy()
|
78
|
-
expect(Object.isFunction container.FoosCollection).toBeTruthy()
|
79
|
-
expect(container.Foo::__collection()).toEqual container.FoosCollection
|
80
|
-
Joosy.defineResource 'boo'
|
81
|
-
expect(Object.isFunction Boo).toBeTruthy()
|
82
|
-
expect(Object.isFunction BoosCollection).toBeTruthy()
|
83
|
-
expect(Boo::__collection()).toEqual BoosCollection
|
84
|
-
|
85
|
-
it "should define resource", ->
|
86
|
-
window.Defined = 'this'
|
87
|
-
window.DefinedsCollection = 'that'
|
88
|
-
Joosy.defineResources
|
89
|
-
'':
|
90
|
-
test: '/test'
|
91
|
-
defined: 'no'
|
92
|
-
'Scope.Test':
|
93
|
-
another: ''
|
94
|
-
expect(Object.isFunction Test).toBeTruthy()
|
95
|
-
expect(Object.isFunction TestsCollection).toBeTruthy()
|
96
|
-
expect(Object.isFunction Scope.Test.Another).toBeTruthy()
|
97
|
-
expect(Object.isFunction Scope.Test.AnothersCollection).toBeTruthy()
|
98
|
-
expect(Defined).toEqual 'this'
|
99
|
-
expect(DefinedsCollection).toEqual 'that'
|
@@ -52,101 +52,6 @@ describe "Joosy.Modules.Renderer", ->
|
|
52
52
|
runs ->
|
53
53
|
expect(elem.text()).toBe "new"
|
54
54
|
|
55
|
-
it "renders resources and keep html up2date", ->
|
56
|
-
data = Joosy.Resource.Generic.build zombie: 'rock'
|
57
|
-
|
58
|
-
@TestContainer.view (locals) ->
|
59
|
-
template = -> @zombie
|
60
|
-
|
61
|
-
@renderDynamic(template, locals)
|
62
|
-
|
63
|
-
elem = $("<div></div>")
|
64
|
-
@ground.append elem
|
65
|
-
|
66
|
-
elem.html @dummyContainer.__renderer(data)
|
67
|
-
|
68
|
-
waits 0
|
69
|
-
|
70
|
-
runs ->
|
71
|
-
expect(elem.text()).toBe "rock"
|
72
|
-
|
73
|
-
runs ->
|
74
|
-
data 'zombie', 'suck'
|
75
|
-
|
76
|
-
waits 0
|
77
|
-
|
78
|
-
runs ->
|
79
|
-
expect(elem.text()).toBe "suck"
|
80
|
-
|
81
|
-
it "renders collections and keep html up2date", ->
|
82
|
-
class Foo extends Joosy.Resource.Generic
|
83
|
-
@entity 'foo'
|
84
|
-
|
85
|
-
data = new Joosy.Resource.Collection(Foo)
|
86
|
-
|
87
|
-
data.load [
|
88
|
-
{ zombie: 'rock' },
|
89
|
-
{ zombie: 'never sleep' }
|
90
|
-
]
|
91
|
-
|
92
|
-
@TestContainer.view (locals) ->
|
93
|
-
template = -> @data[1] 'zombie'
|
94
|
-
|
95
|
-
@renderDynamic(template, locals)
|
96
|
-
|
97
|
-
elem = $("<div></div>")
|
98
|
-
@ground.append elem
|
99
|
-
|
100
|
-
elem.html @dummyContainer.__renderer(data)
|
101
|
-
|
102
|
-
waits 0
|
103
|
-
|
104
|
-
runs ->
|
105
|
-
expect(elem.text()).toBe "never sleep"
|
106
|
-
|
107
|
-
runs ->
|
108
|
-
data.data[1] 'zombie', 'suck'
|
109
|
-
|
110
|
-
waits 0
|
111
|
-
|
112
|
-
runs ->
|
113
|
-
expect(elem.text()).toBe "suck"
|
114
|
-
|
115
|
-
xit "renders collections and track its new items", ->
|
116
|
-
class Foo extends Joosy.Resource.Generic
|
117
|
-
@entity 'foo'
|
118
|
-
|
119
|
-
data = new Joosy.Resource.Collection(Foo)
|
120
|
-
data.load [
|
121
|
-
{key: 1},
|
122
|
-
{key: 2}
|
123
|
-
]
|
124
|
-
|
125
|
-
@TestContainer.view (locals) ->
|
126
|
-
template = -> @data.map((item) -> item('key')).join('')
|
127
|
-
@renderDynamic(template, locals)
|
128
|
-
|
129
|
-
elem = $("<div></div>")
|
130
|
-
@ground.append elem
|
131
|
-
elem.html @dummyContainer.__renderer(data)
|
132
|
-
|
133
|
-
waits 0
|
134
|
-
|
135
|
-
runs ->
|
136
|
-
expect(elem.text()).toBe "12"
|
137
|
-
data.add Foo.build(key: 3)
|
138
|
-
|
139
|
-
waits 0
|
140
|
-
|
141
|
-
runs ->
|
142
|
-
expect(elem.text()).toBe "123"
|
143
|
-
data.at(2)('key', 6)
|
144
|
-
|
145
|
-
waits 0
|
146
|
-
|
147
|
-
runs ->
|
148
|
-
expect(elem.text()).toBe "126"
|
149
|
-
|
150
55
|
it "debounces morpher updates", ->
|
151
56
|
@TestContainer.view (locals) ->
|
152
57
|
template = -> @object.value
|
@@ -19,7 +19,7 @@ describe "Joosy.Form", ->
|
|
19
19
|
@exactForm = $('#exact')
|
20
20
|
@arrayForm = $('#array')
|
21
21
|
|
22
|
-
class Test extends Joosy.
|
22
|
+
class Test extends Joosy.Resources.REST
|
23
23
|
@entity 'test'
|
24
24
|
@Test = Test
|
25
25
|
|
@@ -36,7 +36,7 @@ describe "Joosy.Form", ->
|
|
36
36
|
test: 'test'
|
37
37
|
EXact:
|
38
38
|
MATCH: 'works'
|
39
|
-
items: (new Joosy.
|
39
|
+
items: (new Joosy.Resources.RESTCollection(Test)).load([{attr: 'one'}, {attr: 'two'}])
|
40
40
|
single: Test.build(attr: 'sin')
|
41
41
|
|
42
42
|
afterEach ->
|
File without changes
|
File without changes
|
@@ -1,19 +1,19 @@
|
|
1
|
-
describe "Joosy.
|
1
|
+
describe "Joosy.Resources.Base", ->
|
2
2
|
|
3
|
-
class TestInline extends Joosy.
|
3
|
+
class TestInline extends Joosy.Resources.Base
|
4
4
|
@entity 'test_inline'
|
5
5
|
|
6
|
-
class Test extends Joosy.
|
6
|
+
class Test extends Joosy.Resources.REST
|
7
7
|
@entity 'test'
|
8
8
|
@map 'test_inlines', TestInline
|
9
9
|
|
10
|
-
class TestNode extends Joosy.
|
10
|
+
class TestNode extends Joosy.Resources.Base
|
11
11
|
@entity 'test_node'
|
12
12
|
@map 'children', TestNode
|
13
13
|
@map 'parent', TestNode
|
14
14
|
|
15
15
|
beforeEach ->
|
16
|
-
@resource = Joosy.
|
16
|
+
@resource = Joosy.Resources.Base.build @data =
|
17
17
|
foo: 'bar'
|
18
18
|
bar: 'baz'
|
19
19
|
very:
|
@@ -24,7 +24,7 @@ describe "Joosy.Resource.Generic", ->
|
|
24
24
|
expect(Test::__primaryKey).toEqual 'id'
|
25
25
|
|
26
26
|
it "remembers where it belongs", ->
|
27
|
-
resource = new Joosy.
|
27
|
+
resource = new Joosy.Resources.Base foo: 'bar'
|
28
28
|
expect(resource.data).toEqual foo: 'bar'
|
29
29
|
|
30
30
|
it "produces magic function", ->
|
@@ -49,7 +49,7 @@ describe "Joosy.Resource.Generic", ->
|
|
49
49
|
expect(@resource 'another.deep').toEqual value: 'banana strikes back'
|
50
50
|
|
51
51
|
it "handles @at", ->
|
52
|
-
class Fluffy extends Joosy.
|
52
|
+
class Fluffy extends Joosy.Resources.Base
|
53
53
|
@entity 'fluffy'
|
54
54
|
|
55
55
|
clone = Fluffy.at('rumbas!')
|
@@ -73,7 +73,7 @@ describe "Joosy.Resource.Generic", ->
|
|
73
73
|
expect(callback.callCount).toEqual(2)
|
74
74
|
|
75
75
|
it "handles the before filter", ->
|
76
|
-
class R extends Joosy.
|
76
|
+
class R extends Joosy.Resources.Base
|
77
77
|
@beforeLoad (data) ->
|
78
78
|
data ||= {}
|
79
79
|
data.tested = true
|
@@ -84,13 +84,13 @@ describe "Joosy.Resource.Generic", ->
|
|
84
84
|
expect(resource 'tested').toBeTruthy()
|
85
85
|
|
86
86
|
it "should map inlines", ->
|
87
|
-
class RumbaMumba extends Joosy.
|
87
|
+
class RumbaMumba extends Joosy.Resources.Base
|
88
88
|
@entity 'rumba_mumba'
|
89
89
|
|
90
|
-
class R extends Joosy.
|
90
|
+
class R extends Joosy.Resources.Base
|
91
91
|
@map 'rumbaMumbas', RumbaMumba
|
92
92
|
|
93
|
-
class S extends Joosy.
|
93
|
+
class S extends Joosy.Resources.Base
|
94
94
|
@map 'rumbaMumba', RumbaMumba
|
95
95
|
|
96
96
|
resource = R.build
|
@@ -98,20 +98,20 @@ describe "Joosy.Resource.Generic", ->
|
|
98
98
|
{foo: 'bar'},
|
99
99
|
{bar: 'baz'}
|
100
100
|
]
|
101
|
-
expect(resource('rumbaMumbas') instanceof Joosy.
|
101
|
+
expect(resource('rumbaMumbas') instanceof Joosy.Resources.Collection).toBeTruthy()
|
102
102
|
expect(resource('rumbaMumbas').at(0)('foo')).toEqual 'bar'
|
103
103
|
|
104
104
|
resource = S.build
|
105
105
|
rumbaMumba: {foo: 'bar'}
|
106
|
-
expect(resource('rumbaMumba') instanceof Joosy.
|
106
|
+
expect(resource('rumbaMumba') instanceof Joosy.Resources.Base).toBeTruthy()
|
107
107
|
expect(resource('rumbaMumba.foo')).toEqual 'bar'
|
108
108
|
|
109
109
|
it "should use magic collections", ->
|
110
|
-
class window.RumbaMumbasCollection extends Joosy.
|
110
|
+
class window.RumbaMumbasCollection extends Joosy.Resources.Collection
|
111
111
|
|
112
|
-
class RumbaMumba extends Joosy.
|
112
|
+
class RumbaMumba extends Joosy.Resources.Base
|
113
113
|
@entity 'rumba_mumba'
|
114
|
-
class R extends Joosy.
|
114
|
+
class R extends Joosy.Resources.Base
|
115
115
|
@map 'rumbaMumbas', RumbaMumba
|
116
116
|
|
117
117
|
resource = R.build
|
@@ -125,12 +125,12 @@ describe "Joosy.Resource.Generic", ->
|
|
125
125
|
window.RumbaMumbasCollection = undefined
|
126
126
|
|
127
127
|
it "should use manually set collections", ->
|
128
|
-
class OloCollection extends Joosy.
|
128
|
+
class OloCollection extends Joosy.Resources.Collection
|
129
129
|
|
130
|
-
class RumbaMumba extends Joosy.
|
130
|
+
class RumbaMumba extends Joosy.Resources.Base
|
131
131
|
@entity 'rumba_mumba'
|
132
132
|
@collection OloCollection
|
133
|
-
class R extends Joosy.
|
133
|
+
class R extends Joosy.Resources.Base
|
134
134
|
@map 'rumbaMumbas', RumbaMumba
|
135
135
|
|
136
136
|
resource = R.build
|
@@ -142,7 +142,6 @@ describe "Joosy.Resource.Generic", ->
|
|
142
142
|
expect(resource('rumbaMumbas').at(0)('foo')).toEqual 'bar'
|
143
143
|
|
144
144
|
describe "identity map", ->
|
145
|
-
|
146
145
|
it "handles builds", ->
|
147
146
|
foo = Test.build 1
|
148
147
|
bar = Test.build 1
|
@@ -1,6 +1,6 @@
|
|
1
|
-
describe "Joosy.
|
1
|
+
describe "Joosy.Resources.Collection", ->
|
2
2
|
|
3
|
-
class Test extends Joosy.
|
3
|
+
class Test extends Joosy.Resources.Base
|
4
4
|
@entity 'test'
|
5
5
|
|
6
6
|
data = '[{"id": 1, "name": "test1"}, {"id": 2, "name": "test2"}]'
|
@@ -11,7 +11,7 @@ describe "Joosy.Resource.Collection", ->
|
|
11
11
|
expect(collection.data[0].data.name).toEqual 'test1'
|
12
12
|
|
13
13
|
beforeEach ->
|
14
|
-
@collection = new Joosy.
|
14
|
+
@collection = new Joosy.Resources.Collection(Test)
|
15
15
|
|
16
16
|
it "should initialize", ->
|
17
17
|
expect(@collection.model).toEqual Test
|
@@ -37,7 +37,7 @@ describe "Joosy.Resource.Collection", ->
|
|
37
37
|
expect(callback.callCount).toEqual 0
|
38
38
|
|
39
39
|
it "should properly handle the before filter", ->
|
40
|
-
class RC extends Joosy.
|
40
|
+
class RC extends Joosy.Resources.Collection
|
41
41
|
@beforeLoad (data) ->
|
42
42
|
data.each (entry, i) ->
|
43
43
|
data[i].tested = true
|
@@ -1,11 +1,11 @@
|
|
1
|
-
describe "Joosy.
|
1
|
+
describe "Joosy.Resources.RESTCollection", ->
|
2
2
|
|
3
|
-
class Test extends Joosy.
|
3
|
+
class Test extends Joosy.Resources.REST
|
4
4
|
@entity 'test'
|
5
5
|
|
6
6
|
beforeEach ->
|
7
7
|
@server = sinon.fakeServer.create()
|
8
|
-
@collection = new Joosy.
|
8
|
+
@collection = new Joosy.Resources.RESTCollection(Test)
|
9
9
|
|
10
10
|
afterEach ->
|
11
11
|
@server.restore()
|
@@ -30,7 +30,7 @@ describe "Joosy.Resource.RESTCollection", ->
|
|
30
30
|
expect(@collection.data[0].data.name).toEqual 'test3'
|
31
31
|
|
32
32
|
it "should use own storage", ->
|
33
|
-
class TestsCollection extends Joosy.
|
33
|
+
class TestsCollection extends Joosy.Resources.RESTCollection
|
34
34
|
@model Test
|
35
35
|
collection = new TestsCollection()
|
36
36
|
collection.add 'test'
|
@@ -1,17 +1,17 @@
|
|
1
|
-
describe "Joosy.
|
1
|
+
describe "Joosy.Resources.REST", ->
|
2
2
|
|
3
|
-
class FluffyInline extends Joosy.
|
3
|
+
class FluffyInline extends Joosy.Resources.REST
|
4
4
|
@entity 'fluffy_inline'
|
5
5
|
|
6
|
-
class FluffyParent extends Joosy.
|
6
|
+
class FluffyParent extends Joosy.Resources.REST
|
7
7
|
@entity 'fluffy_parent'
|
8
8
|
|
9
|
-
class Fluffy extends Joosy.
|
9
|
+
class Fluffy extends Joosy.Resources.REST
|
10
10
|
@entity 'fluffy'
|
11
11
|
@map 'fluffy_inlines', FluffyInline
|
12
12
|
|
13
13
|
Joosy.namespace 'Animal', ->
|
14
|
-
class @Cat extends Joosy.
|
14
|
+
class @Cat extends Joosy.Resources.REST
|
15
15
|
@entity 'cat'
|
16
16
|
|
17
17
|
beforeEach ->
|
@@ -94,7 +94,7 @@ describe "Joosy.Resource.REST", ->
|
|
94
94
|
rawData = '{"page": 42, "fluffies": [{"id": 1, "name": "test1"}, {"id": 2, "name": "test2"}]}'
|
95
95
|
|
96
96
|
callback = sinon.spy (target, data) ->
|
97
|
-
expect(target instanceof Joosy.
|
97
|
+
expect(target instanceof Joosy.Resources.RESTCollection).toEqual true
|
98
98
|
expect(target.size()).toEqual 2
|
99
99
|
expect(target.at(0) instanceof Fluffy).toEqual true
|
100
100
|
expect(data).toEqual $.parseJSON(rawData)
|
@@ -174,7 +174,6 @@ describe "Joosy.Resource.REST", ->
|
|
174
174
|
checkAndRespond @server.requests[0], 'DELETE', /^\/fluffies/, rawData
|
175
175
|
|
176
176
|
describe "identity map", ->
|
177
|
-
|
178
177
|
it "handles finds", ->
|
179
178
|
inline = FluffyInline.build(1)
|
180
179
|
root = Fluffy.find 1
|
data/src/joosy.coffee
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
#= require_tree ./joosy/core
|
2
|
-
#= require_tree ./joosy/preloaders
|
1
|
+
#= require_tree ./joosy/core
|
@@ -23,14 +23,6 @@ Joosy.helpers 'Application', ->
|
|
23
23
|
temp.appendChild element
|
24
24
|
temp.innerHTML
|
25
25
|
|
26
|
-
#
|
27
|
-
# Converts \n into <br/> in your text
|
28
|
-
#
|
29
|
-
# @param [String] text Text to convert
|
30
|
-
#
|
31
|
-
@nl2br = (text) ->
|
32
|
-
text.toString().replace /\n/g, '<br/>'
|
33
|
-
|
34
26
|
#
|
35
27
|
# Wraps the inline block into given template
|
36
28
|
# Request template will receive the inline block as @yield parameter
|
data/src/joosy/core/joosy.coffee
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
#= require_self ./
|
2
|
+
#= require joosy/core/modules/module
|
3
|
+
|
1
4
|
#
|
2
5
|
# All the tiny core stuff
|
3
6
|
#
|
@@ -12,7 +15,7 @@
|
|
12
15
|
#
|
13
16
|
# Resources container
|
14
17
|
#
|
15
|
-
|
18
|
+
Resources: {}
|
16
19
|
|
17
20
|
#
|
18
21
|
# Templaters container
|
@@ -136,46 +139,4 @@
|
|
136
139
|
if !paramsString.isBlank() && url.last() != '?'
|
137
140
|
paramsString = '&' + paramsString
|
138
141
|
|
139
|
-
url + paramsString + hash
|
140
|
-
|
141
|
-
#
|
142
|
-
# Creates classes and collection classes for the given resources that might have been extracted from the routes
|
143
|
-
#
|
144
|
-
# @param [Hash] resources Resources declaration
|
145
|
-
#
|
146
|
-
# @example Basic usage
|
147
|
-
# Joosy.defineResources {'': {foo: '/foos'}, 'namespace': {bar: '/namespace/bars'}}
|
148
|
-
#
|
149
|
-
defineResources: (resources) ->
|
150
|
-
Object.extended(resources).each (namespace, resources) ->
|
151
|
-
if namespace.isBlank()
|
152
|
-
Object.extended(resources).each (resource, path) ->
|
153
|
-
Joosy.defineResource resource, path
|
154
|
-
else
|
155
|
-
Joosy.namespace namespace, ->
|
156
|
-
Object.extended(resources).each (resource, path) =>
|
157
|
-
Joosy.defineResource resource, path, @
|
158
|
-
|
159
|
-
#
|
160
|
-
#
|
161
|
-
# @param [String] resource Entity name in singular form
|
162
|
-
# @param [String] path Entity REST end-point
|
163
|
-
# @param [Object] space Namespace for new classes
|
164
|
-
#
|
165
|
-
# @example Basic usage
|
166
|
-
# Joosy.defineResource 'foo', '/foos'
|
167
|
-
#
|
168
|
-
defineResource: (resource, path, space=window) ->
|
169
|
-
className = resource.camelize()
|
170
|
-
collectionName = "#{resource.pluralize().camelize()}Collection"
|
171
|
-
unless space[className]
|
172
|
-
Joosy.Modules.Log.debugAs space, "Define #{className}"
|
173
|
-
space[className] = class extends Joosy.Resource.REST
|
174
|
-
@entity resource
|
175
|
-
@source path
|
176
|
-
__collection: ->
|
177
|
-
space[collectionName]
|
178
|
-
unless space[collectionName]
|
179
|
-
Joosy.Modules.Log.debugAs space, "Define #{collectionName}"
|
180
|
-
space[collectionName] = class extends Joosy.Resource.RESTCollection
|
181
|
-
@model space[className]
|
142
|
+
url + paramsString + hash
|