windsor 0.0.6 → 0.0.7

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.
@@ -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