windsor 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,8 +17,9 @@ class WindsorController < ApplicationController
17
17
  current_page_index = params[:page].to_i - 1
18
18
  offset = @max_page_size * current_page_index
19
19
  end
20
- items = model_class.where(scope).limit(@max_page_size).offset(offset).all
21
- total_items = model_class.count
20
+ final_scope = scope.merge(request.query_parameters)
21
+ items = model_class.where(final_scope).limit(@max_page_size).offset(offset).to_a
22
+ total_items = model_class.where(final_scope).count
22
23
 
23
24
  object = {
24
25
  get_controller_name => items,
@@ -152,6 +153,11 @@ class WindsorController < ApplicationController
152
153
  url_conditions.merge!(:action => "show", :id => object_hash["id"].to_s) unless object_hash["id"].nil?
153
154
  url_for(url_conditions)
154
155
  end
156
+
157
+ def get_index_link
158
+ url_conditions = { :controller => get_controller_name, :action => "index" }
159
+ url_for(url_conditions)
160
+ end
155
161
 
156
162
  def get_controller_name
157
163
  model_class.name.underscore.pluralize
@@ -183,13 +189,13 @@ class WindsorController < ApplicationController
183
189
 
184
190
  def request_uri
185
191
  request.base_url + request.path
186
- end
187
-
192
+ end
193
+
188
194
  def page_link(page_number)
189
195
  query_parameters = request.query_parameters
190
196
  query_parameters[:page] = page_number
191
197
  return request_uri + "?" + query_parameters.to_query
192
- end
198
+ end
193
199
 
194
200
  # Removes extra attributes passed in. Extra attributes is defined as attributes not sent in a GET.
195
201
  def prune_extra_attributes(request_body, existing_attributes)
@@ -205,8 +211,8 @@ class WindsorController < ApplicationController
205
211
 
206
212
  def get_resource
207
213
  @model_object = model_class.where(scope).find(params[:id])
208
- end
209
-
214
+ end
215
+
210
216
  def check_implemented
211
217
  set_actions
212
218
  unless enabled_actions.include?(params[:action].to_sym)
@@ -227,7 +233,11 @@ class WindsorController < ApplicationController
227
233
 
228
234
  def prepare_representation(object)
229
235
  add_link( object, get_self_link(object), 'self' )
236
+ if enabled_actions.include?(:index) && !object["id"].nil?
237
+ add_link( object, get_index_link, 'index')
238
+ end
230
239
  attributes = enabled_attributes(object)
240
+ attributes << "links"
231
241
  object.each do |key, value|
232
242
  object.delete key unless attributes.include?(key)
233
243
  end
@@ -1,3 +1,3 @@
1
1
  module Windsor
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: windsor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-05 00:00:00.000000000 Z
13
+ date: 2012-10-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &2152306260 !ruby/object:Gem::Requirement
17
+ requirement: &2160243860 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 3.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152306260
25
+ version_requirements: *2160243860
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: sqlite3
28
- requirement: &2152305240 !ruby/object:Gem::Requirement
28
+ requirement: &2160242520 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2152305240
36
+ version_requirements: *2160242520
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec
39
- requirement: &2152304000 !ruby/object:Gem::Requirement
39
+ requirement: &2160241120 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2152304000
47
+ version_requirements: *2160241120
48
48
  description: Windsor is a plugin for building RESTful APIs in Rails.
49
49
  email:
50
50
  - sam@samdecesare.com