aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2017-05-26 13:12:21 +0930
committerMatthew Draper <matthew@trebex.net>2017-09-01 14:27:13 +0930
commit2e6658ae510e17e9e6e98ebd784066752ea6027c (patch)
treea5424b329e24f37cab0b6e4698b39a0ac592573f /actionpack/lib/action_dispatch/routing
parent2cd8ac1b68ba04ca12a816c8113271017b3c43c4 (diff)
downloadrails-2e6658ae510e17e9e6e98ebd784066752ea6027c.tar.gz
rails-2e6658ae510e17e9e6e98ebd784066752ea6027c.tar.bz2
rails-2e6658ae510e17e9e6e98ebd784066752ea6027c.zip
Clarify intentions around method redefinitions
Don't use remove_method or remove_possible_method just before a new definition: at best the purpose is unclear, and at worst it creates a race condition. Instead, prefer redefine_method when practical, and silence_redefinition_of_method otherwise.
Diffstat (limited to 'actionpack/lib/action_dispatch/routing')
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index 357eaec572..445e86b13c 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -3,6 +3,7 @@
require_relative "../journey"
require "active_support/core_ext/object/to_query"
require "active_support/core_ext/hash/slice"
+require "active_support/core_ext/module/redefine_method"
require "active_support/core_ext/module/remove_method"
require "active_support/core_ext/array/extract_options"
require "action_controller/metal/exceptions"
@@ -546,7 +547,7 @@ module ActionDispatch
# plus a singleton class method called _routes ...
included do
- singleton_class.send(:redefine_method, :_routes) { routes }
+ redefine_singleton_method(:_routes) { routes }
end
# And an instance method _routes. Note that