aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2018-02-28 18:34:00 -0500
committerGitHub <noreply@github.com>2018-02-28 18:34:00 -0500
commitc9fa561b2e8dd6bfe31c1850a47e2f17cac94aa6 (patch)
tree5d21cc59edd9dd6cdad5f756a797e368983e747d /railties
parentf008562dd35b0981732a69f1002eadb12850c1b2 (diff)
parentc6d928f3cae28e3b531d3cc4bcde2ddca0323f11 (diff)
downloadrails-c9fa561b2e8dd6bfe31c1850a47e2f17cac94aa6.tar.gz
rails-c9fa561b2e8dd6bfe31c1850a47e2f17cac94aa6.tar.bz2
rails-c9fa561b2e8dd6bfe31c1850a47e2f17cac94aa6.zip
Merge pull request #32130 from benoittgt/rake-routes-compact-mode
Add "rails routes --expanded" mode
Diffstat (limited to 'railties')
-rw-r--r--railties/CHANGELOG.md19
-rw-r--r--railties/lib/rails/commands/routes/routes_command.rb8
-rw-r--r--railties/test/application/rake_test.rb40
-rw-r--r--railties/test/commands/routes_test.rb47
4 files changed, 73 insertions, 41 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md
index 51f6e1f0ac..a38888afe5 100644
--- a/railties/CHANGELOG.md
+++ b/railties/CHANGELOG.md
@@ -1,5 +1,24 @@
## Rails 6.0.0.alpha (Unreleased) ##
+* Add "rails routes --expanded" option to output routes in expanded mode like
+ "psql --expanded". Result looks like:
+
+ ```
+ $ rails routes --expanded
+ --[ Route 1 ]------------------------------------------------------------
+ Prefix | high_scores
+ Verb | GET
+ URI | /high_scores(.:format)
+ Controller#Action | high_scores#index
+ --[ Route 2 ]------------------------------------------------------------
+ Prefix | new_high_score
+ Verb | GET
+ URI | /high_scores/new(.:format)
+ Controller#Action | high_scores#new
+ ```
+
+ *Benoit Tigeot*
+
* Rails 6 requires Ruby 2.4.1 or newer.
*Jeremy Daer*
diff --git a/railties/lib/rails/commands/routes/routes_command.rb b/railties/lib/rails/commands/routes/routes_command.rb
index c4fd6c7eb5..c4f3717095 100644
--- a/railties/lib/rails/commands/routes/routes_command.rb
+++ b/railties/lib/rails/commands/routes/routes_command.rb
@@ -7,12 +7,14 @@ module Rails
class RoutesCommand < Base # :nodoc:
class_option :controller, aliases: "-c", type: :string, desc: "Specifies the controller."
class_option :grep_pattern, aliases: "-g", type: :string, desc: "Specifies grep pattern."
+ class_option :expanded_format, aliases: "--expanded", type: :string, desc: "Turn on expanded format mode."
no_commands do
def help
say "Usage: Print out all defined routes in match order, with names."
say ""
say "Target specific controller with -c option, or grep routes using -g option"
+ say "Use expanded format with --expanded option"
say ""
end
end
@@ -24,7 +26,11 @@ module Rails
all_routes = Rails.application.routes.routes
inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes)
- say inspector.format(ActionDispatch::Routing::ConsoleFormatter.new, routes_filter)
+ if options.has_key?("expanded_format")
+ say inspector.format(ActionDispatch::Routing::ConsoleFormatter::Expanded.new, routes_filter)
+ else
+ say inspector.format(ActionDispatch::Routing::ConsoleFormatter::Sheet.new, routes_filter)
+ end
end
private
diff --git a/railties/test/application/rake_test.rb b/railties/test/application/rake_test.rb
index f7d301e125..9683230d07 100644
--- a/railties/test/application/rake_test.rb
+++ b/railties/test/application/rake_test.rb
@@ -122,46 +122,6 @@ module ApplicationTests
rails("stats")
end
- def test_rails_routes_calls_the_route_inspector
- app_file "config/routes.rb", <<-RUBY
- Rails.application.routes.draw do
- get '/cart', to: 'cart#show'
- end
- RUBY
-
- output = rails("routes")
- assert_equal <<~MESSAGE, output
- Prefix Verb URI Pattern Controller#Action
- cart GET /cart(.:format) cart#show
- rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show
- rails_blob_variation GET /rails/active_storage/variants/:signed_blob_id/:variation_key/*filename(.:format) active_storage/variants#show
- rails_blob_preview GET /rails/active_storage/previews/:signed_blob_id/:variation_key/*filename(.:format) active_storage/previews#show
- rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show
- update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update
- rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create
- MESSAGE
- end
-
- def test_singular_resource_output_in_rake_routes
- app_file "config/routes.rb", <<-RUBY
- Rails.application.routes.draw do
- resource :post
- end
- RUBY
-
- expected_output = [" Prefix Verb URI Pattern Controller#Action",
- " new_post GET /post/new(.:format) posts#new",
- "edit_post GET /post/edit(.:format) posts#edit",
- " post GET /post(.:format) posts#show",
- " PATCH /post(.:format) posts#update",
- " PUT /post(.:format) posts#update",
- " DELETE /post(.:format) posts#destroy",
- " POST /post(.:format) posts#create\n"].join("\n")
-
- output = rails("routes", "-c", "PostController")
- assert_equal expected_output, output
- end
-
def test_logger_is_flushed_when_exiting_production_rake_tasks
add_to_config <<-RUBY
rake_tasks do
diff --git a/railties/test/commands/routes_test.rb b/railties/test/commands/routes_test.rb
index 030dcc7217..24af5de73a 100644
--- a/railties/test/commands/routes_test.rb
+++ b/railties/test/commands/routes_test.rb
@@ -119,6 +119,53 @@ class Rails::Command::RoutesTest < ActiveSupport::TestCase
MESSAGE
end
+ test "test rails routes with expanded option" do
+ app_file "config/routes.rb", <<-RUBY
+ Rails.application.routes.draw do
+ get '/cart', to: 'cart#show'
+ end
+ RUBY
+
+ output = rails("routes", "--expanded")
+ assert_equal <<~MESSAGE, output
+ --[ Route 1 ]------------------------------------------------------------
+ Prefix | cart
+ Verb | GET
+ URI | /cart(.:format)
+ Controller#Action | cart#show
+ --[ Route 2 ]------------------------------------------------------------
+ Prefix | rails_service_blob
+ Verb | GET
+ URI | /rails/active_storage/blobs/:signed_id/*filename(.:format)
+ Controller#Action | active_storage/blobs#show
+ --[ Route 3 ]------------------------------------------------------------
+ Prefix | rails_blob_variation
+ Verb | GET
+ URI | /rails/active_storage/variants/:signed_blob_id/:variation_key/*filename(.:format)
+ Controller#Action | active_storage/variants#show
+ --[ Route 4 ]------------------------------------------------------------
+ Prefix | rails_blob_preview
+ Verb | GET
+ URI | /rails/active_storage/previews/:signed_blob_id/:variation_key/*filename(.:format)
+ Controller#Action | active_storage/previews#show
+ --[ Route 5 ]------------------------------------------------------------
+ Prefix | rails_disk_service
+ Verb | GET
+ URI | /rails/active_storage/disk/:encoded_key/*filename(.:format)
+ Controller#Action | active_storage/disk#show
+ --[ Route 6 ]------------------------------------------------------------
+ Prefix | update_rails_disk_service
+ Verb | PUT
+ URI | /rails/active_storage/disk/:encoded_token(.:format)
+ Controller#Action | active_storage/disk#update
+ --[ Route 7 ]------------------------------------------------------------
+ Prefix | rails_direct_uploads
+ Verb | POST
+ URI | /rails/active_storage/direct_uploads(.:format)
+ Controller#Action | active_storage/direct_uploads#create
+ MESSAGE
+ end
+
private
def run_routes_command(args = [])