How to output Rails routes list in csv format
→ When catching up the system in a new organization, it can be used when you want to trace from the routing and get a bird's-eye view of the whole, and you want to systematically summarize the information in SpreadSheet etc.
See rails routes implementation
――It seems good to pack all Route information in ʻinspector
and format it with .format ()
. --It seems good to create your own Formatter by imitating the implementation of ConsoleFormatter`
--Since this information is output for personal understanding, cut an appropriate branch locally so as not to affect the production source.
$ bundle exec rails g task route_formatter csv
namespace :route_formatter do desc "get route as csv format" task csv: :environment do |t| class CSVFormatter def initialize @buffer=  end def result @buffer.join("\n") end def section_title(title) end def section(routes) routes.each do |r| @buffer << [r[:name], r[:verb], r[:path], r[:reqs]].join(",") end end def header(routes) @buffer << %w"Prefix Verb URI_Pattern Controller#Action".join(",") end def no_routes @buffer << "" end end require "action_dispatch/routing/inspector" all_routes = Rails.application.routes.routes inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes) puts inspector.format(CSVFormatter.new, ENV['CONTROLLER']) end end
--If you want to put it on the Clipboard on Mac,
bin/rails route_formatter:csv | pbcopy
--The rest is processed by Excel or SpreadSheet