require_relative '../better_routes/formatter'
desc “custom_routes” task better_routes: :environment do
all_routes = Rails.application.routes.routes require 'action_dispatch/routing/inspector' inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes) routes_filter = nil format = ENV['FORMAT'] || 'tsv' OptionParser.new do |opts| opts.banner = "Usage: rails better_routes [options]" Rake.application.standard_rake_options.each { |args| opts.on(*args) } # opts.on("-F FORMAT") do |format| # format = format # end opts.on("-c CONTROLLER") do |controller| routes_filter = { controller: controller } end opts.on("-g PATTERN") do |pattern| routes_filter = pattern end end.parse!(ARGV.reject { |x| x == "routes" }) formatter_klass = "BetterRoutes::Formatter::#{format.titleize}Formatter".safe_constantize if formatter_klass.nil? STDERR.puts "format must be one of csv, markdown and tsv(default). got: #{format}" end STDOUT.puts inspector.format(formatter_klass.new, routes_filter) exit 0
end