method

normalize_path

Importance_0
v3.2.13 - Show latest stable - 0 notes - Class: ActionDispatch::Routing::Mapper::Mapping
normalize_path(path) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File actionpack/lib/action_dispatch/routing/mapper.rb, line 92
          def normalize_path(path)
            raise ArgumentError, "path is required" if path.blank?
            path = Mapper.normalize_path(path)

            if path.match(':controller')
              raise ArgumentError, ":controller segment is not allowed within a namespace block" if @scope[:module]

              # Add a default constraint for :controller path segments that matches namespaced
              # controllers with default routes like :controller/:action/:id(.:format), e.g:
              # GET /admin/products/show/1
              # => { :controller => 'admin/products', :action => 'show', :id => '1' }
              @options[:controller] ||= /.+?/
            end

            # Add a constraint for wildcard route to make it non-greedy and match the
            # optional format part of the route by default
            if path.match(WILDCARD_PATH) && @options[:format] != false
              @options[$1.to_sym] ||= /.+?/
            end

            if @options[:format] == false
              @options.delete(:format)
              path
            elsif path.include?(":format") || path.end_with?('/')
              path
            elsif @options[:format] == true
              "#{path}.:format"
            else
              "#{path}(.:format)"
            end
          end
Register or log in to add new notes.