Refactor resource action scope methods

This commit is contained in:
Andrew White 2010-10-08 22:00:27 +01:00
parent f415b3e6d1
commit 067c1aa0e0

@ -735,15 +735,15 @@ def resource(*resources, &block)
resource_scope(SingletonResource.new(resources.pop, options)) do
yield if block_given?
collection_scope do
collection do
post :create
end if parent_resource.actions.include?(:create)
new_scope do
new do
get :new
end if parent_resource.actions.include?(:new)
member_scope do
member do
get :edit if parent_resource.actions.include?(:edit)
get :show if parent_resource.actions.include?(:show)
put :update if parent_resource.actions.include?(:update)
@ -780,16 +780,16 @@ def resources(*resources, &block)
resource_scope(Resource.new(resources.pop, options)) do
yield if block_given?
collection_scope do
collection do
get :index if parent_resource.actions.include?(:index)
post :create if parent_resource.actions.include?(:create)
end
new_scope do
new do
get :new
end if parent_resource.actions.include?(:new)
member_scope do
member do
get :edit if parent_resource.actions.include?(:edit)
get :show if parent_resource.actions.include?(:show)
put :update if parent_resource.actions.include?(:update)
@ -813,12 +813,14 @@ def resources(*resources, &block)
# create the <tt>search_photos_url</tt> and <tt>search_photos_path</tt>
# route helpers.
def collection
unless @scope[:scope_level] == :resources
raise ArgumentError, "can't use collection outside resources scope"
unless resource_scope?
raise ArgumentError, "can't use collection outside resource(s) scope"
end
collection_scope do
yield
with_scope_level(:collection) do
scope(parent_resource.collection_scope) do
yield
end
end
end
@ -838,8 +840,10 @@ def member
raise ArgumentError, "can't use member outside resource(s) scope"
end
member_scope do
yield
with_scope_level(:member) do
scope(parent_resource.member_scope) do
yield
end
end
end
@ -848,8 +852,10 @@ def new
raise ArgumentError, "can't use new outside resource(s) scope"
end
new_scope do
yield
with_scope_level(:new) do
scope(parent_resource.new_scope(action_path(:new))) do
yield
end
end
end
@ -1034,30 +1040,6 @@ def resource_scope(resource)
end
end
def new_scope
with_scope_level(:new) do
scope(parent_resource.new_scope(action_path(:new))) do
yield
end
end
end
def collection_scope
with_scope_level(:collection) do
scope(parent_resource.collection_scope) do
yield
end
end
end
def member_scope
with_scope_level(:member) do
scope(parent_resource.member_scope) do
yield
end
end
end
def nested_options
{}.tap do |options|
options[:as] = parent_resource.member_name