Permalink
Browse files

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

… nil
  • Loading branch information...
tenderlove committed May 28, 2014
1 parent 78deb7f commit 89bf31ee565a0f5b1d7138deaa1873223ef22da2
Showing with 16 additions and 17 deletions.
  1. +16 −17 actionpack/lib/action_dispatch/routing/mapper.rb
@@ -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/

0 comments on commit 89bf31e

Please sign in to comment.