Split the given hash of options into requirement and default hashes. The segments are passed alongside in order to distinguish between default values and requirements.
Source Code
# File action_controller/routing/builder.rb, line 62 def divide_route_options(segments, options) options = options.dup if options[:namespace] options[:controller] = "#{options[:path_prefix]}/#{options[:controller]}" options.delete(:path_prefix) options.delete(:name_prefix) options.delete(:namespace) end requirements = (options.delete(:requirements) || {}).dup defaults = (options.delete(:defaults) || {}).dup conditions = (options.delete(:conditions) || {}).dup path_keys = segments.collect { |segment| segment.key if segment.respond_to?(:key) }.compact options.each do |key, value| hash = (path_keys.include?(key) && ! value.is_a?(Regexp)) ? defaults : requirements hash[key] = value end [defaults, requirements, conditions] end
<code/>and<pre/>for code samples.