Only cache the view_context_class in one place

This patch removes the instance writer of view_context_class.
Subclasses may override it, but it doesn't need to be written.  This
also eliminates the need to cache the return value of the class level
`view_context_class` method.
上级 63d96adb
......@@ -160,9 +160,16 @@ def with_routing
@controller.singleton_class.include(_routes.url_helpers)
if @controller.respond_to? :view_context_class
@controller.view_context_class = Class.new(@controller.view_context_class) do
view_context_class = Class.new(@controller.view_context_class) do
include _routes.url_helpers
end
custom_view_context = Module.new {
define_method(:view_context_class) do
view_context_class
end
}
@controller.extend(custom_view_context)
end
end
yield @routes
......
......@@ -55,10 +55,8 @@ def view_context_class
end
end
attr_internal_writer :view_context_class
def view_context_class
@_view_context_class ||= self.class.view_context_class
self.class.view_context_class
end
# An instance of a view class. The default view class is ActionView::Base.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册