rc_rails 2.1.0
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.
- data/.gitignore +7 -0
- data/CHANGELOG +355 -0
- data/Gemfile +5 -0
- data/Gemfile.lock.development +117 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +71 -0
- data/Rakefile +33 -0
- data/Todo.txt +1 -0
- data/lib/rc_rails.rb +9 -0
- data/lib/resources_controller/actions.rb +147 -0
- data/lib/resources_controller/active_record/saved.rb +15 -0
- data/lib/resources_controller/helper.rb +123 -0
- data/lib/resources_controller/include_actions.rb +37 -0
- data/lib/resources_controller/named_route_helper.rb +154 -0
- data/lib/resources_controller/railtie.rb +14 -0
- data/lib/resources_controller/request_path_introspection.rb +83 -0
- data/lib/resources_controller/resource_methods.rb +32 -0
- data/lib/resources_controller/singleton_actions.rb +21 -0
- data/lib/resources_controller/specification.rb +119 -0
- data/lib/resources_controller/version.rb +3 -0
- data/lib/resources_controller.rb +849 -0
- data/resources_controller.gemspec +29 -0
- data/spec/app/database.yml +5 -0
- data/spec/app/views/accounts/show.html.erb +0 -0
- data/spec/app/views/addresses/edit.html.erb +0 -0
- data/spec/app/views/addresses/index.html.erb +0 -0
- data/spec/app/views/addresses/new.html.erb +0 -0
- data/spec/app/views/addresses/show.html.erb +0 -0
- data/spec/app/views/admin/forums/create.html.erb +0 -0
- data/spec/app/views/admin/forums/destroy.html.erb +0 -0
- data/spec/app/views/admin/forums/edit.html.erb +0 -0
- data/spec/app/views/admin/forums/index.html.erb +0 -0
- data/spec/app/views/admin/forums/new.html.erb +0 -0
- data/spec/app/views/admin/forums/show.html.erb +0 -0
- data/spec/app/views/admin/forums/update.html.erb +0 -0
- data/spec/app/views/comments/edit.html.erb +0 -0
- data/spec/app/views/comments/index.html.erb +0 -0
- data/spec/app/views/comments/new.html.erb +0 -0
- data/spec/app/views/comments/show.html.erb +0 -0
- data/spec/app/views/forum_posts/edit.html.erb +0 -0
- data/spec/app/views/forum_posts/index.html.erb +0 -0
- data/spec/app/views/forum_posts/new.html.erb +0 -0
- data/spec/app/views/forum_posts/show.html.erb +0 -0
- data/spec/app/views/forums/create.html.erb +0 -0
- data/spec/app/views/forums/destroy.html.erb +0 -0
- data/spec/app/views/forums/edit.html.erb +0 -0
- data/spec/app/views/forums/index.html.erb +0 -0
- data/spec/app/views/forums/new.html.erb +0 -0
- data/spec/app/views/forums/show.html.erb +0 -0
- data/spec/app/views/forums/update.html.erb +0 -0
- data/spec/app/views/infos/edit.html.erb +0 -0
- data/spec/app/views/infos/show.html.erb +0 -0
- data/spec/app/views/interests/index.html.erb +0 -0
- data/spec/app/views/interests/show.html.erb +0 -0
- data/spec/app/views/owners/edit.html.erb +0 -0
- data/spec/app/views/owners/new.html.erb +0 -0
- data/spec/app/views/owners/show.html.erb +0 -0
- data/spec/app/views/tags/index.html.erb +0 -0
- data/spec/app/views/tags/new.html.erb +0 -0
- data/spec/app/views/tags/show.html.erb +0 -0
- data/spec/app/views/users/edit.html.erb +0 -0
- data/spec/app/views/users/index.html.erb +0 -0
- data/spec/app/views/users/show.html.erb +0 -0
- data/spec/app.rb +315 -0
- data/spec/controllers/accounts_controller_spec.rb +77 -0
- data/spec/controllers/addresses_controller_spec.rb +346 -0
- data/spec/controllers/admin_forums_controller_spec.rb +638 -0
- data/spec/controllers/comments_controller_spec.rb +380 -0
- data/spec/controllers/comments_controller_with_models_spec.rb +202 -0
- data/spec/controllers/forum_posts_controller_spec.rb +426 -0
- data/spec/controllers/forums_controller_spec.rb +694 -0
- data/spec/controllers/infos_controller_spec.rb +71 -0
- data/spec/controllers/interests_controller_via_forum_spec.rb +80 -0
- data/spec/controllers/interests_controller_via_user_spec.rb +114 -0
- data/spec/controllers/owners_controller_spec.rb +277 -0
- data/spec/controllers/resource_saved_spec.rb +47 -0
- data/spec/controllers/resource_service_in_forums_controller_spec.rb +37 -0
- data/spec/controllers/resource_service_in_infos_controller_spec.rb +36 -0
- data/spec/controllers/resource_service_in_interests_controller_via_forum_spec.rb +51 -0
- data/spec/controllers/tags_controller_spec.rb +83 -0
- data/spec/controllers/tags_controller_via_account_info_spec.rb +131 -0
- data/spec/controllers/tags_controller_via_forum_post_comment_spec.rb +144 -0
- data/spec/controllers/tags_controller_via_forum_post_spec.rb +133 -0
- data/spec/controllers/tags_controller_via_forum_spec.rb +173 -0
- data/spec/controllers/tags_controller_via_user_address_spec.rb +130 -0
- data/spec/controllers/users_controller_spec.rb +248 -0
- data/spec/lib/action_view_helper_spec.rb +143 -0
- data/spec/lib/bug_0001_spec.rb +22 -0
- data/spec/lib/include_actions_spec.rb +35 -0
- data/spec/lib/load_enclosing_resources_spec.rb +245 -0
- data/spec/lib/request_path_introspection_spec.rb +130 -0
- data/spec/lib/resource_methods_spec.rb +204 -0
- data/spec/lib/resources_controller_spec.rb +57 -0
- data/spec/models/comment_saved_spec.rb +24 -0
- data/spec/rspec_generator_task.rb +105 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/verify_rcov.rb +52 -0
- metadata +193 -0
data/.gitignore
ADDED
data/CHANGELOG
ADDED
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
= 2.1.0
|
|
2
|
+
|
|
3
|
+
* Gemify resources_controller and friends (thanks Josh Goebel)
|
|
4
|
+
gem name is `rc_rails`, see also `response_for_rails`, and `response_for_rc_rails`
|
|
5
|
+
* Remove Ardes namespace (BC preserved)
|
|
6
|
+
|
|
7
|
+
= Prior to gem release
|
|
8
|
+
|
|
9
|
+
* Make overriding ResourceMethods more sane. Thanks to Tom Stuart for the nudge.
|
|
10
|
+
|
|
11
|
+
* upgraded to Rails 3 and RSpec 2. Thanks to Andrew Bloomgarden for making this happen.
|
|
12
|
+
|
|
13
|
+
No BC with rails 2 - use the 2-3-stable branch for that.
|
|
14
|
+
|
|
15
|
+
* added ResourceMethods#destroy_resource, which calls destroy on the resource_service, which in turn finds the best way to
|
|
16
|
+
destroy the resource to trigger any association callbacks. Changed actions to use the destroy_resource method. (reported by Jason Lee)
|
|
17
|
+
|
|
18
|
+
NOTE: this may break some of your controller specs, they may report an unexpected :destroy message sent to an association.
|
|
19
|
+
You just need to expect this to happen when you have an enclosing resource.
|
|
20
|
+
|
|
21
|
+
* ResourceMethods#new_resource looks in params[singular_resource_class_name] for attributes, which makes RC much
|
|
22
|
+
more compatible with form_for (reported by Jason Lee)
|
|
23
|
+
|
|
24
|
+
* resource_service.new now calls #build if the service is an association, or #new otherwise (reported by Jason Lee)
|
|
25
|
+
|
|
26
|
+
NOTE: this may break some of your specs if you are expecting, say, a POST action to call :new on an association.
|
|
27
|
+
You just need to change the mocks to expect :build (when there's an enclosing resource, and resource_service.new is called)
|
|
28
|
+
|
|
29
|
+
* resource methods (new_resource, find_resource, and find_resources) are now in a mixin so it's easier
|
|
30
|
+
to override them. Just include a new mixin after the resources_controller_for call, or add them to your
|
|
31
|
+
action module.
|
|
32
|
+
|
|
33
|
+
* Allow new_resource to use the block initialisation syntax in rails 2.3 (reported by Chris Hapgood)
|
|
34
|
+
|
|
35
|
+
* Fix bug where id is the same name as the resource name [mocoso]
|
|
36
|
+
|
|
37
|
+
* Bugs introduced with RequestPathIntrospection (#5 and #6 on lighthouse) solved thanks to Sergei Serdyuk
|
|
38
|
+
|
|
39
|
+
* RC no longer uses the route that invoked the controller to figure out wildcard enclosing resources.
|
|
40
|
+
|
|
41
|
+
- this change means that you will no longer get those pesky 'NoRecognizedRoute' errors when your controller
|
|
42
|
+
is invoked by another route, such as a :controller/:action/:id route.
|
|
43
|
+
|
|
44
|
+
* Further relaxed RC's route pickiness. If a route is not recognised, construct segments from the params
|
|
45
|
+
|
|
46
|
+
* Relaxed RC's pickiness about what route was used to invoke a controller.
|
|
47
|
+
|
|
48
|
+
* Removed deprecation warning from save_resource, and added cautionary notes to the comments instead
|
|
49
|
+
|
|
50
|
+
* If you use your own Action modules, you can now define a module method #include_actions to do the :only / :except
|
|
51
|
+
handling yourself. See Ardes::ResourcesController::IncludeActions. This change is completely BC, you don't need
|
|
52
|
+
to do anything to any of your existing action modules.
|
|
53
|
+
|
|
54
|
+
* use add_enclosing_resource to add your own enclosing resources if you're skipping load_enclosing_resources [Tom Stuart, Joel Chippindale]
|
|
55
|
+
|
|
56
|
+
* The reason for the reversion in c21f35c has been fixed. Thanks Jason Lee for the bug report.
|
|
57
|
+
|
|
58
|
+
The problem was that I had changed resource_saved?'s behaviour to *not* saving the model if it had
|
|
59
|
+
already been saved. In the future resource_saved? will be deprecated, but not yet.
|
|
60
|
+
|
|
61
|
+
BTW. All of these changes to resource_saved? behaviour is aimed at making RC drop in compatible with
|
|
62
|
+
rspec's generated controller specs (try rake spec:generate).
|
|
63
|
+
|
|
64
|
+
To do that I need the default update action to use :update_attributes. This meant that the old strategy
|
|
65
|
+
of keeping track of saves by using save_resource wont work. Instead, we keep track by looking at the
|
|
66
|
+
AR's state (see lib/ardes/active_record/saved.rb) which is a far better solution anyway.
|
|
67
|
+
|
|
68
|
+
* API change: save_resource deprecated
|
|
69
|
+
|
|
70
|
+
So save_resource is now deprecated, just use resource.save
|
|
71
|
+
ActiveRecords can now be asked if they are saved?
|
|
72
|
+
|
|
73
|
+
* rspec compat: Added new rake task to test that an RC controller passes the default rspec_scaffold
|
|
74
|
+
controller specs.
|
|
75
|
+
|
|
76
|
+
* Added BC for 2-0-stable branch re: find_filter, and regression specs
|
|
77
|
+
|
|
78
|
+
* find_filter no longer exists in edge - updated accordingly [Jason Lee http://github.com/jlsync]
|
|
79
|
+
|
|
80
|
+
* Added ability to pass options to named route in form_for_resource
|
|
81
|
+
|
|
82
|
+
form_for_resource :url_options => {:gday => 'mate'}
|
|
83
|
+
|
|
84
|
+
# => action="/products/1?gday=mate" (for update)
|
|
85
|
+
# => action="/products?gday=mate" (for create)
|
|
86
|
+
|
|
87
|
+
* changed :erp to :resource_path, and added :resource_method.
|
|
88
|
+
|
|
89
|
+
This means you can connect a named route up with a REST action and also change the method
|
|
90
|
+
|
|
91
|
+
map.activate_account '/activate/:code', :controller => 'activations', :action => 'create', :resource_path => '/activations', :resource_method => :post
|
|
92
|
+
|
|
93
|
+
:erp retained for BC
|
|
94
|
+
|
|
95
|
+
* save_resource and resource_saved? added. These simply save the resource and cache
|
|
96
|
+
the result of that save. This means you can use the result of the resource save in your
|
|
97
|
+
response_for blocks (if you're using response_for)
|
|
98
|
+
|
|
99
|
+
response_for :create do |format|
|
|
100
|
+
if resource_saved?
|
|
101
|
+
format.html {}
|
|
102
|
+
else
|
|
103
|
+
format.html {}
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def create
|
|
108
|
+
self.resource = new_resource
|
|
109
|
+
save_resource
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
* added Ardes::ResourcesController.actions and
|
|
113
|
+
Ardes::ResourcesController.singleton_actions accessors so you can set the
|
|
114
|
+
default actions module across your app
|
|
115
|
+
|
|
116
|
+
* Added resource_saved? method to controller. This is useful for sharing the
|
|
117
|
+
result of a save outside action methods (for example in response_for blocks)
|
|
118
|
+
|
|
119
|
+
* added error_messages_for_resource to Helper
|
|
120
|
+
|
|
121
|
+
* fixed form_for_resource when resource is new and controller is for singleton
|
|
122
|
+
resource
|
|
123
|
+
|
|
124
|
+
* added :erp patch, doc and specs [thanks Chris Hapgood for the initial patch]
|
|
125
|
+
|
|
126
|
+
Use the :erp param when you are routing a non RESTful route to your rc controller
|
|
127
|
+
This allows rc to load the resources using the route.
|
|
128
|
+
|
|
129
|
+
e.g. map.home '', :controller => 'forums', :action => 'index', :erp => '/forums'
|
|
130
|
+
|
|
131
|
+
* Removed deprecated options (in r492 - I forgot to say so)
|
|
132
|
+
|
|
133
|
+
* Coverage back to 100%
|
|
134
|
+
|
|
135
|
+
* you can alias an enclosing resource with :as
|
|
136
|
+
|
|
137
|
+
This can be useful when you have a tree like domain:
|
|
138
|
+
|
|
139
|
+
map.resources :categories do |category|
|
|
140
|
+
category.resources :categories
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
class CategoriesController < ApplicationController
|
|
144
|
+
resources_controller_for :categories
|
|
145
|
+
map_resource :category, :as => :parent
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
* you can now specify which actions are loaded from the actions module
|
|
149
|
+
|
|
150
|
+
resources_controller_for :forums, :only => [:index, :show]
|
|
151
|
+
resources_controller_for :forums, :actions => MyActions, :except => :destroy
|
|
152
|
+
|
|
153
|
+
The method used to achieve this is Ardes::ResourcesController::include_actions
|
|
154
|
+
which can be used in any ActionController when resources_controller is in your
|
|
155
|
+
plugins directory
|
|
156
|
+
|
|
157
|
+
* - :polymorphic => true is back:
|
|
158
|
+
resources_controller_for :tags
|
|
159
|
+
nested_in :taggable, :polymorphic => true
|
|
160
|
+
|
|
161
|
+
This will load the enclosing resource (which can be a mapped resource) as
|
|
162
|
+
@taggable as well as its default name
|
|
163
|
+
|
|
164
|
+
The following syntax is equivalent to the above two lines:
|
|
165
|
+
resources_controller_for :tags, :in => '?taggable'
|
|
166
|
+
|
|
167
|
+
And you can specify a single wildcard '?' as well as expanding wildcards '*':
|
|
168
|
+
resources_controller_for :images, :in => '?', :load_enclosing => false
|
|
169
|
+
# this will work for routes like /users/1/images, /forums/2/images, /featured/images
|
|
170
|
+
|
|
171
|
+
- test coverage is up
|
|
172
|
+
|
|
173
|
+
- moved some of the 'friend' functionality out of Specification, as it smelt bad
|
|
174
|
+
|
|
175
|
+
* added specs for when you want to find_by_(something other than id) (users,
|
|
176
|
+
addresses, interests)
|
|
177
|
+
|
|
178
|
+
Fixed a bug where the resource mapping was using name instead of segment to
|
|
179
|
+
match when a map should be used (this meant mapping didn't work for non
|
|
180
|
+
singleton resources)
|
|
181
|
+
|
|
182
|
+
Thanks to Inviz <invi...@gmail.com> and Matt Mower <matt.mo...@gmail.com>
|
|
183
|
+
in http://groups.google.com/group/resources_controller/browse_thread/thread/b71b2ce196a09d15
|
|
184
|
+
for the bug reports
|
|
185
|
+
|
|
186
|
+
* Updated actions to be more in line with recent rails scaffold [Jason Lee <jlsync@gmail.com>]
|
|
187
|
+
|
|
188
|
+
* resources_controller now uses before_filter (instead of prepend_before_filter)
|
|
189
|
+
for load_enclosing_resources. So the resources will be loaded at the point
|
|
190
|
+
where resources_controller_for is specified. However, it only adds the
|
|
191
|
+
filter if it's not already there - so you can play around with the order if
|
|
192
|
+
you need to:
|
|
193
|
+
|
|
194
|
+
prepend_before_filter :load_enclosing_resources
|
|
195
|
+
resources_controller_for :foos
|
|
196
|
+
|
|
197
|
+
(common case for the above is where superclass defines filters that need
|
|
198
|
+
access to enclosing resources)
|
|
199
|
+
|
|
200
|
+
* resources_controller_for can now be specified more than once in a controller
|
|
201
|
+
heirachy. The latter definition will overwrite the previous one, and will
|
|
202
|
+
also 'reset' the nestings.
|
|
203
|
+
|
|
204
|
+
* First stab at namespace support:
|
|
205
|
+
map.namespace :admin do |admin|
|
|
206
|
+
admin.resources :forums
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
module Admin
|
|
210
|
+
module Forums < ApplicationController
|
|
211
|
+
resources_controller_for :forums
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
in an action:
|
|
216
|
+
resources_path # => '/admin/forums'
|
|
217
|
+
enclosing_resources # => []
|
|
218
|
+
|
|
219
|
+
* Minor doc improvements
|
|
220
|
+
Speced better js response on edit and new actions [Jason Lee <jlsync@gmail.com>]
|
|
221
|
+
|
|
222
|
+
* The Routing patch has been removed from RC as it has been accepted and applied to edge (#8930).
|
|
223
|
+
This is not a dependency of RC, but it is of the specs - so grab latest edge to run them.
|
|
224
|
+
|
|
225
|
+
* Major internal changes, and some API change: see the rdoc for details.
|
|
226
|
+
The headlines:
|
|
227
|
+
- load_enclosing is now true by default
|
|
228
|
+
- BC: the old options work for now, but you'll get deprecation messages
|
|
229
|
+
- refactored a lot of code into friend classes - in particular there is now
|
|
230
|
+
ResourcesController::Specification which specifies how to find a resource from the route
|
|
231
|
+
|
|
232
|
+
* Fixed some problems with internals of RC when :load_enclosing => true
|
|
233
|
+
|
|
234
|
+
* resources_controller now supports singleton resources! and much better :load_enclosing support
|
|
235
|
+
Booya! =>
|
|
236
|
+
class TagsController < ApplicationController
|
|
237
|
+
resources_controller_for :tags, :load_enclosing => true
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
this will service all these routes (loading the resources into assigns for the view)
|
|
241
|
+
|
|
242
|
+
/tags
|
|
243
|
+
/forums/2/tags
|
|
244
|
+
/images/1/tags
|
|
245
|
+
/home/tags <= singular resource
|
|
246
|
+
/users/1/image/tags <= nested singular resource
|
|
247
|
+
|
|
248
|
+
Also
|
|
249
|
+
|
|
250
|
+
class BlogController < ApplicationController
|
|
251
|
+
resources_controller_for :blog, :singleton => true, :load_enclosing => true
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
class PostController < ApplicationController
|
|
255
|
+
resources_controller_for :post, :load_enclosing => true
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
for /campaigns/1/blog
|
|
259
|
+
/users/2/blog
|
|
260
|
+
/campaigns/1/blog/posts
|
|
261
|
+
/users/2/blog/posts
|
|
262
|
+
|
|
263
|
+
etc...
|
|
264
|
+
|
|
265
|
+
TODO: rewrite docs - for now check out the spec suite.
|
|
266
|
+
TODO: refactor code - I did it BDD stylee, so there's lots of specs but also a lot of code that 'is the simplest thing that makes the specs pass'
|
|
267
|
+
|
|
268
|
+
* resources_request has changed format - it now returns an array like this
|
|
269
|
+
[ {:name => "forums", :name_prefix => "forum_", :key => :forum_id, :id => "1"}, {:name => "posts"}]
|
|
270
|
+
Singular resources are detected properly (see spec/specs/resources_controller_spec for some tests).
|
|
271
|
+
This paves the way for singular_resource support, and better 'many routes/one controller' support
|
|
272
|
+
|
|
273
|
+
Decided that Patching Routing was a bad idea, so route is re-recognized using the request path. This
|
|
274
|
+
only happens for controllers with :load_enclosing => true
|
|
275
|
+
|
|
276
|
+
* You can now call methods such as enclosing_resource_path, enclosing_resources_path, etc
|
|
277
|
+
in your controller and view and the correct url helper will be called. These url_helpers are defined
|
|
278
|
+
as they are needed, so it's pretty fast.
|
|
279
|
+
|
|
280
|
+
* Removing routing decoration for now
|
|
281
|
+
|
|
282
|
+
* Enclosing resources are now all loaded by one method :load_enclosing which is a prepend_before_filter.
|
|
283
|
+
This means that you can access the enclosing resources in all before_filters, even when a subclass adds
|
|
284
|
+
more nestings.
|
|
285
|
+
|
|
286
|
+
Example:
|
|
287
|
+
|
|
288
|
+
class PostsController < ApplicationController
|
|
289
|
+
resources_controller_for :posts
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
class UserPostsController < PostsController
|
|
293
|
+
nested_in :user
|
|
294
|
+
|
|
295
|
+
before_filter {|c| raise 'boom' if @user.name == 'Santa'}
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
* Removed ResourceService proxy class. This was mainly used for BC with rails <= 1.2.2. If you're
|
|
299
|
+
using this, then freeze to r377 of resources_controller. The resource_service is now either an
|
|
300
|
+
ActiveRecord or association proxy.
|
|
301
|
+
|
|
302
|
+
* Added route decoration to access the recognized route in the controller (for future parsing of
|
|
303
|
+
singular resources, and better polymorphic support)
|
|
304
|
+
|
|
305
|
+
* Removed Ardes::ResourcesController::Spec::ViewHelper as it's best to not have a dependency
|
|
306
|
+
like this in your specs. Just stub out the resource methods that are needed by that view,
|
|
307
|
+
or use the default assigns.
|
|
308
|
+
|
|
309
|
+
* Named path support is much improved. All named routes for the current resource can be
|
|
310
|
+
called by substituting 'resource'. E.g. the following methods in your controller or
|
|
311
|
+
view will work: :formatted_resource_path, :preview_resource_path (if :preview is in :member),
|
|
312
|
+
:resource_tags_path, etc, etc.
|
|
313
|
+
This helps with decoupling the model name from the controller and view.
|
|
314
|
+
|
|
315
|
+
* Added flash tests [frederikfix at eml dot cc]
|
|
316
|
+
|
|
317
|
+
* Added rjs actions [frederikfix at eml dot cc]
|
|
318
|
+
|
|
319
|
+
* Added Ardes::ResourcesController::Spec::ViewHelper for easy view testing
|
|
320
|
+
|
|
321
|
+
* Added Helper#form_for_resource for easy form generation, see rdoc for details
|
|
322
|
+
|
|
323
|
+
* Enclosed named paths use the new edge rails conventions for named routes.
|
|
324
|
+
|
|
325
|
+
So to get the path to edit a child tag resource (where resource is 'forum:1')
|
|
326
|
+
edit_resource_tag_path(@tag) # => '/forums/1/tags/2/edit'
|
|
327
|
+
|
|
328
|
+
* Handles options passed to named routes
|
|
329
|
+
|
|
330
|
+
resource_path(:sort_by => 'article') # => '/forums/2?sort_by=article'
|
|
331
|
+
|
|
332
|
+
* Now handles enclosing named paths. You can reference named routes that are
|
|
333
|
+
'below' (or enclosed by) the current resource by appending resource_ to that
|
|
334
|
+
named route. [thanks Chris Hapgood for the initial idea]
|
|
335
|
+
|
|
336
|
+
* (find|new)_resource(s) methods are now defined by resources_controller_for only
|
|
337
|
+
if they do not already exist
|
|
338
|
+
|
|
339
|
+
* Better regexp for resources_request [Chris Hapgood]
|
|
340
|
+
|
|
341
|
+
* Added more specs to get coverage to 100%
|
|
342
|
+
|
|
343
|
+
* Upgraded to rpsec 0.9, improved Rakefile and specs so that spec:plugins will work
|
|
344
|
+
|
|
345
|
+
* Removed ApplicationController from spec/app.rb to avoid conflicts with en-
|
|
346
|
+
closing rails application
|
|
347
|
+
|
|
348
|
+
* Added method_missing proxy to ResourceService, to enable the resource_service
|
|
349
|
+
to be used for things other than find or new (for example Pagination) [Dan Kubb]
|
|
350
|
+
|
|
351
|
+
* Fixed small error in flash message of destroy action [Dan Kubb]
|
|
352
|
+
|
|
353
|
+
* Removing experimental cruft
|
|
354
|
+
|
|
355
|
+
* CHANGELOG started
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
rc_rails (2.1.0)
|
|
5
|
+
rails (>= 3.1.0)
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: http://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
actionmailer (3.2.2)
|
|
11
|
+
actionpack (= 3.2.2)
|
|
12
|
+
mail (~> 2.4.0)
|
|
13
|
+
actionpack (3.2.2)
|
|
14
|
+
activemodel (= 3.2.2)
|
|
15
|
+
activesupport (= 3.2.2)
|
|
16
|
+
builder (~> 3.0.0)
|
|
17
|
+
erubis (~> 2.7.0)
|
|
18
|
+
journey (~> 1.0.1)
|
|
19
|
+
rack (~> 1.4.0)
|
|
20
|
+
rack-cache (~> 1.1)
|
|
21
|
+
rack-test (~> 0.6.1)
|
|
22
|
+
sprockets (~> 2.1.2)
|
|
23
|
+
activemodel (3.2.2)
|
|
24
|
+
activesupport (= 3.2.2)
|
|
25
|
+
builder (~> 3.0.0)
|
|
26
|
+
activerecord (3.2.2)
|
|
27
|
+
activemodel (= 3.2.2)
|
|
28
|
+
activesupport (= 3.2.2)
|
|
29
|
+
arel (~> 3.0.2)
|
|
30
|
+
tzinfo (~> 0.3.29)
|
|
31
|
+
activeresource (3.2.2)
|
|
32
|
+
activemodel (= 3.2.2)
|
|
33
|
+
activesupport (= 3.2.2)
|
|
34
|
+
activesupport (3.2.2)
|
|
35
|
+
i18n (~> 0.6)
|
|
36
|
+
multi_json (~> 1.0)
|
|
37
|
+
arel (3.0.2)
|
|
38
|
+
builder (3.0.0)
|
|
39
|
+
coderay (1.0.5)
|
|
40
|
+
diff-lcs (1.1.3)
|
|
41
|
+
erubis (2.7.0)
|
|
42
|
+
hike (1.2.1)
|
|
43
|
+
i18n (0.6.0)
|
|
44
|
+
journey (1.0.3)
|
|
45
|
+
json (1.6.5)
|
|
46
|
+
mail (2.4.4)
|
|
47
|
+
i18n (>= 0.4.0)
|
|
48
|
+
mime-types (~> 1.16)
|
|
49
|
+
treetop (~> 1.4.8)
|
|
50
|
+
method_source (0.7.1)
|
|
51
|
+
mime-types (1.17.2)
|
|
52
|
+
multi_json (1.1.0)
|
|
53
|
+
polyglot (0.3.3)
|
|
54
|
+
pry (0.9.8.4)
|
|
55
|
+
coderay (~> 1.0.5)
|
|
56
|
+
method_source (~> 0.7.1)
|
|
57
|
+
slop (>= 2.4.4, < 3)
|
|
58
|
+
rack (1.4.1)
|
|
59
|
+
rack-cache (1.2)
|
|
60
|
+
rack (>= 0.4)
|
|
61
|
+
rack-ssl (1.3.2)
|
|
62
|
+
rack
|
|
63
|
+
rack-test (0.6.1)
|
|
64
|
+
rack (>= 1.0)
|
|
65
|
+
rails (3.2.2)
|
|
66
|
+
actionmailer (= 3.2.2)
|
|
67
|
+
actionpack (= 3.2.2)
|
|
68
|
+
activerecord (= 3.2.2)
|
|
69
|
+
activeresource (= 3.2.2)
|
|
70
|
+
activesupport (= 3.2.2)
|
|
71
|
+
bundler (~> 1.0)
|
|
72
|
+
railties (= 3.2.2)
|
|
73
|
+
railties (3.2.2)
|
|
74
|
+
actionpack (= 3.2.2)
|
|
75
|
+
activesupport (= 3.2.2)
|
|
76
|
+
rack-ssl (~> 1.3.2)
|
|
77
|
+
rake (>= 0.8.7)
|
|
78
|
+
rdoc (~> 3.4)
|
|
79
|
+
thor (~> 0.14.6)
|
|
80
|
+
rake (0.9.2.2)
|
|
81
|
+
rdoc (3.12)
|
|
82
|
+
json (~> 1.4)
|
|
83
|
+
rspec (2.8.0)
|
|
84
|
+
rspec-core (~> 2.8.0)
|
|
85
|
+
rspec-expectations (~> 2.8.0)
|
|
86
|
+
rspec-mocks (~> 2.8.0)
|
|
87
|
+
rspec-core (2.8.0)
|
|
88
|
+
rspec-expectations (2.8.0)
|
|
89
|
+
diff-lcs (~> 1.1.2)
|
|
90
|
+
rspec-mocks (2.8.0)
|
|
91
|
+
rspec-rails (2.8.1)
|
|
92
|
+
actionpack (>= 3.0)
|
|
93
|
+
activesupport (>= 3.0)
|
|
94
|
+
railties (>= 3.0)
|
|
95
|
+
rspec (~> 2.8.0)
|
|
96
|
+
slop (2.4.4)
|
|
97
|
+
sprockets (2.1.2)
|
|
98
|
+
hike (~> 1.2)
|
|
99
|
+
rack (~> 1.0)
|
|
100
|
+
tilt (~> 1.1, != 1.3.0)
|
|
101
|
+
sqlite3 (1.3.5)
|
|
102
|
+
thor (0.14.6)
|
|
103
|
+
tilt (1.3.3)
|
|
104
|
+
treetop (1.4.10)
|
|
105
|
+
polyglot
|
|
106
|
+
polyglot (>= 0.3.1)
|
|
107
|
+
tzinfo (0.3.32)
|
|
108
|
+
|
|
109
|
+
PLATFORMS
|
|
110
|
+
ruby
|
|
111
|
+
|
|
112
|
+
DEPENDENCIES
|
|
113
|
+
pry
|
|
114
|
+
rc_rails!
|
|
115
|
+
rspec (>= 2.8.0)
|
|
116
|
+
rspec-rails (>= 2.8.0)
|
|
117
|
+
sqlite3
|
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2007-2012 Ian White - ian.w.white@gmail.com
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
= resources_controller
|
|
2
|
+
|
|
3
|
+
is a plugin to facilitate inheritance and DRYness in your resources controllers. It introduces some abstraction to help
|
|
4
|
+
you override the default RESTful funtionality in a clean and simple manner.
|
|
5
|
+
|
|
6
|
+
The gem name is *rc_rails*
|
|
7
|
+
|
|
8
|
+
== Rails 3 version
|
|
9
|
+
|
|
10
|
+
Add this to your Gemfile
|
|
11
|
+
|
|
12
|
+
gem 'rc_rails'
|
|
13
|
+
|
|
14
|
+
== Resources
|
|
15
|
+
|
|
16
|
+
<b>Github</b> for code: http://github.com/ianwhite/resources_controller
|
|
17
|
+
|
|
18
|
+
<b>Rdoc.info</b> docs: http://rdoc.info/github/ianwhite/resources_controller/master/frames
|
|
19
|
+
|
|
20
|
+
<b>Google group</b> for questions: http://groups.google.com/group/resources_controller
|
|
21
|
+
|
|
22
|
+
<b>RailsConfEurope</b> presentation files: http://en.oreilly.com/railseurope2008/public/schedule/detail/3536
|
|
23
|
+
|
|
24
|
+
== for rails 2.x
|
|
25
|
+
|
|
26
|
+
use the rails2 branch: http://github.com/ianwhite/resources_controller/tree/rails2
|
|
27
|
+
|
|
28
|
+
== Run the specs
|
|
29
|
+
|
|
30
|
+
To get set up for development, do the following:
|
|
31
|
+
|
|
32
|
+
git clone git://github.com/ianwhite/resources_controller
|
|
33
|
+
cd resources_controller
|
|
34
|
+
cp Gemfile.lock.development Gemfile.lock
|
|
35
|
+
bundle
|
|
36
|
+
rake spec:generate
|
|
37
|
+
rake spec
|
|
38
|
+
|
|
39
|
+
== How to contribute
|
|
40
|
+
|
|
41
|
+
If you have found a bug, or have a new feature, then spec'd code is great.
|
|
42
|
+
|
|
43
|
+
To get set up and run the tests
|
|
44
|
+
|
|
45
|
+
git clone git://github.com/ianwhite/resources_controller
|
|
46
|
+
cd resources_controller
|
|
47
|
+
bundle
|
|
48
|
+
rake spec:all
|
|
49
|
+
|
|
50
|
+
== Contributors
|
|
51
|
+
|
|
52
|
+
The following people have made contributions to resources_controller. Please let me know if I've missed you out.
|
|
53
|
+
|
|
54
|
+
* Josh Goebel
|
|
55
|
+
* Andrew Bloomgarden
|
|
56
|
+
* Chris Hapgood
|
|
57
|
+
* Jason Lee
|
|
58
|
+
* Richard Hooker
|
|
59
|
+
* Matt Mower
|
|
60
|
+
* Inviz
|
|
61
|
+
* Dan Kubb
|
|
62
|
+
* Rein Henrichs
|
|
63
|
+
* Tom Stuart
|
|
64
|
+
* Joel Chippindale
|
|
65
|
+
* Tim Pope
|
|
66
|
+
* Tom ten Thij
|
|
67
|
+
* Sergei Serdyuk
|
|
68
|
+
|
|
69
|
+
== License
|
|
70
|
+
|
|
71
|
+
Copyright (c) 2007-2009 Ian White, MIT License
|
data/Rakefile
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
begin
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
rescue LoadError
|
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
6
|
+
end
|
|
7
|
+
begin
|
|
8
|
+
require 'rdoc/task'
|
|
9
|
+
rescue LoadError
|
|
10
|
+
require 'rdoc/rdoc'
|
|
11
|
+
require 'rake/rdoctask'
|
|
12
|
+
RDoc::Task = Rake::RDocTask
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
17
|
+
rdoc.title = 'ResourcesController'
|
|
18
|
+
rdoc.options << '--line-numbers'
|
|
19
|
+
rdoc.rdoc_files.include('README.rdoc', 'CHANGELOG', 'MIT-LICENSE')
|
|
20
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
Bundler::GemHelper.install_tasks
|
|
24
|
+
|
|
25
|
+
require 'rspec/core/rake_task'
|
|
26
|
+
require File.expand_path('../spec/rspec_generator_task', __FILE__) # for spec:generate task
|
|
27
|
+
|
|
28
|
+
task :default => [:spec]
|
|
29
|
+
|
|
30
|
+
desc "Run the specs"
|
|
31
|
+
RSpec::Core::RakeTask.new(:spec => []) do |t|
|
|
32
|
+
t.pattern = "./spec/**/*_spec.rb"
|
|
33
|
+
end
|
data/Todo.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* features
|