mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Rename url_helper to direct
This commit is contained in:
parent
ce7d5fb2e6
commit
47a27e8950
3 changed files with 23 additions and 23 deletions
|
@ -2020,20 +2020,20 @@ module ActionDispatch
|
|||
end
|
||||
end
|
||||
|
||||
module UrlHelpers
|
||||
module DirectUrls
|
||||
# Define a custom url helper that will be added to the url helpers
|
||||
# module. This allows you override and/or replace the default behavior
|
||||
# of routing helpers, e.g:
|
||||
#
|
||||
# url_helper :homepage do
|
||||
# direct :homepage do
|
||||
# "http://www.rubyonrails.org"
|
||||
# end
|
||||
#
|
||||
# url_helper :commentable do |model|
|
||||
# direct :commentable do |model|
|
||||
# [ model, anchor: model.dom_id ]
|
||||
# end
|
||||
#
|
||||
# url_helper :main do
|
||||
# direct :main do
|
||||
# { controller: 'pages', action: 'index', subdomain: 'www' }
|
||||
# end
|
||||
#
|
||||
|
@ -2049,13 +2049,13 @@ module ActionDispatch
|
|||
# You can also specify default options that will be passed through to
|
||||
# your url helper definition, e.g:
|
||||
#
|
||||
# url_helper :browse, page: 1, size: 10 do |options|
|
||||
# direct :browse, page: 1, size: 10 do |options|
|
||||
# [ :products, options.merge(params.permit(:page, :size)) ]
|
||||
# end
|
||||
#
|
||||
# NOTE: It is the url helper's responsibility to return the correct
|
||||
# set of options to be passed to the `url_for` call.
|
||||
def url_helper(name, options = {}, &block)
|
||||
def direct(name, options = {}, &block)
|
||||
@set.add_url_helper(name, options, &block)
|
||||
end
|
||||
end
|
||||
|
@ -2153,7 +2153,7 @@ module ActionDispatch
|
|||
include Scoping
|
||||
include Concerns
|
||||
include Resources
|
||||
include UrlHelpers
|
||||
include DirectUrls
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -30,14 +30,14 @@ class TestCustomUrlHelpers < ActionDispatch::IntegrationTest
|
|||
get "/dashboard", to: "dashboard#index"
|
||||
end
|
||||
|
||||
url_helper(:website) { "http://www.rubyonrails.org" }
|
||||
url_helper(:linkable) { |linkable| [:"#{linkable.linkable_type}", { id: linkable.id }] }
|
||||
url_helper(:params) { |params| params }
|
||||
url_helper(:symbol) { :basket }
|
||||
url_helper(:hash) { { controller: "basket", action: "show" } }
|
||||
url_helper(:array) { [:admin, :dashboard] }
|
||||
url_helper(:options) { |options| [:products, options] }
|
||||
url_helper(:defaults, size: 10) { |options| [:products, options] }
|
||||
direct(:website) { "http://www.rubyonrails.org" }
|
||||
direct(:linkable) { |linkable| [:"#{linkable.linkable_type}", { id: linkable.id }] }
|
||||
direct(:params) { |params| params }
|
||||
direct(:symbol) { :basket }
|
||||
direct(:hash) { { controller: "basket", action: "show" } }
|
||||
direct(:array) { [:admin, :dashboard] }
|
||||
direct(:options) { |options| [:products, options] }
|
||||
direct(:defaults, size: 10) { |options| [:products, options] }
|
||||
end
|
||||
|
||||
APP = build_app Routes
|
||||
|
@ -57,7 +57,7 @@ class TestCustomUrlHelpers < ActionDispatch::IntegrationTest
|
|||
@safe_params = ActionController::Parameters.new(@path_params).permit(:controller, :action)
|
||||
end
|
||||
|
||||
def test_custom_path_helper
|
||||
def test_direct_paths
|
||||
assert_equal "http://www.rubyonrails.org", website_path
|
||||
assert_equal "http://www.rubyonrails.org", Routes.url_helpers.website_path
|
||||
|
||||
|
@ -88,7 +88,7 @@ class TestCustomUrlHelpers < ActionDispatch::IntegrationTest
|
|||
assert_equal "/products?size=20", Routes.url_helpers.defaults_path(size: 20)
|
||||
end
|
||||
|
||||
def test_custom_url_helper
|
||||
def test_direct_urls
|
||||
assert_equal "http://www.rubyonrails.org", website_url
|
||||
assert_equal "http://www.rubyonrails.org", Routes.url_helpers.website_url
|
||||
|
||||
|
@ -108,8 +108,8 @@ class TestCustomUrlHelpers < ActionDispatch::IntegrationTest
|
|||
assert_equal "http://www.example.com/basket", Routes.url_helpers.symbol_url
|
||||
assert_equal "http://www.example.com/basket", hash_url
|
||||
assert_equal "http://www.example.com/basket", Routes.url_helpers.hash_url
|
||||
assert_equal "/admin/dashboard", array_path
|
||||
assert_equal "/admin/dashboard", Routes.url_helpers.array_path
|
||||
assert_equal "http://www.example.com/admin/dashboard", array_url
|
||||
assert_equal "http://www.example.com/admin/dashboard", Routes.url_helpers.array_url
|
||||
|
||||
assert_equal "http://www.example.com/products?page=2", options_url(page: 2)
|
||||
assert_equal "http://www.example.com/products?page=2", Routes.url_helpers.options_url(page: 2)
|
||||
|
|
|
@ -289,7 +289,7 @@ module ApplicationTests
|
|||
get 'foo', to: 'foo#bar'
|
||||
get 'custom', to: 'foo#custom'
|
||||
|
||||
url_helper(:custom) { "http://www.microsoft.com" }
|
||||
direct(:custom) { "http://www.microsoft.com" }
|
||||
end
|
||||
RUBY
|
||||
|
||||
|
@ -306,7 +306,7 @@ module ApplicationTests
|
|||
get 'foo', to: 'foo#baz'
|
||||
get 'custom', to: 'foo#custom'
|
||||
|
||||
url_helper(:custom) { "http://www.apple.com" }
|
||||
direct(:custom) { "http://www.apple.com" }
|
||||
end
|
||||
RUBY
|
||||
|
||||
|
@ -466,7 +466,7 @@ module ApplicationTests
|
|||
app_file "config/routes.rb", <<-RUBY
|
||||
Rails.application.routes.draw do
|
||||
get ':locale/foo', to: 'foo#index', as: 'foo'
|
||||
url_helper(:microsoft) { 'http://www.microsoft.com' }
|
||||
direct(:microsoft) { 'http://www.microsoft.com' }
|
||||
end
|
||||
RUBY
|
||||
|
||||
|
@ -478,7 +478,7 @@ module ApplicationTests
|
|||
app_file "config/routes.rb", <<-RUBY
|
||||
Rails.application.routes.draw do
|
||||
get ':locale/bar', to: 'bar#index', as: 'foo'
|
||||
url_helper(:apple) { 'http://www.apple.com' }
|
||||
direct(:apple) { 'http://www.apple.com' }
|
||||
end
|
||||
RUBY
|
||||
|
||||
|
|
Loading…
Reference in a new issue