joosy 0.1.0.RC2 → 0.1.0.RC3

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.
Files changed (37) hide show
  1. data/.codoopts +5 -0
  2. data/.gitignore +2 -0
  3. data/Gemfile.lock +4 -2
  4. data/README.md +10 -4
  5. data/app/assets/javascripts/joosy/core/application.js.coffee +3 -1
  6. data/app/assets/javascripts/joosy/core/form.js.coffee +69 -42
  7. data/app/assets/javascripts/joosy/core/helpers/view.js.coffee +30 -0
  8. data/app/assets/javascripts/joosy/core/joosy.js.coffee +125 -66
  9. data/app/assets/javascripts/joosy/core/layout.js.coffee +106 -1
  10. data/app/assets/javascripts/joosy/core/modules/container.js.coffee +41 -0
  11. data/app/assets/javascripts/joosy/core/modules/events.js.coffee +88 -1
  12. data/app/assets/javascripts/joosy/core/modules/filters.js.coffee +24 -0
  13. data/app/assets/javascripts/joosy/core/modules/log.js.coffee +18 -0
  14. data/app/assets/javascripts/joosy/core/modules/module.js.coffee +53 -1
  15. data/app/assets/javascripts/joosy/core/modules/renderer.js.coffee +22 -6
  16. data/app/assets/javascripts/joosy/core/modules/time_manager.js.coffee +21 -0
  17. data/app/assets/javascripts/joosy/core/modules/widgets_manager.js.coffee +26 -0
  18. data/app/assets/javascripts/joosy/core/page.js.coffee +225 -16
  19. data/app/assets/javascripts/joosy/core/preloader.js.coffee +8 -0
  20. data/app/assets/javascripts/joosy/core/resource/collection.js.coffee +52 -15
  21. data/app/assets/javascripts/joosy/core/resource/generic.js.coffee +78 -50
  22. data/app/assets/javascripts/joosy/core/resource/rest.js.coffee +39 -41
  23. data/app/assets/javascripts/joosy/core/resource/rest_collection.js.coffee +36 -27
  24. data/app/assets/javascripts/joosy/core/router.js.coffee +95 -19
  25. data/app/assets/javascripts/joosy/core/widget.js.coffee +42 -1
  26. data/app/assets/javascripts/joosy/preloaders/caching.js.coffee +39 -24
  27. data/app/assets/javascripts/joosy/preloaders/inline.js.coffee +9 -7
  28. data/app/helpers/joosy/sprockets_helper.rb +4 -1
  29. data/lib/joosy/rails/version.rb +1 -1
  30. data/spec/javascripts/joosy/core/application_spec.js.coffee +3 -3
  31. data/spec/javascripts/joosy/core/resource/rest_spec.js.coffee +0 -2
  32. data/spec/javascripts/joosy/core/router_spec.js.coffee +24 -24
  33. data/vendor/assets/javascripts/jquery.form.js +978 -963
  34. data/vendor/assets/javascripts/sugar.js +1 -1
  35. metadata +20 -20
  36. data/app/assets/javascripts/joosy/core/helpers.js.coffee +0 -16
  37. data/vendor/assets/javascripts/base64.js +0 -135
@@ -1,15 +1,15 @@
1
1
  #
2
- # Basic data wrapper with triggering
2
+ # Basic data wrapper with triggering and entity name binding
3
3
  #
4
- # Example:
4
+ # @example Basic usage
5
5
  # class R extends Joosy.Resource.Generic
6
6
  # @entity 'r'
7
- #
7
+ #
8
8
  # @beforeLoad (data) ->
9
9
  # data.real = true
10
- #
10
+ #
11
11
  # r = R.create {r: {foo: {bar: 'baz'}}}
12
- #
12
+ #
13
13
  # r('foo') # {baz: 'baz'}
14
14
  # r('real') # true
15
15
  # r('foo.bar') # baz
@@ -21,68 +21,96 @@ class Joosy.Resource.Generic extends Joosy.Module
21
21
 
22
22
  #
23
23
  # Sets the data source description (which is NOT required)
24
- # This has no use in Generic but is required in any descendant
24
+ # @note This has no use in Generic but is required in any descendant
25
25
  #
26
- # @param [mixed] Source can be any type including lambda
27
- # If lambda is given resource will not expect direct .create() calls
28
- # You'll have to prepare descendant with .at() first
26
+ # @param [mixed] Source can be any type including lambda.
27
+ # If lambda is given resource will not expect direct {Joosy.Resource.Generic.create} calls
28
+ # You'll have to prepare descendant with {Joosy.Resource.Generic.at} first.
29
29
  #
30
- # Example:
30
+ # @example Simple case
31
31
  # Class Y extends Joosy.Resource.Generic
32
32
  # @source 'fluffies'
33
+ #
34
+ # r = Y.create {}
35
+ #
36
+ # @example Case with lambda
33
37
  # class R extends Joosy.Resource.Generic
34
38
  # @source -> (path) "/"+path
35
- #
36
- # r = Y.create{} # will work as expected
39
+ #
37
40
  # r = R.create {} # will raise exception
38
41
  # r = R.at('foo/bar').create {} # will work as expected
39
42
  #
40
43
  @source: (source) -> @__source = source
44
+
45
+ #
46
+ # Creates the proxy of current resource with proper {Joosy.Resource.Generic.source} value
47
+ #
48
+ # @note Should be used together with lambda source (see {Joosy.Resource.Generic.source} for example)
49
+ #
50
+ @at: ->
51
+ if !Object.isFunction @__source
52
+ throw new Error "#{Joosy.Module.__className @}> should be created directly (without `at')"
53
+
54
+ #
55
+ # Class inheritance used to create proxy
56
+ #
57
+ # @private
58
+ #
59
+ class clone extends this
60
+ clone.__source = @__source arguments...
61
+ clone
41
62
 
42
63
  #
43
- # Required to do some magic like skipping the root node
64
+ # Sets the entity text name:
65
+ # required to do some magic like skipping the root node.
44
66
  #
45
67
  # @param [String] name Singular name of resource
46
68
  #
47
69
  @entity: (name) -> @::__entityName = name
48
70
 
49
71
  #
50
- # Sets the collection of current Resource
72
+ # Sets the collection to use
51
73
  #
52
- # @param [Object] klass Class to assign as collection
74
+ # @note By default will try to seek for `EntityNamesCollection`.
75
+ # Will fallback to {Joosy.Resource.Collection}
76
+ #
77
+ # @param [Class] klass Class to assign as collection
53
78
  #
54
79
  @collection: (klass) -> @::__collection = -> klass
55
80
 
56
81
  #
57
- # Default value of resource collection
58
- # Will try to seek for EntityNamesCollection
59
- # Will fallback to Joosy.Resource.Collection
82
+ # Implements {Joosy.Resource.Generic.collection} default behavior.
60
83
  #
61
84
  __collection: ->
62
85
  named = @__entityName.camelize().pluralize() + 'Collection'
63
86
  if window[named] then window[named] else Joosy.Resource.Collection
64
87
 
65
88
  #
66
- # Allows to modify data before it gets stored
89
+ # Allows to modify data before it gets stored.
90
+ # You can define several beforeLoad filters that will be chained.
67
91
  #
68
92
  # @param [Function] action `(Object) -> Object` to call
69
93
  #
70
- @beforeLoad: (action) -> @::__beforeLoad = action
94
+ @beforeLoad: (action) ->
95
+ unless @::hasOwnProperty '__beforeLoads'
96
+ @::__beforeLoads = [].concat @.__super__.__beforeLoads || []
97
+ @::__beforeLoads.push action
71
98
 
72
99
  #
73
- # Dynamically creates collection of inline resources
74
- # Inline resource share the instance with direct data and therefore can be used
75
- # to better handle inline changes
100
+ # Dynamically creates collection of inline resources.
101
+ #
102
+ # Inline resources share the instance with direct data and therefore can be used
103
+ # to handle inline changes with triggers and all that resources stuff
76
104
  #
77
- # Example:
105
+ # @example Basic usage
78
106
  # class Zombie extends Joosy.Resource.Generic
79
- # @entity 'a'
107
+ # @entity 'zombie'
80
108
  # class Puppy extends Joosy.Resource.Generic
81
- # @entity 'b'
82
- # @maps 'zombies'
83
- #
109
+ # @entity 'puppy'
110
+ # @map 'zombies'
111
+ #
84
112
  # p = Puppy.create {zombies: [{foo: 'bar'}]}
85
- #
113
+ #
86
114
  # p('zombies') # Direct access: [{foo: 'bar'}]
87
115
  # p.zombies # Wrapped Collection of Zombie instances
88
116
  # p.zombies.at(0)('foo') # bar
@@ -103,18 +131,6 @@ class Joosy.Resource.Generic extends Joosy.Module
103
131
  @[name].reset data[name]
104
132
  data
105
133
 
106
- #
107
- # Creates the descnendant of current resource with proper source
108
- # Should be used together with lambda source (see @source for example)
109
- #
110
- @at: ->
111
- if !Object.isFunction @__source
112
- throw new Error "#{Joosy.Module.__className @}> should be created directly (without `at')"
113
-
114
- class clone extends this
115
- clone.__source = @__source arguments...
116
- clone
117
-
118
134
  #
119
135
  # Wraps instance of resource inside shim-function allowing to track
120
136
  # data changes. See class example
@@ -138,12 +154,24 @@ class Joosy.Resource.Generic extends Joosy.Module
138
154
  shim
139
155
 
140
156
  #
141
- # Should NOT be called directly, use .create() instead
157
+ # Should NOT be called directly, use {::create} instead
142
158
  #
159
+ # @private
143
160
  # @param [Object] data Data to store
144
161
  #
145
162
  constructor: (data) ->
163
+ @__fillData data, false
164
+
165
+ #
166
+ # Set the resource data manually
167
+ #
168
+ # @param [Object] data Data to store
169
+ #
170
+ # @return [Joosy.Resource.Generic] Returns self
171
+ #
172
+ reset: (data) ->
146
173
  @__fillData data
174
+ return this
147
175
 
148
176
  #
149
177
  # Getter for wrapped data
@@ -156,7 +184,7 @@ class Joosy.Resource.Generic extends Joosy.Module
156
184
  target[0][target[1]]
157
185
 
158
186
  #
159
- # Setter for wrapped data, triggers 'changed'
187
+ # Setter for wrapped data, triggers `changed` event.
160
188
  #
161
189
  # @param [String] path Attribute name to set. Can contain dots to get inline Objects values
162
190
  # @param [mixed] value Value to set
@@ -168,9 +196,9 @@ class Joosy.Resource.Generic extends Joosy.Module
168
196
  null
169
197
 
170
198
  #
171
- # Locates the actual instance of dotted path from get/set
199
+ # Locates the actual instance of attribute path `foo.bar` from get/set
172
200
  #
173
- # @param [String] path Path to the attribute ('foo.bar')
201
+ # @param [String] path Path to the attribute (`foo.bar`)
174
202
  # @return [Array] Instance of object containing last step of path and keyword for required field
175
203
  #
176
204
  __callTarget: (path) ->
@@ -188,7 +216,7 @@ class Joosy.Resource.Generic extends Joosy.Module
188
216
  [@e, path]
189
217
 
190
218
  #
191
- # Wrapper for .create() magic
219
+ # Wrapper for {Joosy.Resource.Generic.create} magic
192
220
  #
193
221
  __call: (path, value) ->
194
222
  if arguments.length > 1
@@ -212,15 +240,15 @@ class Joosy.Resource.Generic extends Joosy.Module
212
240
  #
213
241
  # Prepares raw data: cuts the root node if it exists, runs before filters
214
242
  #
215
- # @param [Object] data Raw data to prepare
216
- # @return [Object]
243
+ # @param [Hash] data Raw data to prepare
244
+ # @return [Hash]
217
245
  #
218
246
  __prepareData: (data) ->
219
247
  if Object.isObject(data) && Object.keys(data).length == 1 && @__entityName
220
248
  name = @__entityName.camelize(false)
221
249
  data = data[name] if data[name]
222
250
 
223
- if @__beforeLoad?
224
- data = @__beforeLoad data
251
+ if @__beforeLoads?
252
+ data = bl.call(this, data) for bl in @__beforeLoads
225
253
 
226
254
  data
@@ -1,20 +1,20 @@
1
1
  #= require ./rest_collection
2
2
 
3
3
  #
4
- # Resource with the HTTP REST as the backend
4
+ # Resource with the HTTP REST as the backend.
5
5
  #
6
- # Example:
6
+ # @example Basic usage
7
7
  # class Rocket extends Joosy.Resource.REST
8
8
  # @entity 'rocket'
9
- #
9
+ #
10
10
  # r = Rocket.find {speed: 'fast'} # queries /rockets/?speed=fast to get RESTCollection
11
11
  # r = Rocket.find 1 # queries /rockets/1 to get Rocket instance
12
- #
12
+ #
13
13
  # class Engine extends Joosy.Resource.REST
14
14
  # @entity 'engine'
15
15
  # @source ->
16
16
  # (rocket) "/rockets/#{rocket 'id'}/engines"
17
- #
17
+ #
18
18
  # e = Engine.at(r).find {oil: true} # queries /rockets/1/engies?oil=true
19
19
  #
20
20
  class Joosy.Resource.REST extends Joosy.Resource.Generic
@@ -24,31 +24,28 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
24
24
  #
25
25
  __primaryKey: 'id'
26
26
 
27
-
28
27
  #
29
- # Default value of resource collection
30
- # Will try to seek for EntityNamesCollection
31
- # Will fallback to Joosy.Resource.RESTCollection
28
+ # Implements `@collection` default behavior.
29
+ # Changes the default fallback to Joosy.Resource.RESTCollection.
32
30
  #
33
31
  __collection: ->
34
32
  named = @__entityName.camelize().pluralize() + 'Collection'
35
33
  if window[named] then window[named] else Joosy.Resource.RESTCollection
36
34
 
37
35
  #
38
- # Sets the field containing primary key
36
+ # Sets the field containing primary key.
39
37
  #
40
- # It has no direct use inside the REST resource itself and can be omited
41
- # That's said: REST resource can work without primary at all. It's here
42
- # just to improve end-users experience for cases when primary exists.
38
+ # @note It has no direct use inside the REST resource itself and can be omited.
39
+ # But it usually should not since we have plans on adding some kind of Identity Map to Joosy.
43
40
  #
44
41
  # @param [String] primary Name of the field
45
42
  #
46
43
  @primary: (primary) -> @::__primaryKey = primary
47
44
 
48
45
  #
49
- # Should NOT be called directly, use .create() instead
46
+ # Should NOT be called directly, use {Joosy.Resource.Generic.create} instead
50
47
  #
51
- # @param [Integer|String|Object] description ID of entity or full data to store
48
+ # @param [Integer, String, Object] description ID of entity or full data to store
52
49
  #
53
50
  constructor: (description={}) ->
54
51
  if @constructor.__isId description
@@ -58,18 +55,18 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
58
55
  @id = @e[@__primaryKey]
59
56
 
60
57
  #
61
- # Queries for REST data and creates resources instances
58
+ # Queries for REST data and creates resources instances.
62
59
  #
63
- # Returns single entity if integer or string given
64
- # Returns collection if no value or Object (with parameters) given
60
+ # Returns single entity if integer or string given.
61
+ # Returns collection if no value or Object (with parameters) given.
65
62
  #
66
- # If first parameter is a Function it's considered as a result callback
67
- # In this case parameters will be considered equal to {}
63
+ # If first parameter is a Function it's considered as a result callback,
64
+ # in this case parameters will be considered equal to `{ }`
68
65
  #
69
- # Example:
66
+ # @example Different find
70
67
  # class Rocket extends Joosy.Resource.REST
71
68
  # @entity 'rocket'
72
- #
69
+ #
73
70
  # Rocket.find 1
74
71
  # Rocket.find {type: 'nuclear'}, (data) -> data
75
72
  # Rocket.find (data) -> data
@@ -77,11 +74,11 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
77
74
  # success: (data) -> data)
78
75
  # cache: true
79
76
  #
80
- # @param [Integer|String|Object] description ID of entity or full data to store
81
- # @param [Function|Object] options AJAX options.
82
- # Will be considered as a success callback if function given
77
+ # @param [Integer, String, Object] description ID of entity or full data to store
78
+ # @param [Hash, Function] options AJAX options.
79
+ # Will be considered as a success callback if function is given.
83
80
  #
84
- # @return [Joosy.Resource.REST|Joosy.Resource.RESTCollection]
81
+ # @return [Joosy.Resource.REST, Joosy.Resource.RESTCollection]
85
82
  #
86
83
  @find: (description, options) ->
87
84
  if Object.isFunction options
@@ -102,8 +99,8 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
102
99
  #
103
100
  # Queries the resource url and reloads the data from server
104
101
  #
105
- # @param [Function|Object] options AJAX options.
106
- # Will be considered as a success callback if function given
102
+ # @param [Hash, Function] options AJAX options.
103
+ # Will be considered as a success callback if function is given.
107
104
  # @return [Joosy.Resource.REST]
108
105
  #
109
106
  fetch: (options) ->
@@ -124,8 +121,8 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
124
121
  #
125
122
  # Destroys the resource by DELETE query
126
123
  #
127
- # @param [Function|Object] options AJAX options.
128
- # Will be considered as a success callback if function given
124
+ # @param [Hash, Function] options AJAX options.
125
+ # Will be considered as a success callback if function is given.
129
126
  # @return [Joosy.Resource.REST]
130
127
  #
131
128
  destroy: (options) ->
@@ -140,11 +137,11 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
140
137
  this
141
138
 
142
139
  #
143
- # Requests the REST member URL with POST or any method given in options.type
140
+ # Requests the REST member URL with POST or any method given in options.type.
144
141
  #
145
- # @param [String] ending Member url (like 'foo' or 'foo/bar')
146
- # @param [Function|Object] options AJAX options.
147
- # Will be considered as a success callback if function given
142
+ # @param [String] ending Member url (like 'foo' or 'foo/bar')
143
+ # @param [Hash, Function] options AJAX options.
144
+ # Will be considered as a success callback if function is given.
148
145
  #
149
146
  request: (ending, options) ->
150
147
  if Object.isFunction options
@@ -163,18 +160,18 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
163
160
  #
164
161
  # Checks if given description can be considered as ID
165
162
  #
166
- # @param [Integer|String|Object] something Value to test
163
+ # @param [Integer, String, Object] something Value to test
167
164
  # @return [Boolean]
168
165
  #
169
166
  @__isId: (something) ->
170
167
  Object.isNumber(something) || Object.isString(something)
171
168
 
172
169
  #
173
- # jQuery AJAX wrapper
170
+ # jQuery AJAX wrapper.
174
171
  #
175
172
  # @param [String] method HTTP Method (GET/POST/PUT/DELETE)
176
173
  # @param [String] url URL to query
177
- # @param [Object] options AJAX options to pass with request
174
+ # @param [Hash] options AJAX options to pass with request
178
175
  # @param [Function] callback XHR callback
179
176
  #
180
177
  @__ajax: (method, url, options={}, callback) ->
@@ -185,11 +182,12 @@ class Joosy.Resource.REST extends Joosy.Resource.Generic
185
182
  dataType: 'json'
186
183
 
187
184
  #
188
- # Builds URL for current resource location
185
+ # Builds URL for current resource location.
186
+ #
187
+ # @param [Hash] options Handling options
189
188
  #
190
- # @param [Object] options Handling options
191
- # extension: string to add to resource base url
192
- # params: GET-params to add to resulting url
189
+ # @option options [String] extension String to add to resource base url
190
+ # @option options [Hash] params GET-params to add to resulting url
193
191
  #
194
192
  @__buildSource: (options={}) ->
195
193
  unless @hasOwnProperty '__source'
@@ -1,18 +1,18 @@
1
1
  #
2
- # Collection of Resources with REST-fetching capabilities
2
+ # Collection of Resources with REST-fetching capabilities.
3
3
  #
4
- # Generally you should not use RESTCollection directly. It will be
5
- # automatically created by Joosy.Resource.REST#find.
4
+ # @note Generally you should not use RESTCollection directly. It will be
5
+ # automatically created by Joosy.Resource.REST#find.
6
6
  #
7
- # Example:
7
+ # @example Basic samples
8
8
  # class R extends Joosy.Resource.REST
9
9
  # @entity 'r'
10
- #
10
+ #
11
11
  # collection = new Joosy.Resource.RESTCollection(R, {color: 'green'})
12
- #
12
+ #
13
13
  # collection.fetch()
14
14
  # collection.page 2
15
- #
15
+ #
16
16
  # collection.params = {color: 'red', sort: 'date'}
17
17
  # collection.fetch()
18
18
  #
@@ -21,22 +21,27 @@ class Joosy.Resource.RESTCollection extends Joosy.Resource.Collection
21
21
  @include Joosy.Modules.Events
22
22
 
23
23
  #
24
- # Hash containing the cache for pages of raw data
25
- # Keys are pages numbers, values are stored AJAX response
24
+ # Hash containing the cache for pages of raw data.
25
+ # Keys are pages numbers, values are stored AJAX response.
26
26
  #
27
27
  pages: Object.extended()
28
28
 
29
29
  #
30
30
  # @param [Class] model Resource class this collection will handle
31
- # @param [Object] params Additional GET-parameters to supply when fetching
31
+ # @param [Hash] params Additional parameters that will be added to all REST requests.
32
32
  #
33
- constructor: (@model, params={}) ->
33
+ constructor: (model, params={}) ->
34
+ super model
34
35
  @params = Object.extended params
35
36
 
36
37
  #
37
- # Clears the storage and attempts to import given JSON
38
+ # Clears the storage and attempts to import given array
38
39
  #
39
- # @param [Object] entities Entities to import
40
+ # @param [Array, Hash] entities Array of entities to import.
41
+ # If hash was given will seek for moodel name camelized and pluralized.
42
+ # @param [Boolean] notify Indicates whether to trigger 'changed' event
43
+ #
44
+ # @return [Joosy.Resource.RESTCollection] Returns self.
40
45
  #
41
46
  reset: (entities, notify=true) ->
42
47
  super entities, false
@@ -45,10 +50,12 @@ class Joosy.Resource.RESTCollection extends Joosy.Resource.Collection
45
50
  this
46
51
 
47
52
  #
48
- # Clears the storage and gets new data from server
53
+ # Clears the storage and gets new data from server.
54
+ #
55
+ # @param [Hash, Function] options AJAX options.
56
+ # Will be considered as a success callback if function is given.
49
57
  #
50
- # @param [Function|Object] options AJAX options.
51
- # Will be considered as a success callback if function given
58
+ # @return [Joosy.Resource.RESTCollection] Returns self.
52
59
  #
53
60
  fetch: (options) ->
54
61
  if Object.isFunction options
@@ -64,11 +71,13 @@ class Joosy.Resource.RESTCollection extends Joosy.Resource.Collection
64
71
  this
65
72
 
66
73
  #
67
- # Returns the subset for requested page. Requests with &page=x if not found localy.
74
+ # Returns the subset for requested page: requests with &page=x.
75
+ #
76
+ # @param [Integer] number Index of page
77
+ # @param [Hash, Function] options AJAX options.
78
+ # Will be considered as a success callback if function is given.
68
79
  #
69
- # @param [Integer] number Index of page
70
- # @param [Function|Object] options AJAX options.
71
- # Will be considered as a success callback if function given
80
+ # @return [Joosy.Resource.RESTCollection] Returns self.
72
81
  #
73
82
  page: (number, options) ->
74
83
  if Object.isFunction options
@@ -84,11 +93,11 @@ class Joosy.Resource.RESTCollection extends Joosy.Resource.Collection
84
93
  this
85
94
 
86
95
  #
87
- # Requests the REST collection URL with POST or any method given in options.type
96
+ # Requests the REST collection URL with POST or any method given in options.type.
88
97
  #
89
- # @param [String] ending Collection url (like 'foo' or 'foo/bar')
90
- # @param [Function|Object] options AJAX options.
91
- # Will be considered as a success callback if function given
98
+ # @param [String] ending Collection url (like 'foo' or 'foo/bar')
99
+ # @param [Hash, Function] options AJAX options.
100
+ # Will be considered as a success callback if function is given.
92
101
  #
93
102
  request: (ending, options) ->
94
103
  if Object.isFunction options
@@ -105,10 +114,10 @@ class Joosy.Resource.RESTCollection extends Joosy.Resource.Collection
105
114
  @model.__ajax type, @model.__buildSource(extension: ending), options, callback
106
115
 
107
116
  #
108
- # Does AJAX request
117
+ # Internal AJAX request implementation.
109
118
  #
110
- # @param [Object] urlOptions GET-params for request
111
- # @param [Object] ajaxOptions AJAX options to pass with request
119
+ # @param [Hash] urlOptions GET-params for request
120
+ # @param [Hash] ajaxOptions AJAX options to pass with request
112
121
  # @param [Function] callback
113
122
  #
114
123
  __fetch: (urlOptions, ajaxOptions, callback) ->