提交 08f4713d 编写于 作者: P Piotr Sarnacki 提交者: José Valim

Refactored routes reloading to use RouteSet#append instead keeping block in Engine

Signed-off-by: NJosé Valim <jose.valim@gmail.com>
上级 f1f2fb8a
module Rails
class Application
class RoutesReloader < ::ActiveSupport::FileUpdateChecker
attr_reader :route_sets
def initialize
super([]) { reload! }
end
def blocks
@blocks ||= {}
@route_sets = []
end
def reload!
clear!
load_blocks
load_paths
finalize!
ensure
......@@ -21,37 +19,27 @@ def reload!
protected
def clear!
routers.each do |routes|
route_sets.each do |routes|
routes.disable_clear_and_finalize = true
routes.clear!
end
end
def load_blocks
blocks.each do |routes, block|
routes.draw(&block) if block
end
end
def load_paths
paths.each { |path| load(path) }
end
def finalize!
routers.each do |routes|
route_sets.each do |routes|
ActiveSupport.on_load(:action_controller) { routes.finalize! }
end
end
def revert
routers.each do |routes|
route_sets.each do |routes|
routes.disable_clear_and_finalize = false
end
end
def routers
blocks.keys
end
end
end
end
......@@ -419,9 +419,9 @@ def env_config
}
end
def routes(&block)
def routes
@routes ||= ActionDispatch::Routing::RouteSet.new
self.routes_draw_block = block if block_given?
@routes.append(&Proc.new) if block_given?
@routes
end
......@@ -472,8 +472,8 @@ def load_seed
paths = self.paths["config/routes"].existent
if routes? || paths.any?
app.routes_reloader.blocks[routes] = routes_draw_block
app.routes_reloader.paths.unshift(*paths)
app.routes_reloader.route_sets << routes
end
end
......@@ -523,8 +523,6 @@ def load_seed
end
protected
attr_accessor :routes_draw_block
def routes?
defined?(@routes)
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册