class Rails::InfoController
def matching_routes(query:, exact_match:)
def matching_routes(query:, exact_match:) return [] if query.blank? normalized_path = ("/" + query).squeeze("/") query_without_url_or_path_suffix = query.gsub(/(\w)(_path$)/, '\1').gsub(/(\w)(_url$)/, '\1') _routes.routes.filter_map do |route| route_wrapper = ActionDispatch::Routing::RouteWrapper.new(route) if exact_match match = route.path.match(normalized_path) match ||= (query_without_url_or_path_suffix === route_wrapper.name) else match = route_wrapper.path.match(query) match ||= route_wrapper.name.include?(query_without_url_or_path_suffix) end match ||= (query === route_wrapper.verb) unless match controller_action = RFC2396_PARSER.escape(route_wrapper.reqs) match = exact_match ? (query === controller_action) : controller_action.include?(query) end route_wrapper.path if match end end