提交 89bf31ee 编写于 作者: A Aaron Patterson

move nil check to a method that yields to a block if the value is not nil

上级 78deb7f1
......@@ -237,8 +237,7 @@ def app
end
def default_controller_and_action
hash = {}
return hash if to.respond_to? :call
return {} if to.respond_to? :call
controller, action = get_controller_and_action(
default_controller,
......@@ -247,24 +246,28 @@ def default_controller_and_action
@scope[:module]
)
if controller
hash[:controller] = translate_controller controller
else
unless segment_keys.include?(:controller)
message = "Missing :controller key on routes definition, please check your routes."
raise ArgumentError, message
hash = check_part(:controller, controller, {}) do
translate_controller controller
end
check_part(:action, action, hash) do
if Regexp === action
action
else
action.to_s
end
end
end
if action
hash[:action] = translate_action action
def check_part(name, part, hash)
if part
hash[name] = yield
else
unless segment_keys.include?(:action)
message = "Missing :action key on routes definition, please check your routes."
unless segment_keys.include?(name)
message = "Missing :#{name} key on routes definition, please check your routes."
raise ArgumentError, message
end
end
hash
end
......@@ -288,10 +291,6 @@ def get_controller_and_action(controller, action, to, modyoule)
[controller, action]
end
def translate_action(action)
Regexp === action ? action : action.to_s
end
def translate_controller(controller)
return controller if Regexp === controller
return controller.to_s if controller =~ /\A[a-z_0-9][a-z_0-9\/]*\z/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册