diff --git a/lib/draper/view_context.rb b/lib/draper/view_context.rb index 59e38a4..cadd2e6 100644 --- a/lib/draper/view_context.rb +++ b/lib/draper/view_context.rb @@ -1,13 +1,7 @@ module Draper module ViewContext def self.current - context = Thread.current[:current_view_context] - context ||= ApplicationController.new.view_context - context.controller.request ||= ActionController::TestRequest.new - context.request ||= context.controller.request - context.params ||= {} - Thread.current[:current_view_context] = context - context + Thread.current[:current_view_context] ||= build_view_context end def self.current=(input) @@ -19,5 +13,15 @@ module Draper Draper::ViewContext.current = context end end + + private + + def build_view_context + ApplicationController.new.view_context.tap do |context| + context.controller.request ||= ActionController::TestRequest.new + context.request ||= context.controller.request + context.params ||= {} + end + end end end