mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Override respond_to? since we are also overriding method_missing.
This commit is contained in:
parent
49b6b4994e
commit
180edc84f1
2 changed files with 11 additions and 0 deletions
|
@ -16,6 +16,10 @@ module ActionDispatch
|
|||
end
|
||||
end
|
||||
|
||||
def respond_to?(method, include_private = false)
|
||||
super || routes.url_helpers.respond_to?(method)
|
||||
end
|
||||
|
||||
def method_missing(method, *args)
|
||||
if routes.url_helpers.respond_to?(method)
|
||||
self.class.class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
||||
|
|
|
@ -30,6 +30,7 @@ module TestGenerationPrefix
|
|||
match "/url_to_application", :to => "inside_engine_generating#url_to_application"
|
||||
match "/polymorphic_path_for_engine", :to => "inside_engine_generating#polymorphic_path_for_engine"
|
||||
match "/conflicting_url", :to => "inside_engine_generating#conflicting"
|
||||
match "/foo", :to => "never#invoked", :as => :named_helper_that_should_be_invoked_only_in_respond_to_test
|
||||
end
|
||||
|
||||
routes
|
||||
|
@ -152,6 +153,8 @@ module TestGenerationPrefix
|
|||
RailsApplication.routes.default_url_options = {}
|
||||
end
|
||||
|
||||
include BlogEngine.routes.mounted_helpers
|
||||
|
||||
# Inside Engine
|
||||
test "[ENGINE] generating engine's url use SCRIPT_NAME from request" do
|
||||
get "/pure-awesomeness/blog/posts/1"
|
||||
|
@ -219,6 +222,10 @@ module TestGenerationPrefix
|
|||
end
|
||||
|
||||
# Inside any Object
|
||||
test "[OBJECT] proxy route should override respond_to?() as expected" do
|
||||
assert_respond_to blog_engine, :named_helper_that_should_be_invoked_only_in_respond_to_test_path
|
||||
end
|
||||
|
||||
test "[OBJECT] generating engine's route includes prefix" do
|
||||
assert_equal "/awesome/blog/posts/1", engine_object.post_path(:id => 1)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue