From e78b1e5e615978a221b68530641101451ab83e68 Mon Sep 17 00:00:00 2001 From: bogdanvlviv Date: Mon, 5 Mar 2018 18:54:09 +0200 Subject: Improve docs of `ActionDispatch::Routing` - Add a mention about `-g`. - Improve info about `--expanded` option of `rails routes`. --- actionpack/lib/action_dispatch/routing.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_dispatch/routing.rb b/actionpack/lib/action_dispatch/routing.rb index 776058d98e..5cde677051 100644 --- a/actionpack/lib/action_dispatch/routing.rb +++ b/actionpack/lib/action_dispatch/routing.rb @@ -243,9 +243,9 @@ module ActionDispatch # # rails routes # - # Target specific controllers by prefixing the command with -c option. Use - # --expanded to turn on the expanded table formatting mode. - # + # Target a specific controller with -c, or grep routes + # using -g. Useful in conjunction with --expanded + # which displays routes vertically. module Routing extend ActiveSupport::Autoload -- cgit v1.2.3 From 304906f1bd4cd6f2831b6ae39a9ae54599d85569 Mon Sep 17 00:00:00 2001 From: bogdanvlviv Date: Mon, 5 Mar 2018 20:21:27 +0200 Subject: Introduce `ActionDispatch::Routing::ConsoleFormatter::Base` - Create `Base` and inherit `Sheet` and `Expanded` in order to - prevent code duplication. - Remove trailing "\n" for components of `Expanded`. - There is no need for `Expanded#header` to return `@buffer` so return `nil` instead. - Change `no_routes` message "No routes were found for this controller" since if use `-g`, it sounds incorrect. - Display `No routes were found for this controller.` if apply `-c`. - Display `No routes were found for this grep pattern.` if apply `-g`. Related to #32130 --- .../lib/action_dispatch/routing/inspector.rb | 75 ++++++++++------------ 1 file changed, 34 insertions(+), 41 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_dispatch/routing/inspector.rb b/actionpack/lib/action_dispatch/routing/inspector.rb index 19dfb44283..7656c263a3 100644 --- a/actionpack/lib/action_dispatch/routing/inspector.rb +++ b/actionpack/lib/action_dispatch/routing/inspector.rb @@ -61,11 +61,11 @@ module ActionDispatch @routes = routes end - def format(formatter, filter = nil) + def format(formatter, filter = {}) routes_to_display = filter_routes(normalize_filter(filter)) routes = collect_routes(routes_to_display) if routes.none? - formatter.no_routes(collect_routes(@routes)) + formatter.no_routes(collect_routes(@routes), filter) return formatter.result end @@ -83,10 +83,16 @@ module ActionDispatch private def normalize_filter(filter) - if filter.is_a?(Hash) && filter[:controller] + if filter[:controller] { controller: /#{filter[:controller].downcase.sub(/_?controller\z/, '').sub('::', '/')}/ } - elsif filter - { controller: /#{filter}/, action: /#{filter}/, verb: /#{filter}/, name: /#{filter}/, path: /#{filter}/ } + elsif filter[:grep_pattern] + { + controller: /#{filter[:grep_pattern]}/, + action: /#{filter[:grep_pattern]}/, + verb: /#{filter[:grep_pattern]}/, + name: /#{filter[:grep_pattern]}/, + path: /#{filter[:grep_pattern]}/ + } end end @@ -127,7 +133,7 @@ module ActionDispatch end module ConsoleFormatter - class Sheet + class Base def initialize @buffer = [] end @@ -137,18 +143,15 @@ module ActionDispatch end def section_title(title) - @buffer << "\n#{title}:" end def section(routes) - @buffer << draw_section(routes) end def header(routes) - @buffer << draw_header(routes) end - def no_routes(routes) + def no_routes(routes, filter) @buffer << if routes.none? <<~MESSAGE @@ -156,11 +159,27 @@ module ActionDispatch Please add some routes in config/routes.rb. MESSAGE - else - "No routes were found for this controller" + elsif filter.has_key?(:controller) + "No routes were found for this controller." + elsif filter.has_key?(:grep_pattern) + "No routes were found for this grep pattern." end @buffer << "For more information about routes, see the Rails guide: http://guides.rubyonrails.org/routing.html." end + end + + class Sheet < Base + def section_title(title) + @buffer << "\n#{title}:" + end + + def section(routes) + @buffer << draw_section(routes) + end + + def header(routes) + @buffer << draw_header(routes) + end private @@ -186,46 +205,20 @@ module ActionDispatch end end - class Expanded - def initialize - @buffer = [] - end - - def result - @buffer.join("") - end - + class Expanded < Base def section_title(title) - @buffer << "\n#{"[ #{title} ]"}\n" + @buffer << "\n#{"[ #{title} ]"}" end def section(routes) @buffer << draw_expanded_section(routes) end - def header(routes) - @buffer - end - - def no_routes(routes) - @buffer << - if routes.none? - <<~MESSAGE - You don't have any routes defined! - - Please add some routes in config/routes.rb.\n - MESSAGE - else - "No routes were found for this controller\n" - end - @buffer << "For more information about routes, see the Rails guide: http://guides.rubyonrails.org/routing.html." - end - private def draw_expanded_section(routes) routes.map.each_with_index do |r, i| - <<~MESSAGE + <<~MESSAGE.chomp #{route_header(index: i + 1)} Prefix | #{r[:name]} Verb | #{r[:verb]} -- cgit v1.2.3