Cleaner dispatcher, _method work for all ACTION

This commit is contained in:
Yann Esposito (Yogsototh) 2010-04-21 13:57:52 +02:00
parent a2add00709
commit b68d3ea98f

View file

@ -195,25 +195,23 @@ module Rubyzome
classname = chemin[0..-2].capitalize + 'Controller'
modelname = chemin[0..-2].capitalize
last_class_id=chemin[0..-2]+'_id'
if request.get?
function_name=:index
elsif request.post?
if request[:_method].nil? or request[:_method] == "POST"
if request[:_method].nil?
if request.get?
function_name=:index
elsif request.post?
function_name=:create
else
case request[:_method]
when 'OPTIONS'
function_name=:options
else
function_name=:bad_request
end
end
else
if request.request_method == 'OPTIONS'
elsif request.request_method == 'OPTIONS'
function_name=:options
else
function_name=:bad_request
end
else
case request[:_method]
when "GET" then function_name=:index
when "POST" then function_name=:create
when 'OPTIONS' then function_name=:options
else function_name=:bad_request
end
end
else
# on ajoute la valeur dans les paramètre
@ -222,33 +220,31 @@ module Rubyzome
request[last_class_id]=chemin
# dispatche la fonction a appeler en fonction
# du type de requête.
if request.get?
function_name=:show
elsif request.put?
function_name=:update
elsif request.delete?
function_name=:delete
elsif request.post?
if request[:_method].nil?
function_name=:bad_request
else
case request[:_method]
when 'OPTIONS'
function_name=:options
when 'PUT'
function_name=:update
when 'DELETE'
function_name=:delete
else
function_name=:bad_request
end
end
else
if request.request_method == 'OPTIONS'
if request[:_method].nil?
if request.get?
function_name=:show
elsif request.put?
function_name=:update
elsif request.delete?
function_name=:delete
elsif request.request_method == 'OPTIONS'
function_name=:options
else
function_name=:bad_request
end
else
case request[:_method]
when 'GET'
function_name=:show
when 'PUT'
function_name=:update
when 'DELETE'
function_name=:delete
when 'OPTIONS'
function_name=:options
else
function_name=:bad_request
end
end
end
i+=1